【网学网提醒】:网学会员鉴于大家对十分关注,论文会员在此为大家搜集整理了“SQL查询语句练习资料”一文,供大家参考学习
SQL查询语句
一.单表查询
1.选择表中的若干列(即关系代数中的“投影”运算)
1)查询指定列
例1查询全体学生的和。
学生2)查询全部列
例2查询全体学生的详细记录。学生3)查询经过计算的值
例3查询全体学生的及其年龄。出生日期年龄
学生2.选择表中的若干记录(即关系代数中的“选择”运算)
1)消除取值重复的行
例4查询选修了课程的学生。
成绩2)查询满足条件的记录
a)比较大小例5查询所有少数民族同学的和民族。民族学生民族汉b)字符匹配(模糊查询)例6查询所有姓李的学生的和性别。性别学生李例7查询所有名字第2个字为“小”的学生和性别。性别
学生小c)涉及空值的查询例8查询缺少成绩的学生的和相应的课程号。课程编号成绩成绩d)多重条件查询例9查询所有白族男同学的。
学生
性别男民族白族3.对查询结果排序
例10查询选修了S0105课程的学生的及其成绩,查询结果按分数降序排列。成绩成绩课程编号成绩例11查询全体学生情况,查询结果按所属院系的编号升序排列,同一系的学生按年龄升序排列。学生
所属院系出生日期4.使用集函数
COUNT([DISTINCT|ALL]*)COUNT([DISTINCT|ALL]<>)SUM([DISTINCT|ALL]<>)AVG([DISTINCT|ALL]<>)MAX([DISTINCT|ALL]<>)MIN([DISTINCT|ALL]<>)例12查询学生总人数。学生例13查询选修了课程的学生人数。人数成绩例14计算S0101课程的学生平均成绩。成绩统计记录个数
统计一列中值的个数
计算一列值的总和(此列必须是数值型)
计算一列值的平均值(此列必须是数值型)
求一列值中的最大值
求一列值中的最小值
成绩课程编号例15查询选修S0101课程的学生最高分数。成绩成绩
课程编号5.对查询结果分组
GROUPBY<列名>[HAVING<条件表达式>]GROUPBY子句将查询结果表按某一列或多列值分组,值相等的为一组。若分组后还要求按一定的条件对这些组进行筛选,最终只输出满足指定条件的组,则可以使用HAVING短语指定筛选条件。WHERE子句与HAVING短语的区别在于作用对象不同。WHERE子句作用于基本表或视图,从中选择满足条件的记录。HAVING短语作用于组,从中选择满足条件的组。例16求各个课程号及相应的选课人数。课程编号成绩课程编号例17查询选修了3门以上课程的学生。成绩例18查询不同性别各个少数民族的学生人数。性别民族民族学生性别民族民族汉族或性别民族民族FROM学生
民族汉族性别民族二.连接查询
1.自然连接
例18查询每个学生及其选修课程的情况。学生性别民族政治面貌出生日期所属院系简历课程编号成绩
学生成绩
学生成绩2.复合条件连接
例19查询选修S0105课程且成绩在80分以上的所有学生。学生
学生成绩学生成绩成绩课程编号成绩成绩例20查询每个学生的、、选修的课程名及其成绩。学生课程名称成绩
学生成绩课程
学生成绩成绩课程编号课程课程编号三.嵌套查询
1.带有IN谓词的子查询
例21查询与“李小红”在同一个系学习的学生及其院系名称。先分步完成此查询,然后再构造嵌套查询。(1)确定“李小红”所在系的编号所属院系学生李小红结果为“02”。(2)查找“02”号系的名称及在该系学习的学生。院系名称学生院系所属院系院系编号所属院系(3)将第(1)步查询嵌入到第(2)步查询的条件中,构造嵌套查询。院系名称学生院系所属院系院系编号所属院系所属院系学生李小红例22查询选修了课程名为“数学规划”的学生和。学生(SELECT成绩课程编号课程编号课程课程名称数学规划③最后在“学生”表中取出和
②然后在“成绩”表中找出选修了编号为“”的课程的学生①首先在“课程”表中找出“数学规划”
课程的编号,结果为“”
2.带有ANY或ALL谓词的子查询
>ANY>ALL
大于子查询结果中的所有值
小于子查询结果中的某个值
小于子查询结果中的所有值
>=ANY>=ALL<=ANY<=ALL=ANY<>ANY<>ALL
大于等于子查询结果中的某个值
大于等于子查询结果中的所有值
大于等于子查询结果中的某个值
大于等于子查询结果中的所有值
等于子查询结果中的某个值
不等于子查询结果中的某个值
不等于子查询结果中的任何一个值
例23查询其他系中比“01”号系某一学生年龄小的学生、年龄和所属院系。出生日期所属院系
学生
出生日期出生日期
学生
所属院系所属院系ACCESS执行此查询时,首先处理子查询,找出“01”号系中所有的学生的出生日期,构成一个集合(1992-12-9,??,1990-7-19),然后处理父查询,找所有不是“01”号系且年龄小于该集合中任一个的学生。
3.带有EXISTS谓词的子查询
带有EXISTS(NOTEXISTS)谓词的子查询不返回任何数据,只产生逻辑真值“TRUE”或逻辑假值“FALSE”。例24查询所有选修了S0105号课程的学生。
学生
成绩
学生课程编号