学习笔记之Transact-SQL

一、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

表示操作全部撤销

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值