SQL学习(二)
sql
查询
SELECT [DISTINCT | ALL] select_list FROM table_name_source
[WHERE search_condition] [GROUP BY group_by_expression]
[HAVAING] [ORDER BY order_expression [ASC | DESC]]
DISTINCT 去除重复信息:
SELECT DISTINCT column FRON table_name
排序查询结果——单列排序
SELECT column1 ,column2 ,... FROM table_name ORDER BY columnN (DESC)
多列排序————根据ORDER BY子句后面列的顺序确定优先级
序号排序————ORDER BY i,j ,其中i=2等同于column2
WHERE子句单条件查询
- 比较运算符
- BETWEEN….AND
- IS NOT NULL
组合条件查询
SELECT column FROM table_name WHERE condition1 AND condition2 OR condition3
(AND的优先级大于OR的优先级)- IN运算符:
test expression IN(first value ,..,last value)
- NOT运算符:NULL求反的结果仍然是NULL
模糊查询:
LIKE通配符 : SELECT * FROM table_name WHERE col1 LIKE '<value>'
‘%’通配符 :表示人以字符的匹配,且不计字符的多少
‘_’通配符 :与’%’基本相同,但只表示一个字符的匹配
ESCAPE :允许确定一个转义字符,告诉DBMS紧跟转义字符之后的字符看作实际值
连接符、数值运算和函数
连接符
- “+”:
SELECT TNAME + '(' + DNAME + ')' ,AGE FROM TEACHER ORDER BY AGE
- CAST 表达式将列的数据转换为Char类型或者Varchar类型
- AS 为列定义别名
- 执行顺序:FROM > WHERE > GROUP BY > HAVING > SELECT > ORDER BY
数值运算
- Case表达式:
CASE
WHEN search_condition THEN result_expression
[... WHEN last search_condition THEN result_expression]
[ELSE else_result_expression]
END
函数
- 字符转换: UPPER,LOWER
- 去空格:LTRIM(去除字符串前面的空格),RTRIM(去除字符串后面的空格)
- 去字符串:LEFT(从字符串左边截取指定的一段字符),RIGHT,SUBSTRING
- 字符串比较:CHARINDEX(可以在源字符串中搜索目标字符串,同时返回目标字符串开头第一次出现的位置),REPLACE(可以在源字符串中搜索字符串并将搜索到的字符串替换为用户定义的字符串)
- DAY、MONTH、YEAR
聚合分析与分组
聚合函数
- 聚合函数是对列中一系列数据进行处理
- SUM() ,COUNT(*)(对表中行数计数)/COUNT() ,MAX()/MIN(),AVG()
- 重置分析:
SELECT AVG([ALL / DISTINCT] column) FROM table_name
注:使用DISTINCT后再5中聚合函数,除COUNT(*)外其他哈说你虎计算中排除NULL值
组合查询
- GROUP BY子句:
SELECT col ,SUM(col) FROM table_name GROUP BY col
- ROLLUP和CUBE运算符
- HAVING子句与GROUP BY子句同时使用