选择表中的若干列:
查询指定列
例:查询全体学生的学号与姓名
例:查询学生的姓名、学号和所在系
查询全部列
例:查询全体学生的详细记录
查询经过计算的值
例:查全体学生的姓名和出生年份
例:查询全体学生的姓名、出生年份和所在的院系,要求用小写字母表示系名
使用列别名改变查询结果的列标题
选择表中的若干数组
消除取值重复的行
查询满足条件的元组
比较:= ,> ,< ,<= ,!=
确定范围:between and ,not between and
确定集合:(not)in
字符匹配:(not)like
空值:is (not)null
逻辑运算:and,or,not
查询计算机科学系全体学生的名单:
查询所有年龄在20岁以下学生姓名及其年龄
查询考试成绩有不及格的学生的学号
注意去重
between and
查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄
查询年龄不再20~23岁之间学生姓名、系别和年龄
in:
查询CS系,MA系,IS系学生的姓名和性别
查询既不是CS系,MA系,也不是IS系的学生的姓名和性别
通配符:
%任意多个字符,_匹配一个字符
查询所有刘姓学生姓名、学号和性别
查询姓'欧阳'且全名为三个汉字的学生的姓名
查询名字中第2个字为‘阳’字学生的姓名和学号
查询所有不姓刘的学生姓名
空值:
查询缺少考试成绩的学生的学号和课程号
逻辑运算符:
and 优先级高于OR,可以使用括号改变优先级
例:查询计算机系年龄在20岁以下的学生姓名
order by子句:
例:查询选修3号课程的学生的学号及成绩,查询结果按分数降序排序
例:查询全体学生情况,查询结果按所在系号升序排序,同一系中的学生按年龄降序排列。
聚集函数:
count(*)统计元组个数
sum():计算一列值的总和
avg():计算一列值的平均值
max():求一列中最大值
min():求一列中最小值
查询学生总人数:
查询选修了课程的学生人数
计算1号课程的学生平均成绩:
查询选修1号课程的学生最高分数
group by:
group by用于细化聚集函数的作用对象
如果未对查询结果分组,聚集函数将作用于整个查询结果。
对查询结果分组后,聚集函数将分别作用于每个组
按指定的一列或多列值分组,值相等的为一组
例:求各个课程号对应的选课人数
例:查询选修了3门以上课程的学生学号
having 选择满足条件的组
where作用于表,从中选择满足条件的元组
例:查询平均成绩大于等于90分的学生学号和平均成绩