1. 在算术表达式中,如果任意一个运算符分量为空值,则表达式的值为空。如x+y*z中,如果y为空值,则表达式值为空;同样,逻辑表达式中,如果有一个值为空值,则整个逻辑表达式的值为空值。如x+y*z>0 AND SEX=MALE,如果y为空值,则x+y*z>0的值为空,整个逻辑表达式的值也为空。
2. 关联子查询使用量词EXISTS的话,则子查询返回的是布尔值,不是二维表。如果子查询的返回值为真,则在结果集中保留该元组的值,否则就不保留该元组。
3. UNION,如果两个查询是并兼容的,则可以并为一个查询结果,也就是说,如果两个查询的结果集有形同的列,则二者相容,此时可以做并运算。UNION运算可以自动消去重复元组。
4. 使用INSERT插入新元组,有两种方式,一种就是直接插入内容,另外一种可以把嵌套查询得到的结果插入表中,且如果表中的某些列没有在插入语句中出现,则这些列上的值取空值NULL。
5. WHERE子句不能用库函数作为条件表达式,如WHERE AVG(Sage)>22是不对的,可以写成Group BY SchoolNum HAVING AVG(Sage)>22
6. Transact-SQL语言允许使用两种变量:一种是用户自己定义的局部变量(Local Variable),另一种是系统提供的全局变量(Global Variable),局部变量必须以“@”开头,且先声明后使用,格式如下:DECLARE @变量名 变量类型[,@变量名 变量类型],局部变量不能使用“变量=变量值”的格式进行初始化,必须使用SELECT或SET语句来设定其初始值:SELECT @局部变量=变量值 或 SET @局部变量=变量值
7. 如果声明字符型的局部变量,一定要在变量类型中指明其最大长度,否则系统认为其长度为1
8. 全局变量的名字前面要有两个标记符“@@”。不能定义与全局变量同名的局部变量
9. 流程控制语句:
a) 注释:“--”或者“/**/”
b) BEGIN…END
c) IF…ELSE:IF…END允许嵌套
d) CASE
e) While、CONTIUNE、BREAK
f) GOTO
g) RETURN
h) WAITFOR
10. 数据类型:
a) 整数数据类型:bigint,int,smallint,tinyint
b) 浮点数据类型:real,float,decimal,numeric
c) 二进制数据类型:binary,varbinary,image
d) 逻辑数据类型:bit
e) 字符数据类型:char,nchar,varchar,nvarchar
f) 文本和图形数据类型:text,ntext,image
g) 日期和时间数据类型:datetime,smalldatetime
h) 货币数据类型:money,smallmoney
i) 特定数据类型:timestamp,uniqueidentifier
j) 用户自定义数据类型:sysname
k) 新增数据类型:sql_variant,table
11. 在Transact SQL中,“+”包含了三方面的意义:
a) 表示正号,即在数值前添加“+”号表示该数值是一个正数
b) 表示算术运算的加号,能将数值类型的两个数据相加
c) 连接两个字符型或binary型的数据,这时的“+”号叫做字符串串联运算符
d) “+”和“-”运算符也可用于对datetime及smalldatetime值执行算术运算
12. 在SQL SERVER中使用SELECT语句时有两个约定:一是关键字使用大写字母;二是关键字上下对齐,每一行只有一个关键字
13. 通配符一般通过LIKE使用,SQL Server中支持4种通配符:
a) % 代表零个或者多个任意字符
b) _ 代表一个任意字符
c) [] 指定范围内的任意单个字符
d) [^] 不在指定范围内的任意单个字符
14. 表之间进行连接时,可以使用三种连接关键字:
a) INNER JOIN 表示内连接,结果集中仅包含满足条件的行。
b) CROSS JOIN 表示交叉连接,结果集中包含两个表中所有行的组合。
c) OUTER JOIN 表示外连接,结果集中既包含那些满足条件的行,也包含某些不满足条件的数据。
15. 内连接是保证两个表中所有行都要满足连接条件,而外连接返回FROM子句中提到的至少一个表的所有行,只要这些行符合
任何WHERE或HAVING搜索条件。外连接包括以下三种形式:
a) LEFT OUTER JOIN 左外连接,包括了左表中的全部行
b) RIGHT OUTER JOIN 右外连接,包括了右表中的全部行
c) FULL OUTER JOIN 完整外连接,包括了左表和右表中所有不满足条件的行。
16. SQL server 2000允许为视图创建独特的聚簇索引。在创建了聚簇索引后,视图将被执行,结果集将被存放在数据库中,存放的方式与带有聚簇索引的表的存放方式相同,这就在数据库中有效地实现了查询结果。