hello,最近开始整理SQL语言的学习笔记,希望能为各位朋友带来帮助,如果我的内容有所纰漏和错误,也麻烦各位朋友及时帮忙指出,以防错误传播,感谢各位的阅读和指教。
下为学习教材,虽然时间有点久,但是我觉得非常好用,有兴趣的朋友可以购买阅读哦~
学习教材:《SQL Sever 使用简明教程(第三版)》 清华大学出版社
Transact-SQL语言——附加的语言元素(一)
Transact-SQL语言还包括了附加的语言元素,这些附加的语言元素主要包括标识符、变量和常量、运算符、表达式、数据类型、函数、控制流语言、错误处理语言及注释等。
1.标识符
在Transact-SQL语言当中,数据库对象的名称就是其标识符。
大多数的标识符是必需的,但是也有一些对象的标识符是可选的,例如表的标识符是必须的,但创建约束时用户可以不提供标识符。
Transact-SQL语言的常规标识符的格式规则如下:
规则一,第一个字符必须是下列字符之一:
- Unicode标准定义字母,这些字母包括a-z、A-Z以及其他语言的字母字符
- 下划线_、符号@或者数字符号#。
【注意:一个@开头的标识符表示局部变量,两个@开头的标识符表示系统内置的函数。以一个#开头的标识符标识临时表或临时存储过程,以两个##开头的标识符标识全局临时对象】
规则二,后需字符可以包括:
- Unicode标准中定义的字母
- 基本拉丁字符或十进制数字
- 下划线_、符号@、数字符号#或美元符号$
规则三,标识符不能是Transact-SQL语言的保留字,包括大写和小写形式
规则四,不允许嵌入空格或其他特殊字符
分割标识符:
包含在“”或者[ ]内的标识符被称为分割标识符
对于不符合格式规则的标识符必须进行分割 例如the price必须分割 [the price]
- 对象名称中包含了Microsoft SQL Sever保留字是需要使用 例如 [where]
- 对象名称中使用了未列入限定字符的字符 例如 [ product[1] table]
【使用“ ”分割的标识符称为引用标识符,使用[ ]分割的称为括号标识符】
默认情况下只能使用括号标识符,当QUOTED_IDENTIFIER选项设置为ON是,才能使用引用的标识符。
2.变量和常量
在Transact-SQL语言中,可以使用DECLARE语句声明变量。
注意: - 为变量指定名称,且名称的第一个字符必须是@
- 指定该变量的数据类型和长度
- 默认情况下将该变量值设置为NULL
3.3 运算符
运算符是一种符号,用来指定要在一个或多个表示式中执行的操作。
可以使用的运算符可以分为算术运算符、逻辑运算符、赋值运算符、字符串串联运算符、按位运算符、一元运算符及比较运算符等
-
算术运算符
+、-、*、/(除法运算,如果两个表达式都是整数,则结果是整数) %(取模运算)
-
逻辑运算符
ALL、AND、ANY、BETWEEN、EXISTS、IN、LIKE、NOT、OR、SOME
-
赋值运算符
只有=
两大用途:1.给变量赋值 2.为表中的列改变列标题
-
字符串串联运算符
只有一个+
-
位运算符
&(位与逻辑运算)、|(位或逻辑运算)、^(位异或运算)
&:当且仅当输入表达式中两个位的值都为1时,结果中的位才被设置为1;否则,结果中的位被设置为0
|:只要有一个的值为1(可以两个同时为1),结果中的位就被设置为1,只有当两个位的值都为0时,结果中的位才被设置为0
^:只有当两个位的值都为0或1时,结果中的位才被设置为0,当只有一个1时,位的值就被设置为1 -
一元运算符
+数值为正、-数值为负,~返回数字的非 -
比较运算符
=、>、<、>=、<=、<>、!=、!<、!>
当使用字符串进行比较时,比较字母,M>A
【运算符的优先级】 实在打不下啦 就借用书上的表格啦