‘壹’ sql 怎样删除一列中相同的数据
sql清除一列数据分为两种情况,一种是将一列的数据清空,另一种是将某列名删除。
工具:SQL
Server
2008
R2
表中数据如下:
一、将数据清空(删除begin_date列的数据,使之为空)
update
test
set
begin_date=null;
执行后结果:
二、将列名删除(删除begin_date列,使之在表中不存在)
alter
table
test
drop
column
begin_date;
执行后结果(可发现begin_date列已经删除):
‘贰’ sql多表关联删除
删除多表关联数据的三种方法
1、级联删除
createtablea
(
idvarchar(20)primarykey,
passwordvarchar(20)notnull
)
createtableb
(
idintidentity(1,1)primarykey,
namevarchar(50)notnull,
userIdvarchar(20),
foreignkey(userId)referencesa(id)ondeletecascade
)
表B创建了外码userId 对应A的主码ID,声明了级联删除
测试数据:
insertavalues('11','aaa')
insertavalues('23','aaa')
insertbvalues('da','11')
insertbvalues('das','11')
insertbvalues('ww','23')
删除A表内id为‘11’的数据,发现B表内userId 为“11”也被数据库自动删除了
deleteawhereid='11'
2、采用存储过程
A表:AID Aname 主健:AID
B表:BID BelongAID Bname 主健:BID,外健:BelongAID
C表:CID BelongBID Cname 主健:CID,外健:BelongBID
D表:DID BelongCID Dname 主健:DID,外健:BelongCID
其中:
A表和B表通过A.AID和B.BelongAID 创建了外健关系
B表和C表通过B.BID和C.BelongBID 创建了外健关系
C表和D表通过C.CID和D.BelongCID 创建了外健关系
3、采用触发器
删除Class表中的一条记录的同时删除该记录Class_No字段值在Student表中对应的记录。
CreateTriggerClass_delete
onClass
fordelete
as
begin
deletefromStudent
whereClass_No=(selectClass_Nofromdeleted)
end
‘叁’ SQL如何删除多表连接中的相同列(关联列)
如果是删除单个字段重复可用in,如果是删除多个字段重复可用exists。
如表1数据:
id name age
1 张三 19
2 李四 20
3 王五 17
4 赵六 21
表2数据:
id name age
1 张三 19
2 李四 21
5 王五 14
如果删除表1中id和表2相同的内容:
1
delete from 表1 where id in (select id from 表2)
如果删除表1中id,name和age都与表2相同的数据
1
delete from 表1 where exists (select 1 from 表2 where 表1.id=表2.id and 表1.name=表2.name and 表1.age=表2.age)
‘肆’ 用sql语句进行多表连接查询出现重复数据
1、在电脑上打开要去掉重复数据的数据库,这里新建一张含有重复数据的user表。
‘伍’ SQL 如何把两个表相关联的数据一同删除
其实你这个问题最好用数据库本身的外键解决。就是在子表建立指向父表的外键。当删除主表数据时,只要加上delete语句加上 on cascade,所有子表引用的数据就删除了。
‘陆’ 如何用SQL语句删除两个表中相同的记录
1,首先创建一个表,并在表中插入重复的记录,如下图所示。
‘柒’ sql leftjoin多表查询,出现重复的数据,怎么处理
sql left join多表查询,出现重复的数据使用distinct关键字可以去重。
工具/材料:Management Studio。
1、首先在桌面上,点击“Management Studio”图标。