1. SQL语言
详见上一篇简书
SQL基础知识
2. T-SQL语言概述
提供了标准的SQL命令
提供类似C等第三代语言的基本功能,如变量说明,程序流程控制语言,功能函数等。
SQL Server 只提供储存与提供数据,所以SQL通常称为数据库引擎
3. T-SQL语言的分类
-
变量说明
-
数据定义语言DDL,用来建立数据库数据库对象和定义列等(CREATE)
-
DML:实现对数据库表各对象的操作,例如insert、update等。
-
DCL:数据控制语言,实现对数据库进行安全管理和权限管理等控制,例如grant、revoke、deny等。
-
附加的语言元素。T-SQL的附加语言元素,包括变量、运算符、函数、注释和流程控制语句等。
4. 数据类型
整型
- INT (INTEGER) 四字节
- SMALLINT 二字节
- TINYINT 一字节
- BIGINT 八字节
浮点型
- REAL (精确第七位)
- FLOAT(精确第十五位)
- DECIMAL
- NUMERIC(与3完全相同)
二进制数据类型
- BINARY(n) 表示数据长度取值为1到8000
- VARBINARY(n) n取值也为1到8000,若输入的数据过长将会截掉超出的部分
逻辑数据类型
BIT 一字节,可以理解为BOOL类型,数值为0或者1
字符数据类型
- CHAR (n)
- BCHAR(n) 两个字节为一个存储单位,可以表示更多的数
- VARCGAR
- NVARCHAR
文本和图形数据类型
- TEXT 忽略无限量
- NTEXT UNICODE
- IMAGE 二进制数据,长度不限制
日期与时间数据类型
- DATETIME 能表示到9999年
2.SMALLDATETIME 只能表示到2079年
日期输入格式各种均支持
YMD
2000/6/22
2006-6-22
2000.66.22 皆可
时间输入格式
3:5:7:2pm
货币数据类型
- MONEY 8字节
- SMALLMONET
特定数据类型
TIMESTAMP
UNIQUEIDENTIFIER 用于唯一标示的ID生成
用户自定义数据类型
新数据类型
TABLE 数据类型用于存储对表或试图处理后的结果集
5. 变量
局部变量
DECLARE @变量名 变量类型【@变量名 变量类型】
赋值 SELECT 变量名 = 值
declear @id char(10)
select @id = ' 10010001'
全局变量
全局变量已经定义好
用户只能使用,无法改变
全局变量对于用户来说是只读的
全局变量用两个@来表示
@@IDENTITY
insert into MyLoginTable(data_in) select getdata()
print @@IDENTITY
select * from MyLoginTable
print @@ROWCOUNT //答应结果行数
6. 注释符、运算符
注释/**/
7. 通配符
正则表达式
语法控制命令
IF ELSE
IF <条件表达式>
<命令行或程序块>
[ELSE[条件表达式]
<命令行或程序块>]
BEGIN END
BEGIN
你的程序块
END
CASE
有两种语法格式
CASE <运算式>
WHEN<运算式> THEN 程序块
WHEN <运算式> THEN 程序块
第二种:
CASE
WHEN 运算式 THEN 程序块
WHEN 运算式 THEN 程序块
ELSE 其他程序块
WHILE CONTINUE BREAK
while<条件表达式>
begin
你的程序块
end
WAITFOR
用于暂时停止程序执行直到所设定的等待时间已过。
waitfor delay "01:02:03"
等待一小时两分三秒
waitfor time '23.08.00'
等待一直到23点8分
GOTO
改变程序执行的流程
RETURN
return [整数值]
GO
批的结束语句
@my int = 2
GO
GO之后变量my失效
BACKUP
数据库备份
CHECKPOINT
设置保存点
DBCC
比较厉害- -但是比较复杂,初学者不学
DECLEAR
用于定义局部变量、游标、表类型的定义
在定义之后需要用select 或 set给变量赋值
EXECUTE(EXEC)
用来执行存储过程
KILL
终止某一过程的执行
打印,可以向客户端返回一个用户自定义的信息,最好不要超过8000、
RAISERROR
返回错误信息的同时返回用户一些自定义的信息
READTEXT
READTEXT {table.column text_pointer offset size}[HOLDLOCK]
READTEXT用于从数据类型为TEXT或IMAGE中读取数据的语句,后面offset指定偏移量,不指定默认读取4kb
SELECT
用于赋值,把表达式的值赋予局部变量
可以同时一次性给多个变量赋值
declare @ x char (30)
select @ x = 'CPU'
select @ x = d_name
from department
where dept_id = 9999
select @x
SET
- 用于给局部变量赋值
- 用于给游标赋值
- set一次只能给一个变量辅助
declare @ x
set @x = 'This is a set'
SHOTDOWN
用于终止sqlserver的执行