九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
12.2 刪除表中的數(shù)據(jù) - 《精通SQL——結(jié)構(gòu)化查詢語言詳解》 - 免費(fèi)試讀 - bo...
12.2.1  DELETE語句基本語法
使用DELETE語句從數(shù)據(jù)庫刪除數(shù)據(jù),基本語法如下。
DELETE FROM                                            table_name
WHERE                                                                       search_condition
說明:該語句將從表中刪除符合條件的數(shù)據(jù)行,如果沒有WHERE語句,則刪除所有數(shù)據(jù)行。通過使用DELETE語句的WHERE子句,SQL可以刪除單行數(shù)據(jù)、多行數(shù)據(jù)以及所有行數(shù)據(jù)。使用DELETE語句時,應(yīng)注意以下幾點(diǎn)。
     DELETE語句不能刪除單個字段的值,只能刪除整行數(shù)據(jù)。要刪除單個字段的值,可以采用上節(jié)介紹的使用UPDATE語句,將其更新為NULL。
     使用DELETE語句僅能刪除記錄即表中的數(shù)據(jù),不能刪除表本身。要刪除表,需要使用前面介紹的DROP TABLE語句。
     同INSERT和UPDATA語句一樣,從一個表中刪除記錄將引起其他表的參照完整性問題。這是一個潛在問題,需要時刻注意。
注意
在DELETE語句中沒有指定列名,這是因?yàn)椴荒軓谋碇袆h除單個列的值,只能整行刪除。如果需要刪除特定的列值,應(yīng)使用UPDATE語句將該值設(shè)置為NULL,當(dāng)然,前提是該列沒有NOT NULL約束,具體操作可參加12.1.2節(jié)的例程。
12.2.2  DELETE語句刪除單行數(shù)據(jù)
DELETE語句可以刪除數(shù)據(jù)庫表中的單行數(shù)據(jù)、多行數(shù)據(jù)以及所有行數(shù)據(jù)。同時在WHERE子句中,也可以通過子查詢刪除數(shù)據(jù)。本節(jié)主要通過一個實(shí)例說明如何從表中刪除單行數(shù)據(jù)。
實(shí)例9  DELETE語句刪除單行數(shù)據(jù)
從New_Teacher2表中,刪除教工號為8的教師記錄。實(shí)例代碼:
DELETE FROM                        New_Teacher2
WHERE                                                   TNO=8
查看表New_Teacher2的數(shù)據(jù)。
SELECT  *  FROM  New_Teacher2
運(yùn)行結(jié)果如圖12.10所示。
圖12.10  刪除New_Teacher2表中教工號為8的教師記錄
可見,教工號為8的教師記錄已經(jīng)被整行刪除。
12.2.3  DELETE語句刪除多行數(shù)據(jù)
與前面介紹的數(shù)據(jù)更新操作一樣,可以在WHERE子句中設(shè)置各種搜索條件,也可以通過子查詢或者多表連接的方式選擇要刪除的行。
實(shí)例10  DELETE語句刪除多行數(shù)據(jù)
從New_Teacher2表中,刪除工資低于所有教師平均工資的男教師的記錄。
實(shí)例代碼:
DELETE FROM                        New_Teacher2
WHERE                                                  TSEX=’男’
AND                                                                        SAL < (SELECT  avg(SAL)
FROM                New_Teacher2)
查看表New_Teacher2的數(shù)據(jù)。
SELECT  *  FROM  New_Teacher2
運(yùn)行結(jié)果如圖12.11所示。
可見,教工號為1和3的兩位男教師記錄已經(jīng)被刪除。
圖12.11  刪除New_Teacher2表中工資低于所有教師平均工資的男教師的記錄
12.2.4  DELETE語句刪除所有行
如果DELETE語句中,不包含WHERE子句,則該表的所有行都將被刪除。
實(shí)例11  DELETE語句刪除所有行
刪除New_Teacher2表中的所有記錄,代碼如下:
DELETE FROM                        New_Teacher2
查看表New_Teacher2的數(shù)據(jù)。
SELECT  *  FROM  New_Teacher2
運(yùn)行結(jié)果如圖12.12所示。
圖12.12  刪除New_Teacher2表中的所有記錄
可以發(fā)現(xiàn),New_Teacher2表中的所有記錄都被刪除了,但是New_Teacher2表本身(各個字段)還存在,并沒有被刪除。
12.2.5  TRUNCATE TABLE語句
從12.2.4節(jié)可以看到,使用沒有WHERE子句的DELETE語句可以從表中刪除所有的行。在SQL Server中,還提供了TRUNCATE TABLE語句,供用戶刪除表中的所有數(shù)據(jù),同時又不刪除表結(jié)構(gòu)。TRUNCATE TABLE語句語法如下。
TRUNCATE TABLE  table_name
雖然使用DELETE語句和TRUNCATE TABLE語句都能夠刪除表中的所有數(shù)據(jù),但是使用TRUNCATE TABLE語句比用DELETE語句快得多,表現(xiàn)為以下兩點(diǎn)。
     使用DELETE語句,系統(tǒng)將一次一行地處理要刪除的表中的記錄,在從表中刪除行之前,在事務(wù)處理日志中記錄相關(guān)的刪除操作和刪除行中的列值,以防止刪除失敗時,可以使用事務(wù)處理日志來恢復(fù)數(shù)據(jù)。
     TRUNCATE TABLE則一次性完成刪除與表有關(guān)的所有數(shù)據(jù)頁的操作。另外,TRUNCATE TABLE語句并不更新事務(wù)處理日志。由此,在SQL Server中,使用TRUNCATE TABLE語句從表中刪除行后,將不能用ROLLBACK命令取消行的刪除操作。
注意
TRUNCATE TABLE語句不能用于有外關(guān)鍵字依賴的表。
實(shí)例12  TRUNCATE TABLE語句刪除表中的數(shù)據(jù)
刪除New_Teacher表中的所有數(shù)據(jù),代碼如下。
TRUNCATE TABLE                     New_Teacher
查看刪除數(shù)據(jù)后表New_Teacher中的數(shù)據(jù)。
SELECT  *  FROM  New_Teacher
運(yùn)行結(jié)果如圖12.13所示。
圖12.13  刪除New_Teacher表中的所有數(shù)據(jù)
可見,表New_Teacher中的數(shù)據(jù)均被刪除,但表結(jié)構(gòu)并沒有被刪除,這與DROP TABLE語句是不同的。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
truncate與delete的區(qū)別
實(shí)例對比Oracle中truncate和delete的區(qū)別
mysql數(shù)據(jù)庫面試總結(jié)
SQL語句中
Sql表數(shù)據(jù)操作
sql server 基本命令介紹
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服