delete語句有條件快速刪除資料

2022-03-04 23:27:48 字數 5804 閱讀 1005

1樓:

delete :刪除資料表中的行(可以刪除某一行,也可以在不刪除資料表的情況下刪除所有行)。

刪除某一行:delete from 資料表名稱 where 列名稱=值;

刪除所有行:delete * from 資料表名稱刪除資料的速度,一般來說: drop> truncate > delete。

2樓:biabia學習君

sql:

delete from 表名稱 where 列名稱 = 值

eg:person:

lastname firstname address city

gates bill xuanwumen 10 beijing

wilson fred zhongshan 23 nanjing

刪除某行

"fred wilson" 會被刪除:

delete from person where lastname = 'wilson'

結果:lastnamefirstnameaddresscity

gates bill xuanwumen 10 beijing

刪除所有行

可以在不刪除表的情況下刪除所有的行。這意味著表的結構、屬性和索引都是完整的:

delete from table_name

或者:delete * from table_name

3樓:匿名使用者

gpsdate是日期型別吧,那就

delete from cartrackinfowhere gpsdate<'2012-01-01 23:59:59'沒錯啊

4樓:

不懂啥意思,你都寫出來了還讓別人幫啥?

sql怎麼用delete刪除多條資料

5樓:4終

1、首先,選擇資料庫。

2、然後根據查詢id的方法去刪除指定的某一行資料。

3、檢視資料,id為1的所有資料全都已經被刪除。

4、同樣地,也可以換一種查詢方法,這次用班級來查詢,原理是一樣的。

5、可以看到,所有班級也被刪除了。

6樓:匿名使用者

1、首先建立一個臨時表,用於演示sqlserver語法中delete刪除的使用方法

if object_id('tempdb..#tbldelete') is not null drop table #tbldelete;

create table #tbldelete(

code varchar(50),

total int

2、然後往臨時表#tbldelete中插入幾行測試,用於演示如何刪除資料

insert into #tbldelete(code, total) values('code1', 30);

insert into #tbldelete(code, total) values('code2', 40);

insert into #tbldelete(code, total) values('code3', 50);

insert into #tbldelete(code, total) values('code4', 6);

3、查詢臨時表#tbldelete中的測試資料select * from #tbldelete;

4、刪除臨時表#tbldelete中code欄位=code3的記錄,使用下面的delete語句

delete #tbldelete where code = 'code3'

5、再次查詢臨時表#tbldelete的結果,可以看到code3的記錄沒有了

select * from #tbldelete;

6、刪除臨時表#tbldelete中code欄位=code2的記錄,使用下面的delete語句。

注意,下面的delete語句後面有一個from關鍵字,這個關鍵字是可以省略的,但是建議不要省略

delete from #tbldelete where code = 'code2'

7、再次查詢臨時表#tbldelete的結果,可以看到code2的記錄沒有了

select * from #tbldelete;

8、最後,如果想要快速的刪除表中的所有資料,有下面兩種方式。第二種方式速度更快,delete from #tbldelete;truncate table #tbldelete;完成效果圖。

7樓:標標課堂

select、insertupdatedelete

8樓:匿名使用者

主要是把id拼成字串

如果id是字串形式,就需要單引號,如果是int型別,就不需要單引號以 單引號+id+單引號+英文逗號,把陣列中的id迴圈出來結果就是

id為nvarchar:'37','38','39',id為int:37,38,39

然後把字串最後一位除去

結果是'37','38','39'

或 37,38,39

然後用delete table的方式

delete本來就是多行刪除,而你其實要把多行刪除變為指定刪除,就是加上where條件

多個id的where條件,就用in()的方式,括號內是條件的多個指定項

delete 表 where id in (上面的字串)結果delete 表 where id in ('37','38','39')

delete 表 where id in (37,38,39)

求sql語句:按條件刪除資料

9樓:

前提是secend中的username是主鍵 first中是username是外來鍵語句如下

delete from second where username in (select username from first where to_number(to_char(time,'yyyymmdd')) < 20120203) cascade;

ps:否則還需要重新刪除first中的行如下

delete from first where to_number(to_char(time,'yyyymmdd')) < 20120203;

如果time不是date型

1.是varchar2型以上to_number(to_char(time,'yyyymmdd')) 改成to_number(substr(time,1,8))

2.是number型以上to_number(to_char(time,'yyyymmdd')) 改成substr(time,1,8)

10樓:西門公子慶

delete from secend t where t.username in (select username from first where time like '20120203%');

delete from first where time like '20120203%';

commit;

