Ⅰ 刪除一個表的sql 語句怎麼寫啊
使用drop語句,droptable (需要刪除表的名字)。
drop是刪除整個表,delete是刪除表的內容。
drop語句的作用:刪除內容和定義,釋放空間,簡單來說就是把整個表去掉。以後要新增數據是不可能的,除非新增一個表。
刪除表時需要注意的事項:
1、如果刪除應用表別名,則delete 後面一定要接對應的別名,然後再接表名,不然報錯。
2、delete刪除sql後面不可接通配符*,即delete * from ,這樣會報錯。
3、delete刪除sql默認的返回值為int數據類型,當刪除一條數據時,返回int數據1,當刪除num條數據時,則返回int類型num。
(1)sql刪除個空表會報錯嗎擴展閱讀:
SQL即結構化查詢語言(Structured Query Language),是一種特殊目的的編程語言,是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統;同時也是資料庫腳本文件的擴展名。
SQL語句無論是種類還是數量都是繁多的,很多語句也是經常要用到的,SQL查詢語句就是一個典型的例子,無論是高級查詢還是低級查詢,SQL查詢語句的需求是最頻繁的。
常用語句:
創建資料庫 CREATE DATABASE database-name
刪除資料庫 drop database dbname
創建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
刪除新表 drop table tabname
參考資料:網路—sql語句大全
Ⅱ SQL中刪掉一張表的時候需要注意什麼
1. 刪除表的注意事項
在刪除一個表中的全部數據時,須使用TRUNCATE TABLE 表名;因為用DROP TABLE,DELETE * FROM 表名時,TABLESPACE表空間該表的佔用空間並未釋放,反復幾次DROP,DELETE操作後,該TABLESPACE上百兆的空間就被耗光了。
2.having 子句的用法
having 子句對 group by 子句所確定的行組進行控制,having 子句條件中只允許涉及常量,聚組函數或group by 子句中的列.
3.外部聯接"+"的用法
外部聯接"+"按其在"="的左邊或右邊分左聯接和右聯接.若不帶"+"運算符的表中的一個行不直接匹配於帶"+"預算符的表中的任何行,則前者的行與後者中的一個空行相匹配並被返回.若二者均不帶』+』,則二者中無法匹配的均被返回.利用外部聯接"+",可以替代效率十分低下的 not in 運算,大大提高運行速度.例如,下面這條命令執行起來很慢
用外聯接提高表連接的查詢速度
在作表連接(常用於視圖)時,常使用以下方法來查詢數據:
SELECT PAY_NO, PROJECT_NAME
FROM A
WHERE A.PAY_NO NOT IN (SELECT PAY_
NO FROM B WHERE VALUE >;=120000);
---- 但是若表A有10000條記錄,表B有10000條記錄,則要用掉30分鍾才能查完,主要因為NOT IN要進行一條一條的比較,共需要10000*10000次比較後,才能得到結果。該用外聯接後,可以縮短到1分左右的時間:
SELECT PAY_NO,PROJECT_NAME
FROM A,B
WHERE A.PAY_NO=B.PAY_NO(+)
AND B.PAY_NO IS NULL
AND B.VALUE >;=12000;
4.set transaction 命令的用法
在執行大事務時,有時oracle會報出如下的錯誤:
ORA-01555:snapshot too old (rollback segment too small)
這說明oracle給此事務隨機分配的回滾段太小了,這時可以為它指定一個足夠大的回滾段,以確保這個事務的成功執行.例如
set transaction use rollback segment roll_abc;
delete from table_name where ...
commit;
回滾段roll_abc被指定給這個delete事務,commit命令則在事務結束之後取消了回滾段的指定.
5.資料庫重建應注意的問題
在利用import進行資料庫重建過程中,有些視圖可能會帶來問題,因為結構輸入的順序可能造成視圖的輸入先於它低層次表的輸入,這樣建立視圖就會失敗.要解決這一問題,可採取分兩步走的方法:首先輸入結構,然後輸入數據.命令舉例如下 (uesrname:jfcl,password:hfjf,host stingra1,數據文件:expdata.dmp):
imp jfcl/hfjf@ora1 file=empdata.dmp rows=N
imp jfcl/hfjf@ora1 file=empdata.dmp full=Y buffer=64000
commit=Y ignore=Y
第一條命令輸入所有資料庫結構,但無記錄.第二次輸入結構和數據,64000位元組提交一次.ignore=Y選項保證第二次輸入既使對象存在的情況下也能成功.
select a.empno from emp a where a.empno not in
(select empno from emp1 where job=』SALE』);
倘若利用外部聯接,改寫命令如下:
select a.empno from emp a ,emp1 b
where a.empno=b.empno(+)
and b.empno is null
and b.job=』SALE』;
可以發現,運行速度明顯提高.
6.從已知表新建另一個表:
CREATE TABLE b
AS SELECT * (可以是表a中的幾列)
FROM a
WHERE a.column = ...;
7.查找、刪除重復記錄:
法一: 用Group by語句 此查找很快的
select count(num), max(name) from student --查找表中num列重復的,列出重復的記錄數,並列出他的name屬性
group by num
having count(num) >;1 --按num分組後找出表中num列重復,即出現次數大於一次
Ⅲ sql刪除表時出現問題
可能是在建立關系模式時,該table的某些(個)屬性成為了其他的table的外碼約束。或者本身被建立為查找索引。
Ⅳ oracle中為什麼刪除空表不報錯
你說的是不是表中沒數據,用了,delete from?
delete from 只是刪除符合條件的數據,跟select 一樣,沒數據就正常了.
但是在開發的時候,有時侯為了控制排他,通常在更新條件上加上前一次的更新時間,更新次數, 這樣如果更新件數是0件的話,說明該數據被其他人操作過了.
自己的話,只能重新檢索出來後,在刪除.
Ⅳ sql刪除列的時候報錯,是什麼情況我寫錯了嗎
ALTER TABLE TakTaskProgress DROP COLUMN SubmitAuName 這個是標准SQL的語法。oracle,mysql,sql server資料庫都可以用的。
不過如果你資料庫是*.db文件,就是SQLite資料庫。
SQLite目前還不支持drop column
create table temp as select 欄位1,欄位2............. TakTaskProgress where 1 = 1;
這樣復制一個臨時表,記得不要輸入SubmitAuName這個欄位
drop table TakTaskProgress;
然後刪除TakTaskProgress表
alter table temp rename to TakTaskProgress;
把臨時表改名成:TakTaskProgress
這樣才能達到你要的效果
Ⅵ SQL刪除表
a)
可以直接刪除班級表
b)
當前學生表一定為空
c)
應當首先清除學生表中的數據,然後再刪除班級表
d)
首先應先刪除學生表,然後再刪除班級表
個人覺得此題迷惑點在於刪除與清除
當表建好,且設定主外鍵關系時,表結構形成。
班級表的班級是主鍵,在學生表裡是外鍵。
關系一旦確立,不管學生表是否有數據,班級表都是刪不掉的。所以要刪除班級表就必須把學生表刪除!而非清除數據,因為清除數據後表的主從結構依然存在。D正確。
因為當前班級表數據為空,所以引用它的學生表的數據也必須為空!因為主表沒數據,主外鍵是不允許為空的,所以學生表必須為空!B正確
Ⅶ drop刪除庫里不存在的表,SQL腳本會停止運行嗎
會報錯的,drop的對象必須存在,不存在就會報錯:
Ⅷ 刪除資料庫表中空的一行時,彈出這樣一個錯誤,幫幫忙。
這是因為你的表裡存兩個完全一樣的行,所以SQL不能正確對刪除的目標行進行定位.
可以用SQL語句在查詢分析器里刪除,但執行時會將這些完全相同的行全部刪除.
所以為每一個表加一個自增標識列是良好的編輯習慣.