一些sql语句

本文分享了SQL使用中的一些实用技巧,包括如何删除表中的重复记录、统计重复数据、列出表字段、收缩数据库大小、匹配特定格式的数据、同步两张表中的数据等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.删除表中重复记录,以前是加DISTINCT参数,导出到临时表,再导回来,无意中发现一条语句也可以。例如,去掉学号字段重复的记录:
None.gifdelete from [table] where ID not in (select max(ID) as ID from [table] group by 学号)

2.和上边类似,列出学号重复的记录数:
None.gifselect max(学号),count(学号) from [table] group by 学号 having count(学号)>0
3.列出数据表的字段
None.gifselect name from syscolumns where id=object_id('表名')
4.收缩数据库(会大大减小数据库和日志):
None.gifdbcc shrinkdatabase(数据库名)

5.以前匹配如:2006开头的字段,都用left(字段,4)='2006',据说这样效率低,改写成这样:
None.gifselect 学号 from [表名] where 入学时间 like '2006%'
6.table1记录学生密码,table2记录学生信息,根据table2的学号,自动添加没有的学号到table1中
None.gifINSERT INTO [table1]
None.gif      (学号, 姓名, 密码)
None.gif
SELECT 学号, 姓名, '111111' AS 密码
None.gif
FROM [table2]
None.gif
WHERE (NOT EXISTS
None.gif          (
SELECT 学号
None.gif         
FROM [table1]
None.gif         
WHERE [table2].学号 = [table1].学号))

7.接上一个,删除table1中在table2里没有记录的学号
None.gifDELETE FROM [table1] WHERE (NOT EXISTS
None.gif(
SELECT 学号 FROM [table2]
None.gif
WHERE [table1].学号 = [table2].学号))

转载于:https://www.cnblogs.com/zwei1121/archive/2007/04/16/715370.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值