1、1.数据类型类型 名称 取值范围整数bigint、int、smallint、tinyint(922 亿亿) 8(21 亿) 4(32768) 2(0-255) 1位型 Bit 由 0 和 1 表示真、假。货币型 money、smallmoney (922 万亿)(21 万) ,精确到万分之一。十进制 Decimal、Numeric 1038-1,最大位数 38 位浮点数 float、real (1.79E+308) (3.40E+38)日期时间Datetime、smalldatetime1753.1.1-9999.12.31,精确到 3.33 毫秒1900.1.1-2079.12.31,精确到
2、分钟单字节字符 char / varchar / text 定/变长单字节字符,最长 8000;Unicode 字符 nchar / nvarchar / ntext 定/变长双字节字符,最长 4000;二进制数据 Binary / varbinary / image 定/变长二进制数据,最长 8000;变长二进制数据timestamp SQL 活动的先后顺序。特殊类型 uniqueidentifier 全局唯一标识2.常量类型类型 说明 例如整型常量 没有小数点和指数 E 60,25,-365实型常量 decimal 或 numeric 带小数点的常数,float 或 real带指数 E 的
3、常数15.63、-200.25+123E-3、-12E5字符串常量 单引号引起来 学生,this is database双字节字符串前缀 N 必须是大写单引号引起来N学生日期型常量 单引号()引起来 6/5/03, May 12 2008,19491001货币型常量 精确数值型数据,前缀$ $380.2二进制常量 前缀 0x。 0xAE、0x12Ef、0x69048AEFDD010E全局唯一标识符前缀 0x单引号()引起来0x6F9619FF8B86D011B42D00C04FC964FF6F9619FF-8B86-D011-B42D-00C04FC964FF3.SQL 查询分析器常用快捷键快
4、捷键 功能 快捷键 功能CTRL+A 全选 F3 重复查找CTRL+C 复制 CTRL+H 替换CTRL+V 粘贴 CTRL+SHIFT+L 使选定内容为小写CTRL+X 剪切 CTRL+SHIFT+U 使选定内容为大写CTRL+Z 撤消 CTRL+F5 分析查询并检查语法TAB 增大缩进 F5 执行查询SHIFT+TAB 减小缩进 ALT+BREAK 取消查询CTRL+SHIFT+C 注释代码 F1 查询分析器帮助CTRL+SHIFT+R 删除注释 SHIFT+F1 对所选 SQL 语句的帮助CTRL+F 查找 F8 显示/隐藏对象浏览器4.select 无源查询,即在客户的屏幕上显示内容S
5、ELECT 常量 |变量|函数| 表达式 as 别名,n5. 变量是由用户定义并可赋值的实体。变量有全局变量和局部变量两种。局部变量用 DECLARE 语句声明,声明时它被初始化为 NULL,并由 SET 语句或 SELECT 语句赋值,它只能用在声明该变量的过程实体中,即使用范围是定义它的批、存储过程和触发器等。其名字由一个符号开始。 定义:DECLARE 局部变量名 数据类型,n赋值:SET 局部变量名 =表达式,n如:declare 整型变量int , s nvarchar(9)set 整型变量=40set s=欢迎您到太原。 select 整型变量 , s6. 全局变量全局变量由 SQ
6、L Server 系统提供并赋值的变量,名字由符号开始。用户不能建立全局变量,也不可能使用 SET 语句去修改全局变量的值。通常应该将全局变量的值赋给在同一个批中的局部变量,以便保存和处理。全局变量分为两类: 与连接有关的全局变量,如:rowcount 影响的行数; 与系统内部信息有关的全局变量。如version SQL 的版本号。SQL 常用的全局变量名称 说明connections 返回当前到本服务器的连接的数目。rowcount 返回上一条 T-SQL 语句影响的数据行数。error 返回上一条 T-SQL 语句执行后的错误号。procid 返回当前存储过程的 ID 号remserver
7、 返回登录记录中远程服务器的名字。spid 返回当前服务器进程的 ID 标识。version 返回当前 SQL Server 服务器的版本和处理器类型。language 返回当前 SQL Server 服务器的语言。7. 函数可分系统定义函数和用户定义函数。系统定义函数中最常用的是:数学函数、字符串函数、日期时间函数、聚合函数、系统函数、系统统计函数。数学函数:函数 名称ROUND(数字表达式, 小数位数) 四舍五入FLOOR(数字表达式) 整数函数(小于它的最大整数)CEILING(数字表达式) 整数函数(大于它的最小整数)RAND() 随机函数字符串函数:名称 函数ASCII 码 ASCI
8、I(字符表达式 )字符 CHAR(数字表达式 )统一代码 UNICODE(字符表达式)字符 NCHAR(数字表达式 )小写 LOWER(字符表达式)大写 UPPER(字符表达式)长度 LEN(字符表达式)空格 SPACE(数字表达式)截取左字串 LEFT(字符表达式,整数)截取右字串 RIGHT(字符表达式,整数)截取中间字串 SUBSTRING(字符表达式,起始点 ,n)求子串位置 CHARINDEX(字符表达式 1,字符表达式 2,开始位置)剪去左空格 LTRIM(字符表达式)剪去右空格 RTRIM(字符表达式)重复字串 REPLICATE(字符表达式,n)倒置字串 REVERSE(字符表
9、达式)数值转字串 STR(数字表达式)日期时间函数名称 函数现在日期时间 GETDATE()年 YEAR(日期型表达式)月 MONTH(日期型表达式)日 DAY(日期型表达式)日期 部分 DATEPART(格式串, 日期型表达式)日期 加 DATEADD(格式串,数值,日期)日期 差 DATEDIFF(格式串,日期 1,日期 2)聚合函数(除 count 外,其它的都忽略空值)名称 最大 最小 求和 平均 计数函数 MAX MIN SUM AVG COUNT系统函数函数 说明APP_NAME 当前会话的应用程序名称CURRENT_USER 当前的数据库用户。USER_NAME 用户数据库用户名
10、。SESSION_USER 会话用户名SYSTEM_USER 系统用户名HOST_ID 工作站标识号。HOST_NAME 工作站名称。ISDATE 是否为有效的日期。ISNULL 是否为 NULL。ISNUMERIC 是否为一个有效的数字类型。ERROR 最后执行的 T-SQL 语句的错误代码。TRANCOUNT 当前连接的活动事务数。系统统计函数函数 说明CONNECTIONS 连接次数。CPU_BUSY CPU 的工作时间IDLE 闲置的时间IO_BUSY 输入和输出的时间TIMETICKS 返回一刻度的微秒PACK_SENT 发送的数据包数PACK_RECEIVED 接受的数据包数PAC
11、KET_ERRORS 发生的数据包错误TOTAL_WRITE 写入磁盘的次数TOTAL_READ 读取磁盘的次数TOTAL_ERRORS 磁盘读/写错误次数8.逻辑运算运算符 含义AND 而且OR 或者NOT 否定IN 在之内LIKE 匹配(像)BETWEEN 在之间。EXISTS 存在ALL 所有(都)ANY 任一SOME 有些运算符优先级(从上到下,相同级从左到右)类型 运算符一元运算 +(正) 、-(负) 、(按位 NOT)乘除模 *(乘)、/(除) 、%( 模)加减串联 +(加) 、(+ 串联)、-(减)比较运算 =, , =, 位运算 (位异或)、&(位与)、|(位或)逻辑非 NOT
12、逻辑与 AND逻辑或等 ALL、ANY 、 BETWEEN、IN 、LIKE、OR、SOME赋值 =9. 批是一个 SQL 语句集,这些语句一起提交并作为一个组来执行。批结束的符号是“GO”。由于批中的多个语句是一起提交给 SQL SERVER 的,所以可以节省系统开销。使用批限制: CREATE DEFAULT、CREATE PROCEDURE、CREATE RULE、CREATE TRIGGER 和 CREATE VIEW 语句不能在批处理中与其它语句组合使用。批处理必须以 CREATE 语句开始,所有跟在 CREATE 后的其它语句将被解释为第一个 CREATE 语句定义的一部分。 在同
13、一个批中不能既绑定到列又被使用规则或默认。 在同一个批中不能删除一个数据库对象又重建它。 在同一个批中不能改变一个表再立即引用其新列。10. 1RETURNRETURN 的作用是无条件返回所在的批、存储过程和触发器。退出时,可以返回状态信息。在 RETURN语句后面的任何语句不被执行。RETURN 语句的语法形式:RETURN 整型表达式 2PRINT 和 RAISERRORPRINT 语句的作用是在屏幕上显示用户信息。其语法形式为:PRINT 字符串 | 局部变量 | 全局变量 RAISERROR 语句的作用是将错误信息显示在屏幕上,同时也可以记录在 NT 日志中。其语法形式为:RAISER
14、ROR(错误号 |错误信息 , 错误的严重级别 , 错误时的状态信息 )。 3复合语句(BEGIN.END)其语法形式为:BEGIN执行的 SQL 语句END4CASE 表达式根据测试/条件表达式的值的不同,取其相应的值。CASE WHEN 条件表达式 0 THEN 结果表达式 0,.nELSE 结果表达式 nEND如:declare 分数 decimaldeclare 成绩级别 nchar(3)set 分数 = 88set 成绩级别 = case when 分数 =90 and 分数=80 and 分数=70 and 分数=60 and 分数 ADD CONSTRAINT CHECK ( 约
15、束内容)1.约束种类. NOT NULL(非空)约束 PRIMARY KEY(主键)约束 UNIQUE(惟一性)约束 CHECK(检查)约束 DEFAULT(默认)约束 FOREIGN KEY(外键)约束 2.非空约束:CREATE TABEL 数据表名 (列名 数据类型 CONSTRAIN 约束名 NULL | NOT NULL, )主键约束:CREATE TABEL 数据表名 (列名 数据类型 CONSTRAIN 约束名 PRIMARY KEY CLUSTERED | NONCLUSTERED ,)(说明:语法格式 1 定义单列主键,CLUSTERED 和 NONCLUSTERED 分别代
16、表聚集索引和非聚集索引。 )语法格式 2:CREATE TABEL 数据表名 (CONSTRAIN 约束名 PRIMARY KEY CLUSTERED | NONCLUSTERED (列名 1,n),.)(说明:语法格式 2 定义多列组合主键,CLUSTERED 和 NONCLUSTERED 分别代表聚集索引和非聚集索引。 )唯一性约束:CREATE TABEL 数据表名 (列名 数据类型 CONSTRAIN 约束名 UNIQUE CLUSTERED | NONCLUSTERED ,.)(单列约束)语法格式 2:CREATE TABEL 数据表名 (CONSTRAIN 约束名 UNIQUE C
17、LUSTERED | NONCLUSTERED (列名 1,n) ,.) (多列唯一性约束)CHECK 约束:CREATE TABEL 数据表名 (列名 数据类型 CONSTRAINT 约束名 CHECK(逻辑表达式),.) (说明:如果是在现有表中添加检查约束,可以设置 WITH NOCHECK ,对现有数据强制约束约束检查)默认约束:语法格式 1: CREATE TABEL 数据表名 (列名 数据类型 CONSTRAINT 约束名 DEFAULT 默认值 ,.) 语法格式 2:CREATE TABEL 数据表名 (CONSTRAINT 约束名 DEFAULT 默认值 FOR 列,.) 外键
18、约束:语法格式 1:CREATE TABEL 数据表名 (列名 数据类型 CONSTRAIN 约束名 FOREIGN KEY REFERENCES 参照主键表 (参照列) ON DELETE CASCADE | ON UPDATE CASCADE ,.) (说明:语法格式 1 定义单列外键约束 。ON DELETE CASCADE 表示级联删除,即父表中删除被引用行时,也将从引用表中删除引用行; ON UPDATE CASCADE 表示级联更新,即父表中更新被引用行时,也将在引用表中更新引用行。 )语法格式 2: CREATE TABEL 数据表名 (CONSTRAIN 约束名 FOREIGN
19、 KEY (列 ,n) references 参照主键表 (参照列,n ) ON DELETE CASCADE | ON UPDATE CASCADE,.) (说明:语法格式 2 定义多列组合外键约束 。 )3.默认管理技术创建默认:CREATE DEFAULT 默认名称 AS 常数表达式 绑定默认:sp_bindefault defname = 默认名称 , objname = 对象名 , futureonly = futureonly_flag (说明:可以绑定到列或用户自定义类型。futureonly_flag 仅在将默认值绑定到用户定义的数据类型时才使用,将此参数设置为 futureo
20、nly 时,只有当包含用户定义数据类型的新表创建时,这个默认值才生效)解除默认绑定: sp_unbindefault objname = 对象名 , futureonly = futureonly_flag(说明:在解除绑定时不必指出默认名称,因为在指定的对象上只有一个默认存在。 )删除默认:DROP DEFAULT 默认值名 ,.n (说明:使用 DROP DEFAULT 从当前数据库中删除一个或多个用户定义的默认值。如果有绑定,则先解除绑定,再删除。 )4.使用规则创建规则:create rule 规则名 as 条件表达式 (说明:条件表达式是定义规则的条件,可以是 where 子句中任何
21、有效的表达式,并且可以包含诸如算术运算符、关系运算符和谓词(如 in、like、between)之类的元素。 )绑定规则:sp_bindrule rulename = 规则名 , objname = 对象名 , futureonly = futureonly_flag (说明:使用系统存储过程 sp_bindrule 可以将规则绑定到列或用户自定义的数据类型上。对象名是以“表名.列名” 格式指定的要绑定规则的表列,或者是用户定义数据类型的名称。futureonly_flag 与默认中的含义相同 )解除绑定:sp_unbindrule objname = 对象名 , futureonly = futureonly_flag删除绑定:DROP RULE 规则名 ,.n 默认和规则都要先解除绑定才能删除5.创建 IDENTITY(标识符)列:CREATE TABEL 数据表名 (列名 列数据类型 IDENTITY (种子, 增量) ,)使用 Identity 函数:IDENTITY ( 数据类型 , 种子 , 递增量 ) AS 列名 (说明:只用在带有 INTO table 子句的 SELECT 语句中,可以将标识列插入到新表中。尽管类似,但是 IDENTITY 函数不是与 CREATE TABLE 和 ALTER TABLE 一起使用的 IDENTITY 属性。 )