前言:
这是我学数据库时整理的学习资料,基本上包括了所以的SQL语句的知识点。
我的教材是人大王珊老师的《数据库系统概论》。
因为是手打的,所以会用一些细节打错了,但都挺明显也不多(考完试后我也没有继续整理)。
SELECT [ALL|DISTINCT] <目标列表达式> [,<目标列表达式> ]...
FROM <表名或视图名> [ ,<表名或视图名> ] | (<SELECT语句>) [AS] <别名>[ WHERE <条件表达式> ][ GROUP BY <列名1> [ HAVING <条件表达式> ]][ ORDER BY <列名2> [ASC|DESC] ]Note:
1.<目标表达式>可以是:
1) 属性列
2) 算术表达式,如:2014-Sage
3) 字符串常量,如:'姓名:'
4) 函数,如:LOWER(Sdept) --> 用小写字母表示Sdept
2.GROUP BY --> 将结果按照<列名1>的值进行分组,
该属性列值相等的元组为一个组
带有HAVING --> 只有满足指定条件的组才予以输出
eg:
SELECT Sno,AVG(Grade)
FROM SC
GROUP BY Sno
HAVINT AVG(Grage)>=90;
3.ORDER BY --> 按照<列名2>的值排序:ASC --> 升序(默认)
DESC -> 降序
4.查询条件(WHERE子句):
1) 比较:
=,>,<,>=,<=,!= or <>,!>,!<
NOT+上述比较符
Note: =后面接值 --> 比较操作
=后面接列 --> 连接操作
2) 范围:
BETWEEN lower_limit AND upper_limit
Note: 包括lower_limit和upper_limit
NOT BETWEEN lower_limit AND upper_limit
3) 确定集合:
IN
eg: WHERE Sdept IN ('CS','MA','IS')
NOT IN
4) 字符匹配:
LIKE
NOT LIKE
Note:
语法:
1.[NOT] LIKE '<匹配串>' [ESCAPE'<换码字符>']
2.% --> 任意长度(可为0)的字符串
_ --> 任意单个字符串
eg:
WHERE Cname LIKE 'DB\_%i_' ESCAPE'\'
5) 空值:
IS NULL
IS NOT NULL
eg:
WHERE Grade IS NULL