SQL Server语句
序号 功能 语句
1 创建数据库(创建之前判断该数据库是否存在) if exists (select * from sysdatabases where name='databaseName')
drop database databaseName
go
Create DATABASE databasename
2 删除数据库 drop database databasename
3 备份数据库 USE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
BACKUP DATABASE pubs TO testBack
4 创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
5 根据已有表创建新表 1、use 原数据库名  
go
select * into 目的数据库名.dbo.目的表名 from 原表名(使用旧表创建新表)
2、create table tab_new as select col1,col2… from tab_old definition only
6 创建序列 create sequence SIMON_SEQUENCE
minvalue 1 -- 最小值
maxvalue 999999999999999999999999999 -- 最大值
start with 1 -- 开始值
increment by 1 -- 每次加几
cache 20;
7 删除新表 drop table tabname
8 增加一个列 Alter table tabname add colname coltype
alter table tablename add column_b int identity(1,1)
9 删除一个列 Alter table tabname drop column colname
10 修改一个列 ALTER TABLE 表名 ALTER COLUMN 字段名 varchar(30) NOT NULL
DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
11 添加主键 Alter table tabname add primary key(col)
12 删除主键 Alter table tabname drop primary key(col)
13 创建索引 create [unique] index idxname on tabname(col…。)
14 删除索引 drop index idxname on tabname
15 创建视图 create view viewname as select statement
16 删除视图 drop view viewname
17 选择数据记录 sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]"
sql="select * from 数据表 where 字段名 like '%字段值%' order by 字段名 [desc]"
sql="select top 10 * from 数据表 where 字段名=字段值 order by 字段名 [desc]"
sql="select top 10 * from 数据表 order by 字段名 [desc]"
sql="select * from 数据表 where 字段名 in ('值1','值2','值3')"
sql="select * from 数据表 where 字段名 between 值1 and 值2"
注:like中"%"匹配0个或多个字符;like中"_"匹配一个字符
18 更新数据记录 sql="update 数据表 set 字段名=字段值 where 条件表达式"
sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"
19 删除数据记录 sql="delete from 数据表 where 条件表达式"
sql="delete from 数据表" (将数据表所有记录删除)
20 添加数据记录 sql="insert into 数据表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)"
sql="insert into 目标数据表 select * from 源数据表" 
(把源数据表的记录添加到目标数据表)
21 数据记录统计函数 AVG(字段名) 得出一个表格栏平均值
COUNT(*;字段名) 对数据行数的统计或对某一栏有值的数据行数统计
MAX(字段名) 取得一个表格栏最大的值
MIN(字段名) 取得一个表格栏最小的值
SUM(字段名) 把数据栏的值相加
引用以上函数的方法:
sql="select sum(字段名) as 别名 from 数据表 where 条件表达式"
set rs=conn.excute(sql)
用 rs("别名") 获取统计的值,其它函数运用同上。
22 查询去除重复值 select distinct * from table1
23 查询数据库中含有同一这字段的表 select name from sysobjects 
where xtype = 'u' and id in(select id from syscolumns where name = 's3')
24 只复制表结构 select * into a from b where 1<>1
select top 0 * into b from a
25 复制内容 set identity_insert aa ON
insert into aa(Customer_ID, ID_Type, ID_Number) 
select Customer_ID, ID_Type, ID_Number from TCustomer;
set identity_insert aa OFF
26 UNION 运算符(使用运算词的几个查询结果行必须是一致的) UNION 运算符通过组合其他两个结果表(例如TABLE1 和TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随UNION 一起使用时(即UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自TABLE1 就是来自TABLE2。
27 EXCEPT 运算符 EXCEPT 运算符通过包括所有在TABLE1 中但不在TABLE2 中的行并消除所有重复行而派生出一个结果表。当ALL 随EXCEPT 一起使用时(EXCEPT ALL),不消除重复行。
28 INTERSECT 运算符 INTERSECT 运算符通过只包括TABLE1 和TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当ALL 随INTERSECT 一起使用时(INTERSECT ALL),不消除重复行。
29 left (outer) join 左外连接(左连接):结果集既包括连接表的匹配行,也包括左连接表的所有行。
30 right (outer) join 右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
31 full/cross (outer) join 全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。
32 判断临时表是否存在 if object_id('tempdb..#临时表名') isnot null
drop table#临时表名
33 判断列是否自增列 if columnproperty(object_id('table'),'col','IsIdentity')=1
print '自增列'
else
print '不是自增列'
SELECT* FROM sys.columns WHERE object_id=OBJECT_ID('表名')
AND is_identity=1
34 判断表中是否存在索引 if exists(select * from sysindexes  
          whereid=object_id('表名') and name='索引名')
print '存在'  else  print '不存在
35 between between为查询某字段的指定范围,限制查询数据范围时包括了边界值
not between不包括边界值
36 删除主表没有的信息 两张关联表delete from table1 
where not exists ( select * from table2 where table1.field1=table2.field1)
37 随机取出10条数据 select top 10 * from tablename order by newid()
38 初始化表 TRUNCATE TABLE table1
39 1=1,1=2的使用 where 1=1”是表示选择全部;“where 1=2”全部不选
40 收缩数据库 重建索引:
DBCC REINDEX
DBCC INDEXDEFRAG
收缩数据和日志:
DBCC SHRINKDB
DBCC SHRINKFILE
41 压缩数据库 dbcc shrinkdatabase(dbname)
42 转移数据库给新用户以已存在用户权限 exec sp_change_users_login 'update_one','newname','oldname'
go
43 检查备份集 RESTORE VERIFYONLY from disk='E:\dvbbs.bak'
44 修复数据库 Alter DATABASE [dvbbs] SET SINGLE_USER
GO
DBCC CHECKDB('dvbbs',repair_allow_data_loss) WITH TABLOCK
GO
Alter DATABASE [dvbbs] SET MULTI_USER
GO
45 分组:Group by 一张表,一旦分组 完成后,查询后只能得到组相关的信息。
组相关的信息:(统计信息) count,sum,max,min,avg 分组的标准)
在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据
在selecte统计函数中的字段,不能和普通的字段放在一起;
46 修改数据库名称 sp_renamedb 'old_name', 'new_name'
47 在线视图查询 select * from (SELECT a,b,c FROM a) T where t.a > 1;
48 更改某个表 exec sp_changeobjectowner 'tablename','dbo'
49 按姓氏笔画排序 Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as //从少到多
50 数据库加密 select encrypt('原始密码')
select pwdencrypt('原始密码')
select pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同
select pwdencrypt('原始密码')
select pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同
51 查看硬盘分区 EXEC master..xp_fixeddrives
52 比较A,B表是否相等 if (select checksum_agg(binary_checksum(*)) from A)
=(select checksum_agg(binary_checksum(*)) from B)
print '相等'
else  print '不相等'
53 杀掉所有的事件探察器进程 DECLARE hcforeach CURSOR GLOBAL FOR SELECT 'kill '+RTRIM(spid) FROM master.dbo.sysprocesses
WHERE program_name IN('SQL profiler',N'SQL 事件探查器')
EXEC sp_msforeach_worker '?'
54 N到M条记录(要有主索引ID) Select Top M-N * From 表 Where ID in (Select Top M ID From 表) Order by ID Desc
55 查看与某一个表相关的视图、存储过程、函数 select a.* from sysobjects a, syscomments b where a.id = b.id and b.text like '%表名%'
56 不同服务器数据库之间的数据操作 //--创建链接服务器
exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 '
exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用户名 ', '密码 '
--查询示例
select * from ITSV.数据库名.dbo.表名
--导入示例
select * into 表 from ITSV.数据库名.dbo.表名
--以后不再使用时删除链接服务器
exec sp_dropserver 'ITSV ', 'droplogins '
57 连接远程/局域网数据(openrowset) //--1、openrowset
--查询示例
select * from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)
--生成本地表
select * into 表 from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)
--把本地表导入远程表
insert openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)
select *from 本地表
--更新本地表
update b set b.列A=a.列A
from openrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码 ',数据库名.dbo.表名)as a inner join 本地表 b  on a.column1=b.column1
58 连接远程/局域网数据(openquery) //--openquery用法需要创建一个连接
--首先创建一个连接创建链接服务器
exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 '
--查询
select * FROM openquery(ITSV, 'SELECT * FROM 数据库.dbo.表名 ')
--把本地表导入远程表
insert openquery(ITSV, 'SELECT * FROM 数据库.dbo.表名 ') select * from 本地表
--更新本地表
update b set b.列B=a.列B
FROM openquery(ITSV, 'SELECT * FROM 数据库.dbo.表名 ') as a
inner join 本地表 b on a.列A=b.列A
59 连接远程/局域网数据(opendatasource) //--3、opendatasource/openrowset
SELECT * FROM opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ' ).test.dbo.roy_ta
--把本地表导入远程表
insert opendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ').数据库.dbo.表名  select * from 本地表
60 自定义数据类型 EXEC sp_addtype birthday, datetime, 'NULL'