記得要先刪secend表,再刪first表。

表的資料量不會很大吧?那就直接執行就可以了。

另外如果time資料型別是date的,那就把time like '20120203%' 改成

time >=to_date('20120203','yyyymmdd') and time

11樓:匿名使用者

delete from second where username in( select username from first where left(time, 8) < '20120203')

delete from first where left(time, 8) < '20120203'

記得要先刪secend表,再刪first表。

已經測試通過!

12樓:匿名使用者

delete from first where time < date'2012-02-03';

delect from second where username not in (select uesrname from first);

為什麼不可以使用delete from---語句刪除資料量比較大的表(百萬級)中的資料?

13樓:

沒有規定不可以用,只是這種刪除,從業務上和效率上要做考究。

14樓:

如何你不想回滾就用truncate速度很快!但刪除後資料就不能恢復!

delete 刪除比較慢!但刪除後資料庫可以恢復!後面還是可以加where 條件刪除指定資料

15樓:匿名使用者

用delete刪除會把資料滯留在快取回滾區,要是刪除百萬級的資料,這樣效率會比較低。建議使用truncate刪除,但是前提是這個刪除操作不能恢復。

16樓:匿名使用者

不是不可以使用,而是delete操作會寫入日誌,導致刪除大量資料時效能低下,如果是要清空整表的話,建議用truncate,該操作不記錄日誌,但無法回滾,刪掉後想恢復資料是很麻煩的,所以比較危險,

如果不是刪除整表,還是要用delete的。

如果你是想刪除大部分資料只留下一小部分的話,可以把那一小部分轉移到一個臨時的表,然後對原表truncate,再把轉移的那部分資料複製回來。

17樓:匿名使用者

其實也沒有什麼不可以的。

只是刪除資料,在提交前,是要使用回滾段的,這樣資料量大的時候,可能將回滾段撐爆。

用sql語句怎麼刪除表中的所有資料?

18樓:我是一個麻瓜啊

有兩種辦法可以刪除表中的所有

資料:1、truncate table 刪除表中的所有行,而不記錄單個行刪除操作。

語法 truncate table name引數 name 是要截斷的表的名稱或要刪除其全部行的表的名稱。

2、delete from tablename where 1=1

19樓:匿名使用者

可以在不刪除表的情況下刪除所有的行。這意味著表的結構、屬性和索引都是完整的:

delete from table_name

或者:delete * from table_name

20樓:百度使用者

truncate table 表名

21樓:匿名使用者

dim sqlstr = "truncate table 表的名字"

updatedata(sqlstr)

22樓:隨偉春芳歇

使用sql語句刪除表中所有資料有以下三種方法:

1、drop table 表名稱

刪除表中的所有內容和定義,釋放空間,也就是把整個表都刪掉了。刪除後無法增加新的內容,除非新建表。

2、truncate table 表名稱

刪除表中的資料,但不刪除定義。truncate與drop不同的是,它只清空表資料而已,保留了表中的資料結構,可以新增資料。

3、delete table 表名稱

刪除整個表的資料,但是效率比truncate低,系統是一行一行的刪除資料。、

或者 delete table 表名稱 where 條件該語句刪除表中的內容不刪除定義,也不釋放空間。

愛都有條件嗎,男人的愛都是有條件的吧?

愛,總是有條件的 不要說你無條件地愛一個人,愛,總是有條件的。你可以什麼也不要,但是你要他愛你,這難道不是條件嗎?父母愛子女,也是有條件的,條件就是他們必須是他的兒女,如果是別人的兒女,他不會愛他們,不會用生命保護他們。女孩說 我的確是無條件地愛他,我甚至不需要他愛我。是的,即使他不愛她,她還是願意...

ACCA有條件免考

acca在中國設立的免試政策,主要分為四大類,具體如下 會計學或金融學 完成第一學年課程 可以註冊為acca正式學員,無免試 會計學或金融學 完成第二學年課程 免試3門課程 f1 f3 一般國內主課程為會計的文憑的,最少免3科 最多免5科。在申請acca免考的時候,會根據你的課程設定,課程內容作出評...

什麼是「有條件」錄取通知書,有條件的錄取通知書是怎麼回事?

暈死,有條件錄取跟獎學金根本沒什麼關係啊。conditional offer是指預先錄取,是給那些符合申請條件,但未得到最終成績的那些申請者的一個預先錄取。憑這個是不能入學的,還得滿足上面的conditions,也就是 條件 才可以正式錄取入學。而因為那個預錄上面,有一些 條件 要你達成才可以正式入...