就业数据资源平台
当前位置:首页 > 数据库技术
2012年计算机三级数据库技术SQL语句辅导:提升篇(2)

16、说明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表

  (select a from tableA ) except (select a from tableB) except (select a from tableC)


  17、说明:随机取出10条数据


  select top 10 * from tablename order by newid()


  18、说明:随机选择记录


  select newid()


  19、说明:删除重复记录


  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


  评价: 这种操作牵连大量的数据的移动,这种做法不适合大容量但数据操作


  3),例如:在一个外部表中导入数据,由于某些原因第一次只导入了一部分,但很难判断具体位置,这样只有在下一次全部导入,这样也就产生好多重复的字段,怎样删除重复字段


  alter table tablename


  --添加一个自增列


  add column_b int identity(1,1)


  delete from tablename where column_b not in(


  select max(column_b) from tablename group by column1,column2,...)


  alter table tablename drop column column_b


  20、说明:列出数据库里所有的表名


  select name from sysobjects where type='U' // U代表用户


  21、说明:列出表里的所有的列名


  select name from syscolumns where id=object_id('TableName')


  22、说明:列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case。


  select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type


  显示结果:


  type vender pcs


  电脑 A 1


  电脑 A 1


  光盘 B 2


  光盘 A 2


  手机 B 3


  手机 C 3


  23、说明:初始化表table1


  TRUNCATE TABLE table1


  24、说明:选择从10到15的记录


  select top 5 * from (select top 15 * from table order by id asc) table_别名 order by id desc

就业数据资源平台