一、Transact-SQL语言
MS SQLServer系统中使用的语言,是SQL的增强版本。MS SQLServer 2008遵循最新SQL标准(1999年出版,ANSI SQL-99)。
(一)Transact-SQL语言规范
1.DDL(数据库定义语言,Data Definition Language):对表进行定义
CREATE TABLE --创建表
DROP TABLE --删除表
ALTER TABLE --修改表
2.DML(数据库操作语言,Data Manipulation Language):对数据进行操作,不影响表结构
SELECT --检索数据
DELETE --删除数据
INSERT --插入数据
UPDATE --更新数据
3.DCL(数据库控制语言,Data Control Language):用于设置或修改数据库用户权限
GRANT --授予权限
REMOVE --撤销权限
DENY --拒绝权限
二、常量与变量
(一)常量:固定的数据值,如
字符串常量、二进制常量、十进制常量、十六进制常量、日期常量、实型常量(实数)、货币常量
(二)变量:值可以改变的量
1.全局变量:@@变量名
分为与当前SQL Server连接有关的全局变量和与整个SQL Server系统有关的全局变量。用法如:
SELECT @@VERSION --查询当前SQL Server版本
2.局部变量:@变量名
作用域在一定范围之内的变量,需要先声明再使用。
a)声明语法:
DECLARE @UserName NVARCHAR(20)
b)赋值:可使用SET或SELECT语句,如
SET UserName='admin'
c)如果所赋的值比允许的字符多,则数据被截断,如
DELARE @Name char(4)
SET @Name='20111122'
SELECT @Name --结果为2011
三、表达式
由变量、常量、运算符、函数等组成
四、运算符
(一)算数运算符:+、-、*、/和%
(二)比较运算符:
1.关键字GO
向 SQL Server 实用工具发出一批 Transact-SQL 语句结束的信号。go是把t-sql语句分批次执行。(一步成功了才会执行下一步,即一步一个GO)
2.关键字Use
是改变对哪个数据库的操作
(三)位运算
十进制的位运算就是把十进制数转换为二进制之后在每一位上进行运算
1.&符:两个位均为1时,结果为1,否则为0
2.|符:只要一个位为1,结果为1,否则为0
3.^符:两个位值不同时,结果为1,否则为0
4.~符(位非符):十进制得到的是相反数再减1。所以如果想获得一个十进制的数的相反数可以用位非运算加1
(四)运算符优先级
1.先执行位非运算(~)
2.乘(*)除(/)取模(%)
3.正(+)负(-)加(+)减(-)连接(+)位与(&)
4.比较运算符(>、<等)
5.位异或(^)位或(|)
6.NOT
7.AND
8.all、any、between、in、like、or、some、
9.赋值(=)
五、控制语句
(一)begin…end
将查询语句作为一个语句块进行处理,begin为开始位置,end为结束位置
(二)if
语法为:if 判断条件 查询语句1 else 查询语句2
条件为true,执行语句1;否则,执行语句2。如:
if 1=1
print 'Yes'
else
print 'no'--返回消息为Yes
(三)case
语法:
CASE i
WHEN 1 THEN 'aaa'
WHER 2 THEN 'bbb'
ELSE 'ccc'
END
例如:
用法一:
SELECT FName,
(
CASE FLevel
WHEN 1 THEN '普通客户'
WHEN 2 THEN '会员'
WHEN 3 THEN 'VIP'
ELSE '未知客户'
) AS '客户类型'
FROM T_Customer
用法二:
SELECT FName,
(
CASE
WHEN FSalary<2000 THEN '低收入'
WHEN FSalary>=2000 AND FSalary<5000 THEN '中等收入'
ELSE '高收入'
) AS 收入水平
FROM T_Employee
(四)while循环
declare @sum int
set @sum=0
declare @i int
set @i=1
while @i<=2
begin
set @sum=@sum+@i
set @i=@i+1
end
select (@sum)
注意:其中begin...end块是必须的
六、事务
用户定义的一个数据库操作序列,这些操作要么全做,要么全不做
(一)特点
1.原子性
要么所有操作都执行,要么一个都不执行
2.一致性
数据必须保持一致状态
3.孤立性
事务过程中暂时不一致的数据都不能被其他事务应用
4.持久性
事务一旦提交,就变成永久的
(二)事务语句
1.begin transaction
事务以begin transaction开始
2.commit
表示提交事务的所有操作,事务正常结束
3.rollback
表示操作全部撤销