当前位置:Gxlcms > 数据库问题 > SQL语句大全

SQL语句大全

时间:2021-07-01 10:21:17 帮助过:22人阅读

创建 备份数据的 device USE master EXEC sp_addumpdevice ‘disk‘, ‘testBack‘, ‘c:\mssql7backup\MyNwind_1.dat‘ //开始 备份 BACKUP DATABASE pubs TO testBack

根据已有的表创建新表

  1. <span style="color: #000000;">A:create table tab_new like tab_old (使用旧表创建新表)
  2. B:create table tab_new as SELECT col1,col2…from tab_old definition only</span>

增加一个列

Alter table tabname add column col type

注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。

分组:Group by

一张表,一旦分组完成后,查询后只能得到组相关的信息。

组相关的信息:(统计信息) count,sum,max,min,avg  分组的标准)

在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据

在selecte统计函数中的字段,不能和普通的字段放在一起;

复制表(只复制结构)

  1. <span style="color: #008000;">//</span><span style="color: #008000;">法一:</span>
  2. SELECT * INTO b FROM a WHERE 1 <> 1<span style="color: #000000;">(仅用于SQlServer)
  3. </span><span style="color: #008000;">//</span><span style="color: #008000;">法二:</span>
  4. SELECT top 0 * into b from a

跨数据库拷贝数据(具体数据使用绝对路径)

  1. <span style="color: #000000;">INSERT INTO b (a, b, c)
  2. SELECT
  3. d,e,f
  4. FROM b (in ‘具体数据库’)where 条件
  5. 例:..from b in </span>‘"&Server.MapPath(".")&"\data.mdb" &"‘ where..

随机取出10条数据

  1. SELECT TOP 10 * FROM tablename ORDER BY NEWID()

随机选择记录

  1. select newid()

列出数据库里所有的表名

  1. SELECT name FROM sysobjects WHERE type = ‘U‘ <span style="color: #008000;">//</span><span style="color: #008000;">U代表用户</span>

列出表里的所有的列名

  1. SELECT name FROM syscolumns WHERE id = OBJECT_ID(‘TableName‘)

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

  1. <span style="color: #000000;">SELECT
  2. type,
  3. SUM(CASE vender
  4. WHEN </span>‘A‘ THEN pcs ELSE 0<span style="color: #000000;">
  5. END),
  6. SUM(CASE vender
  7. WHEN </span>‘C‘ THEN pcs ELSE 0<span style="color: #000000;">
  8. END),
  9. SUM(CASE vender
  10. WHEN </span>‘B‘ THEN pcs ELSE 0<span style="color: #000000;">
  11. END)
  12. FROM tablename
  13. GROUP BY type</span>

初始化表table1

TRUNCATE TABLE table1

注意:会删除数据并将标志值置回1,但不会记录日志,TRUNCATE只在删除全表适

用,TRUNCATE是DDL不是DML

一条sql 语句搞定数据库分页

  1. SELECT TOP 10<span style="color: #000000;">
  2. b.</span>*<span style="color: #000000;">
  3. FROM (SELECT TOP </span>20<span style="color: #000000;">
  4. 主键字段,
  5. 排序字段
  6. FROM 表名
  7. ORDER BY 排序字段 DESC) a,
  8. 表名 b
  9. WHERE b.主键字段 </span>=<span style="color: #000000;"> a.主键字段
  10. ORDER BY a.排序字段</span>

删除重复记录

  1. <span style="color: #008000;">//</span><span style="color: #008000;">1</span>
  2. <span style="color: #000000;">delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)
  3. </span><span style="color: #008000;">//</span><span style="color: #008000;">2</span>
  4. select distinct *<span style="color: #000000;"> into temp from tablename
  5. delete from tablename
  6. insert into tablename select </span>*<span style="color: #000000;"> from temp
  7. 注意:不适合大容量但数据操作</span>

 

技巧

1=1,1=2的使用,在SQL语句组合时用的较多

“where 1=1” 选择全部   

“where 1=2” 全部不选

常识

在SQL查询中:from后最多可以跟多少张表或视图:256
在SQL语句中出现 Order by,查询时,先排序,后取
在SQL中,一个字段的最大容量是8000,而对于nvarchar(4000),由于nvarchar是Unicode码。  

拓展

局部性原理

当一个数据被用到时,其附近的数据也通常会马上被使用。程序运行期间所需要的数据通常比较集中。

SQL语句大全

标签:dev   复制表   code   obj   ali   back   技巧   run   比较   

人气教程排行