當前位置:首頁 » 編程語言 » sql刪除個空表會報錯嗎
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql刪除個空表會報錯嗎

發布時間: 2022-12-14 11:55:20

Ⅰ 刪除一個表的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語句在查詢分析器里刪除,但執行時會將這些完全相同的行全部刪除.
所以為每一個表加一個自增標識列是良好的編輯習慣.