2.1Transact-SQL概述
2.1.1 什么是Transact-SQL
SQL(Structured Query Language)是对数据库进行查询和修改操作的语言。T-SQL是微软公司对SQL语言的扩展。根据其完成的具体功能不同,可以将T-SQL语句分为四大类:数据操作语句、数据定义语句、数据控制语句和一些附加的语言元素。
数据操作语句关键字:select、insert、delete、update
数据定义语句关键字:create、alter、drop
数据控制语句关键字:grant、deny、revoke
附加的语句的关键字:begin / commit transaction、rollback、fetch、execute
2.1.2 T-SQL语法的约定
大写 :T-SQL关键字。
| (竖线) :分隔括号或大括号中的语法项。只能使用其中一项。
[] (方括号) :可选语法项。不需要输入方括号。
{}(大括号):必选语法项。不要输入大括号。
[,...n] :指示前面的项可以重复n次。每项之间以逗号分割。
[...n] :指示前面的项可以重复n次。每项之间由空格分割。
; :T-SQL语句终止符。
<label>::= :语法块名称。
2.2标识符
SQL SERVER的所有对象,包括服务器、数据库及数据对象,如表、视图、索引、规则、约束等均可以有一个标识符。
标识符规则:
1.标识符可为26个英文字母大小写,阿拉伯数字(0,1,2,3,4,5,6,7,8,9),"_"、"@"、"#",以及其它一些语言字符,如汉字
2.标识符首字母只能为:26个英文字母大小写,"_"、"@"、"#",以及其它一些语言字符,如汉字
2.3 常量
2.3.1 数字常量
2.3.2 字符串常量
单引号把字符串括起来。
'It is big house!'
2.3.3 日期和时间常量
日期和时间常量使用特定格式的字符日期值来表示,并用单引号括起来。
'June 8,2018'
'8 June,2018'
'180608'
'6/8/18'
2.4 变量
2.4.1全局变量
全局变量不是由用户的程序定义的,而是在服务器级定义的。用户只能使用预定义的全局变量,而不能修改全局变量。引用全局变量,必须以@@开头。
2.4.2局部变量
局部变量必须以符号“@”开头。局部变量类型data_type不能是text、ntext、image数据类型
DECLARE {@local_variable data_type} [,...n]
{ {SELECT | SET} @local_variable=expression } [,...n]
declare @sum int
set @sum=100 --或select @sum=100
//2.4.3批和脚本
2.5 运算符和表达式
2.5.1算术运算符
运算符 | 作用 |
---|---|
+ | 加法运算 |
- | 减法运算 |
* | 乘法运算 |
/ | 除法运算,返回商 |
% | 求余运算,返回余数 |
2.5.2比较运算符
运算符 | 含义 |
= | 等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
<> | 不等于 |
!= | 不等于(非ISO标准) |
!< | 不小于(非ISO标准) |
!> | 不大于(非ISO标准) |
2.5.3逻辑运算符
逻辑运算,返回bool型数据
A LL | 如果所有比较均为TRUE,则为TRUE |
AND | 如果两个均为TRUE,则为TRUE |
ANY | 如果一组比较中有一个为TRUE,则为TRUE |
OR | 如果两个比较中,有一个为TRUE,则为TRUE |
NOT | 取反 |
BETWEEN | 如果操作数在数值范围内,为TRUE |
EXISTS | 如果子查询包含一些行,则为TRUE |
LIKE | 如果匹配成功,为TRUE |
IN | 如果操作数等于表达式中的一个,为TRUE |
SOME | 如果在一组比较中,其中一些为TRUE,则为TRUE |
2.5.4连接运算符
“+”是字符串串联运算符,可以将多个字符串合并成一个字符串。
'who'+''+'why'为'whowhy'
2.5.5按位运算符
按位运算符在两个表达式之间执行位操作,表达式可为整数数据类型中任一种。
运算符 | 含义 |
& | 位与 |
| | 位或 |
^ | 位异或 |
~ | 返回数字的非 |
2.5.6运算符的优先级
级别 | 运算符 |
1 | ~(位非) |
2 | *、/、% |
3 | +(正)、-(负)、+(加)、-(减)、+(连接)、&、^、| |
4 | 所有比较运算符 |
5 | NOT |
6 | AND |
7 | ALL、ANY、BETWEEN、IN、LIKE、OR、SOME |
8 | =(赋值) |
2.6 Transact-SQL中的通配符
2.7 Transact-SQL语言中的注释
2.7.1.单行注释
单行注释以两个减号“--”开始,作用范围是从注释符号开始到一行的结束。例如:
drop database zoo --删除数据库zoo;“--”注释内容为从本行符号处开始及其后的内容
2.7.2.多行注释
多行注释作用于某一代码块,该种注释使用斜杠星型(/**/),使用这种注释时,编译器将忽略从(/*)开始后面的所有内容,直到遇到(*/)为止。例如:
/*
alter database zoo
(
name=zooDB_data,
size=10mb
);
*/