SQLServer语句 汇总的更多相关文章

  1. MySQL增删改查的常用语句汇总

    MySQL增删改查的常用语句汇总 以下是总结的mysql的常用语句,欢迎指正和补充~ 一.创建库,删除库,使用库 1.创建数据库:create database 库名; 2.删除数据库:drop da ...

  2. 简单的sql语句汇总(sqlserver)

    1.修改字段的默认值 alter table 表名 add default 默认值 for 字段名称 例子: for Age; alter table 表名 add constraint DF_TAB ...

  3. SqlServer 查询表、表说明、关联表、字段说明,语句汇总

    ----查询所有的表 SELECT * FROM SYSOBJECTS WHERE TYPE='U' ----根据表名查询所有的字段名及其注释 SELECT A.NAME,B.VALUE FROM S ...

  4. sql常用语句汇总

    --创建数据库 USE yuju CREATE database YuJu on primary ( name='YuJu', filename='B:\ceshi数据库\YuJu.mdf', max ...

  5. SQLSERVER语句 in和exists哪个效率高本人测试证明

    SQLSERVR语句 in和exists哪个效率高本人测试证明 最近很多人讨论in和exists哪个效率高,今天就自己测试一下 我使用的是客户的数据库GPOSDB(已经有数据) 环境:SQLSERVE ...

  6. SQL语句汇总(终篇)—— 表联接与联接查询

    上一篇博文说到相关子查询效率低下,那我们怎么能将不同表的信息一起查询出来呢?这就需要用到表联接. 和之前的UNION组合查询不同,UNION是将不同的表组合起来,也就是纵向联接,说白了就是竖着拼起来. ...

  7. SQL语句汇总(一)——数据库与表的操作以及创建约束

    首先,非常感谢大家对上篇博文的支持,真是让本菜受宠若惊,同时对拖了这么久才出了此篇表示抱歉. 前言:此文旨在汇总从建立数据库到联接查询等绝大部分SQL语句.SQL语句虽不能说很多,但稍有时间不写就容易 ...

  8. SQL语句汇总(终篇)—— 表联接与联接查询

    既然是最后一篇那就不能只列出些干枯的标准语句,更何况表联接也是SQL中较难的部分,所以此次搭配题目来详细阐述表联接. 上一篇博文说到相关子查询效率低下,那我们怎么能将不同表的信息一起查询出来呢?这就需 ...

  9. SQL语句汇总(一)——数据库与表的操作以及创建约束

    首先,非常感谢大家对上篇博文的支持,真是让本菜受宠若惊,同时对拖了这么久才出了此篇表示抱歉. 前言:此文旨在汇总从建立数据库到联接查询等绝大部分SQL语句.SQL语句虽不能说很多,但稍有时间不写就容易 ...

随机推荐

  1. maven的SNAPSHOT版本和正式版本不同

    转载文章: http://www.huangbowen.net/blog/2016/01/29/understand-official-version-and-snapshot-version-in- ...

  2. eclipse 使用(一)单步调试

    昨天终于将取数据的流程走通了.但是没有成功获得数据.原因是,把服务器中的数据库还原到了本地.而测试数据是写到了本地.把数据给覆盖了.早上来了之后,赶紧在服务器上把数据弄了一下. 之后开始跑代码. 项目 ...

  3. jquery获得图片的真实大小

    $(function(){ var imgSrc = $("#image").attr("src"); getImageWidth(imgSrc,functio ...

  4. iOS设备的尺寸

    iOS设备的尺寸有两种统计单位:像素和点,对于程序员来说,只需要记住点即可. 常见的iOS设备的尺寸(点) 分辨率(点) 设备 分辨率(像素) 320*480 4.4s 320*480(4) 640* ...

  5. Delphi 2010错误 "displayNotification: 内存不够"

    打开 Delphi 2010 的时候, 它报一个错误 "displayNotification: 内存不够",从而无法使用 Delphi , 解决办法 摘自http://www.cnblogs.com ...

  6. WCF:没有终结点在侦听可以接受消息的*这通常是由于不正确的地址或者 SOAP操作导致的。

    没有终结点在侦听可以接受消息的 http://xx.com/WebService.svc. 这通常是由于不正确的地址或者 SOAP 操作导致的.如果存在此情况,请参见 InnerException 以 ...

  7. input 只读不能修改

    方法1: onfocus=this.blur() <input type="text" name="input1" value="中国" ...

  8. [经验交流] 简单安装 centreon 3.2

    centreon 是一个自动化监控平台,监控数据存储在 mysql 中,监控配置在UI中操作,方便且功能强大. 1. centreon 监控引擎 centreon 可以与 nagios 结合,使用 n ...

  9. 学习C++的第二天

    1.输入 十六进制  cin>>hex>>x>>dec>>y    dec 是十进制    oct 是八进制 输出 十六进制 cout<<h ...

  10. JavaScript 在不刷新或跳转页面的情况下改变当前浏览器地址栏上的网址

    JavaScript 在不刷新或跳转页面的情况下改变当前浏览器地址栏上的网址 var stateObject = {}; var title = "改变后的网址的标题"; var ...