|
测试中的SQL语句
1) 要知道基本的检索语句,
SELECT < column list >
[FROM < source table(s) >]
[WHERE < restrictive condition >]
[GROUP BY < column name or expression using a column in the SELECT list >]
[HAVING < restrictive condition based on the GROUP BY results >]
[ORDER BY< column list >
SELECT表示执行的是检索操作,仅仅是读取数据信息而不是修改数据信息。所选择的内容由后面的表达式或列名列表确定。
FROM语句指定要读取的数据所在的一张表或几张表。
WHERE子句用来设定返回记录的限制条件,它应用于每一行。这些限制条件可以使用=,>,<,>=,<=,!=,!>,!<,AND,OR,NOT,BETWEEN,LIKE,IN,ALL,ANY,SOME,EXISTS这些运算符。
GROUP BY子句用来统计信息。一旦使用的GROUP BY子句,SELECT列表中的每一列必须为GROUP BY子句分组的列或者是列的统计。常用的统计函数有AVG,MIN/MAX,COUNT(*)。
HAVING子句也是用来设定限制条的,不过它应用于分组的统计值。
ORDER BY子句用来定义返回数据的排列顺序,它可以按照FROM子句的表中的任一列或多列来定义输出顺序。
2) 连接语句在多表检索中非常重要。
连接语句即JOIN子句,是将来自两个表的信息放置在一个结果集中。它有四种形式:
内部连接
外部连接
完全连接
交叉连接
连接根据一个或几个相同的字段将记录匹配在一起,内部连接仅返回那些存在字段匹配的记录,外部连接中LEFT OUTER JOIN包含的信息来自左侧的表,RIGHT JOIN包含的信息来自右侧的表,完全连接返回所有匹配的记录,交叉连接返回的是JOIN两侧表记录的笛卡尔积。
有一个特别重要的运算符UNION。它将一个查询返回的数据附加到另一个查询结果的末尾。不过有以下注意事项:
(1) 所有UNION的查询必须在SELECT列表中有相同的列数。
(2) UNION返回的结果集的标题仅从第一个查询获得。
(3) 查询中对应列的数据类型必须隐式一致。
(4) 查询的默认返回选项为DISTINCT。
3) 在测试中为了,SQL检索语句简便,也会用到自定义函数:
CREATE FUNCTION [< schema name >,]< function name >
([< @parameter name > [AS] [< schema name >,]< scalar data type >[=< default value >])
[,…n]
BEGIN
[< function statement>]
{RETURN < type as defined in RETURNS clauses >|RETURN (< SELECT statement>)}
END}[;]
4) 还有一些特别重要的已定义函数:
在检索条件和检索项目中经常会用到数据类型转换,数据类型转换的函数是CAST和CONVERT,它们的语法分别是
CAST(expression as data_type),
CCONVERT(data_type,expression[,style])
还有一个特别重要,方便,而且常用的函数ISNULL函数
ISNULL(< expression to test >,< replacement value if null >)
它的第一个参数如果是NULL,就返回第二个参数的值,如果不是NULL,则返回第一个参数的值。
|
|