执行顺序:from、on、join、where、group by、having、select、distinct、order by、top ;
SELECT的一些注意事项:
FROM:FROM子句中如果出现重复的名称会返回错误;
WHERE子句中不能包括聚合函数,因为SELECT语句中WHERE先于聚合函数执行,不能使用列的别名;
WHERE子句使用使用逻辑运算时,需要遵循的规则:执行顺序NOT、AND、OR;
WHERE子句使用IN时注意:不能包括NULL;
WHERE子句使用通配符:LIKE、NOT LIKE、[ ]、[^ ];
ORDER BY子句:后面可以是列名、列的别名、不包括在select中的表中的列或者是该列在表中是第几列的那个数字;
GROUP BY子句:groupby子句中必须使用select中指定的列名而不能使用别名,不能使用表中有的而在select中没有指定的字段;
HAVING子句需要注意:having子句后面不能跟在select语句中出现的别名,而必须将select语句中出现的列名或者表达式再写一遍;
FORCESEEK:强制运用索引来查询数据,使用前必须建立索引;
内连接INNER JOIN:返回所有匹配的数据;(逗号连接相当于内连接!)
外连接:
LEFT OUTER JOIN:返回所有匹配的数据以及左边表中不匹配的数据;
RIGHT OUTER JOIN:返回所有匹配的数据以及右边表中不匹配的数据;
FULL OUTER JOIN:返回所有匹配以及不匹配的数据;
交叉连接:返回连接表的笛卡尔积;
自连接:两个同一个表的相互连接;
联合查询:UNION将两个查询的结果集组合成单个结果集,最后结果集的列标题是第一个查询语句的列标题,应保证每个 查询语句的选择列表具有相同数量的表达式以及相同的数据类型;
INSERT---SELECT语句:插入的数据来自一个查询语句;
SELECT---INTO语句:将查询结果放入一个新表中;
UPDATE:更新表中的相应数据;
DELETE:删除表中的相应数据;
MERGE:可以在一条merge语句中执行insert、update、delete操作
merge lyy as l
using liyy as li
on(l.id=li.id)
when matched then ……
when not matched then……