推荐 删除重复数据
一、具有主键的情况
a.具有唯一性的字段id(为唯一主键)
delect table
where id not in
(
select max(id) from table group by col1,col2,col3...
)
group by 子句后跟的字段就是你用来判断重复的条件,如只有col1,
那么只要col1字段内容相同即表示记录相同。
b.具有联合主键
假设col1+','+col2+','...col5 为联合主键
select * from table where col1+','+col2+','...col5 in (
select max(col1+','+col2+','...col5) from table
where having count(*)>1
group by col1,col2,col3,col4
)
group by 子句后跟的字段就是你用来判断重复的条件,
如只有col1,那么只要col1字段内容相同即表示记录相同。
or
select * from table where exists (select 1 from table x where table.col1 = x.col1 and
table.col2= x.col2 group by x.col1,x.col2 having count(*) >1)
c:判断所有的字段
select * into #aa from table group by id1,id2,....
delete table
insert into table
select * from #aa
二、没有主键的情况
a:用临时表实现
select identity(int,1,1) as id,* into #temp from ta
delect #temp
where id not in
(
select max(id) from # group by col1,col2,col3...
)
delete table ta
inset into ta(...)
select ..... from #temp
b:用改变表结构(加一个唯一字段)来实现
alter table 表 add newfield int identity(1,1)
delete 表
where newfield not in
(
select min(newfield) from 表 group by 除newfield外的所有字段
)
alter table 表 drop column newfield
B. SQL语言中删除数据库表和删除数据库表中记录分别使用什么命令
删除表用drop语句:droptabletablename;
解释:上面语句的意思就是删除表名为tablename的表。
删除记录用delete语句:='123';
解释:上面语句的意思就是删除tablename表中username字段的值为123的所有记录。
备注:drop通常是删除的对象,delete通常删除的是某些特定条件下的记录。
C. 怎样用sql语言删除一行数据
在SQL数据库中删除记录一般使用Delete语句,下面就将为您介绍SQL中用于删除记录的DELETE语句的语法
DELETE FROM 表名称 WHERE 列名称 = 值
(3)sql删除记录的命令扩展阅读:
语句没有where语句,所以它将删除所有的记录,因此如果没有使用where的时候,要千万小心。
为了从表中删除一个完整的记录或者行,就直接在"delete from"后面加上表的名字,并且利用where指明符合什么条件的行要删除即可。
D. SQL删除命令
删除DB中的表SQL语句:
drop table (table_name)
删除表中对象:
delete (name) where (对象名) like '(匹配项)'
E. SQL 删除命令!急急急!
删除是delete from 表 where条件。如果就这一条,很简单
delete from 0600.66310 where 系统编号=4410; 然后commit;
F. SQL中删除记录的方法
设数据库中有某个数据表text
删除表:
DROP TABLE test
删除表中某条记录:
DELETE FROM test WHERE ...【这里是你的查找条件,满足这个条件的记录将被删除,也可以用子查询语句】
G. SQL语言中,删除表中数据的命令是什么
delete table where 条件
H. 在visual foxpro中sql delete命令是____删除记录
sql的delete命令和传统的visual foxpro的delete命令只能逻辑删除数据库表中的记录。要物理删除需用pack命令,故该题答案为逻辑。
I. 在sql中,对基本表中的记录进行插入.修改.删除的命令分别为
1、插入
--1.1【插入单行】
insert[into]<表名>(列名)values(列值)
--例:
insertintoStrdents(姓名,性别,出生日期)values('开心朋朋','男','1980/6/15')
2、修改
update<表名>set<列名=更新值>[where<更新条件>]
--例:
updatetongxunluset年龄=18where姓名='蓝色小名'
3、删除
--3.1【删除<满足条件的>行】
deletefrom<表名>[where<删除条件>]
--例:
deletefromawherename='开心朋朋'(删除表a中列值为开心朋朋的行)
3.2【删除整个表】
truncatetable<表名>
truncatetabletongxunlu
--注意:删除表的所有行,但表的结构、列、约束、索引等不会被删除;不能用语有外建约束引用的表