sql語句刪除記錄
『壹』 刪除重復記錄的sql語句
刪除重復記錄的sql語句
我們提供了兩款刪除重復記錄的sql語句,一種是用id
not
in來實例,也算是聯合查詢的方法吧,第二種是臨時表來刪除重復記錄。
1),delete
from
tablename
where
id
not
in
(select
max(id)
from
tablename
group
by
col1,col2,...)
2),select
distinct
*
into
temp
from
tablename
delete
from
tablename
insert
into
tablename
select
*
from
temp
『貳』 sql中如何刪除一個表中重復的記錄
sql中刪除一個表中的重復記錄可以採用如下步驟:
1、把a_dist表的記錄用distinct去重,結果放到臨時表中。
select distinct * into #temp from a_dist;
2、把a_dist表的記錄全部刪除。
delete from a_dist;
3、把臨時表中的數據信息導進到a_dist表中,並刪除臨時表。
insert into a_distselect * from #temp;
drop table #temp;
(2)sql語句刪除記錄擴展閱讀:
SQL (結構化查詢語言)是用於執行查詢的語法。在資料庫上執行的大部分工作都由 SQL 語句完成。SQL 語言包含用於更新、插入和刪除記錄的語法。
增刪改查指令構成了 SQL 的 DML 部分:
SELECT- 從資料庫表中獲取數據
UPDATE- 更新資料庫表中的數據
DELETE- 從資料庫表中刪除數據
INSERT INTO- 向資料庫表中插入數據
『叄』 用SQL語句怎麼刪除表中的所有數據
從一個表中刪除數據,使用DELETE語句。從表中刪除所有行
DELETE FROMtable_name;
或DELETE * FROMtable_name;
或DELETE FROM Customers
WHERE cust_id = '10000006';
DELETE不需要列名和通配符,它是刪除整行而不是刪除列,要刪除指定的列,請使用update語句;並且DELETE語句從表中刪除行,甚至是刪除表中所有行,而不是刪除表本身。
如果想刪除表中的所有行,可以使用TRUNCATE TABLE語句,完成相同的工作,而速度更快。
(3)sql語句刪除記錄擴展閱讀
drop直接刪掉表。
truncate刪除的是表中的數據,再插入數據時自增長的數據id又重新從1開始。
delete刪除表中數據,可以在後面添加where字句
(1)DELETE語句執行刪除操作的過程是每次從表中刪除一行,並且同時將該行的刪除操作作為事務記錄在日誌中保存以便進行進行回滾操作。TRUNCATE TABLE 則一次性地從表中刪除所有的數據並不把單獨的刪除操作記錄記入日誌保存,刪除行是不能恢復的。並且在刪除的過程中不會激活與表有關的刪除觸發器。執行速度快。
(2) 表和索引所佔空間。當表被TRUNCATE 後,這個表和索引所佔用的空間會恢復到初始大小,而DELETE操作不會減少表或索引所佔用的空間。drop語句將表所佔用的空間全釋放掉。
(3) 一般而言,drop > truncate > delete
(4) 應用范圍。TRUNCATE 只能對TABLE;DELETE可以是table和view
(5) TRUNCATE 和DELETE只刪除數據,而DROP則刪除整個表(結構和數據)。
(6) truncate與不帶where的delete :只刪除數據,而不刪除表的結構(定義)drop語句將刪除表的結構被依賴的約束(constrain),觸發器(trigger)索引(index);依賴於該表的存儲過程/函數將被保留,但其狀態會變為:invalid。
『肆』 sql中如何去掉一條記錄
如果所用的資料庫是
Microsoft
SQL
Server的話,對於這種所有欄位完全相同的數據記錄,是無法做到只刪除一條的,因為資料庫無法定位這些相同的記錄中的某一條!
所以,如果執行刪除的話,只有兩種可能(具體看你所使用的SQL查詢工具了):1)報錯,無法刪除,比如在SQL企業管理器中直接選中數據並做刪除操作;2)相同的記錄全部刪除,比如用SQL查詢分析器。
那麼樓主的問題要如何解決呢,思路是這樣:
1)去掉重復的:
select
distinct
*
into
#tmp
from
[tablename]
--將唯一性記錄寫入臨時表
delete
from
[tablename]
--將原表數據清空(最好先備份一下原數據表)
insert
into
[tablename]
select
*
from
#tmp
--從臨時表將數據插回
2)如果一定要數據重復,那請修改表[tablename]結構,增加一個[ID]欄位,並讓它自動增長,以便將相同記錄區分開來。然後將需要重復的記錄用如下語句重復插入:
insert
into
[tablename]
(欄位列表-不包含那個ID欄位)
select
(欄位列表-不包含那個ID欄位)from
[tablename]
where
[ID]=XXXX
(註:XXX是事先查到的需要重復的記錄ID欄位值)
GoodLuck!
希望對你能有所幫助。
『伍』 sql語句如何刪除一段時間內的記錄
1、使用BETWEEN關鍵字根據時間欄位刪除一定時間內的記錄
DELETE FROM 表名 WHERE 時間欄位 BETWEEN 開始時間 AND 結束時間
示例:
DELETE FROM tb WHERE CreateTime BETWEEN '2017-01-01 00:00:00' AND '2017-02-01 00:00:00'
--刪除tb表中2017年1月1日到2017年2月1日的數據
2、使用時間欄位比較大小來確定刪除范圍
--語法:
DELETE FROM 表名 WHERE 時間欄位>=開始時間 AND 時間欄位<=結束時間
示例:
DELETE FROM tb WHERE CreateTime>='2017-01-01 00:00:00' AND CreateTime<='2017-02-01 00:00:00'
3、結構化查詢語言(Structured
Query
Language)簡稱SQL,結構化查詢語言是一種資料庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關系資料庫系統;
4、sql
語句就是對資料庫進行操作的一種語言。
5、記錄篩選
sql="select
*
from
數據表
where欄位名=欄位值
order
by欄位名[desc]"(按某個欄位值降序排列。默認升序ASC)
sql="select
*
from
數據表
where欄位名like
'%欄位值%'
order
by
欄位名
[desc]"
sql="select
top
10
*
from
數據表
where欄位名=欄位值
order
by
欄位名
[desc]"
sql="select
top
10
*
from
數據表
order
by
欄位名
[desc]"
sql="select
*
from
數據表
where欄位名in
('值1','值2','值3')"
sql="select
*
from
數據表
where欄位名between
值1
and
值2"
『陸』 SQL語句刪除重復的記錄
刪除重復的數據
delete from tb where id not in (
select id from
(select fileSize,fileName ,max(id) id from tb group by filesize,filename ) a
)
現在完成了重復數據的刪除,主要是利用了找出某個分組中最大的那個id,其中包括了所有不重復的id,然後使用not in將需要保留的排除。
『柒』 怎樣用sql語言刪除一行數據
在SQL資料庫中刪除記錄一般使用Delete語句,下面就將為您介紹SQL中用於刪除記錄的DELETE語句的語法
DELETE FROM 表名稱 WHERE 列名稱 = 值
(7)sql語句刪除記錄擴展閱讀:
語句沒有where語句,所以它將刪除所有的記錄,因此如果沒有使用where的時候,要千萬小心。
為了從表中刪除一個完整的記錄或者行,就直接在"delete from"後面加上表的名字,並且利用where指明符合什麼條件的行要刪除即可。
『捌』 sql 刪除語句
1、delete 語句用於刪除表中的行。delete語句執行刪除的過程是每次從表中刪除一行,並且同時將該行的刪除操作作為事務記錄在日誌中保存
語法:DELETE FROM 表名稱 WHERE 列名稱 = 值,
如:刪除student表中姓名為張三豐的學生信息-delete from studentwhere name=『張三豐』;
2、drop (刪除表):刪除內容和定義,釋放空間。簡單來說就是把整個表去掉.以後要新增數據是不可能的,除非新增一個表。
drop語句將刪除表的結構被依賴的約束(constrain),觸發器(trigger)索引(index);依賴於該表的存儲過程/函數將被保留,但其狀態會變為:invalid。
3、truncate (清空表中的數據):刪除內容、釋放空間但不刪除定義(保留表的數據結構)。與drop不同的是,只是清空表數據而已。
注意:truncate 不能刪除行數據,要刪就要把表清空。
(8)sql語句刪除記錄擴展閱讀:
資料庫操作中,經常要用到刪除表和刪除表數據,在實際應用中,三者的區別是明確的。
當你不再需要該表時, 用 drop;
當你仍要保留該表,但要刪除所有記錄時, 用 truncate;
當你要刪除部分記錄時(always with a WHERE clause), 用 delete。
truncate 與delete 比較:
1、truncate table 在功能上與不帶 WHERE 子句的 delete語句相同:二者均刪除表中的全部行。
2、truncate 比 delete速度快,且使用的系統和事務日誌資源少。
3、truncate 操作後的表比Delete操作後的表要快得多。
『玖』 sql中如何去掉一條記錄
sql中去掉一條記錄的步驟如下:
我們需要准備的材料分別是:電腦、sql查詢器。
1、首先,打開sql查詢器,連接上相應的資料庫表,例如test3表。
『拾』 sql語句 刪除某欄位中一個數據
update表名set欄位名=nullwhere欄位名=值and欄位2=值2;
值就是你要刪除的數據 欄位2和值2值是用來定位值在表中的具體位置只有前面的值很容易刪除同欄位等值的數 加上欄位2值2就可以精準定位值2最好是唯一約束下面這是我寫的
updatestudentset年齡=nullwhere年齡=21and學號=4002;
這個用了欄位和主鍵 .看不懂多看幾遍.