MySQL数据库实验二:单表查询
Posted 黑乌鸦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL数据库实验二:单表查询相关的知识,希望对你有一定的参考价值。
实验二 单表查询
一、实验目的
理解SELECT语句的操作和基本使用方法。
二、实验环境
是MS SQL SERVER 2005的中文客户端。
三、实验示例
1、查询全体学生的姓名、学号、所在系。
SELECT Sname,S#,Sdept
FROM S;
2、查询全体学生的详细记录。
SELECT *
FROM S;
3、查全体学生的姓名及其出生年份。
SELECT Sname,2011-Sage /*假定当年的年份为2011年*/
FROM S;
4、查询选修了课程的学生学号。
SELECT S# FROM SC;
等价于:
SELECT ALL S# FROM SC;
指定DISTINCT关键词,去掉表中重复的行
SELECT DISTINCT S#
FROM SC;
5、 查询所有年龄在20岁以下的学生姓名及其年龄。
SELECT Sname,Sage
FROM S
WHERE Sage < 20;
6、 查询考试成绩有不及格的学生的学号。
SELECT DISTINCT S#
FROM SC
WHERE Grade<60;
7、 查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名、系别和年龄
SELECT Sname,Sdept,Sage
FROM S
WHERE Sage BETWEEN 20 AND 23;
8、查询所有姓刘学生的姓名、学号和性别。
SELECT Sname,S#,Ssex
FROM S
WHERE Sname LIKE ‘刘%’;
9、查询姓"欧阳"且全名为三个汉字的学生的姓名。
SELECT Sname
FROM S
WHERE Sname LIKE ‘欧阳__‘;
10、 某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。查询缺少成绩的学生的学号和相应的课程号。
SELECT S#,C#
FROM SC
WHERE Grade IS NULL
11、查询计算机系年龄在20岁以下的学生姓名。
SELECT Sname
FROM S
WHERE Sdept= ‘CS‘ AND Sage<20;
12、 查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。
SELECT S#,Grade
FROM SC
WHERE C#= ‘ 3 ‘
ORDER BY Grade DESC;
13、查询全体学生情况,查询结果按所在系的系号升序排列,同一系中的学生按年龄降序排列。
SELECT *
FROM S
ORDER BY Sdept,Sage DESC;
14、 计算1号课程的学生平均成绩。
SELECT AVG(Grade)
FROM SC
WHERE C#= ‘ 1 ‘;
15、 求各个课程号及相应的选课人数。
SELECT C#,COUNT(S#)
FROM SC
GROUP BY C#;
16、 查询选修了3门以上课程的学生学号。
SELECT S#
FROM SC
GROUP BY S#
HAVING COUNT(*) >3;
四、实验内容与步骤
1、检索LIU老师所授课程的课程号和课程名。
2、检索年龄大于23岁的男学生的学号和姓名。
3、在表C中统计开设课程的教师人数。
4、 统计每个学生选修课程的门数(超过5门的学生才统计)。要求输出学生学号和选修门数,查询结果按门数降序排列,若门数相同,按学号升序排列。
5、 在表SC中检索成绩为空值的学生学号和课程号。
6、 检索姓名以L打头的所有学生的姓名和年龄。
7、查询年龄不在20~23岁之间的学生姓名、系别和年龄
8、查询既不是信息系、数学系,也不是计算机科学系的学生的姓名和性别。
9、查询所有不姓刘的学生姓名。
10、查所有有成绩的学生学号和课程号。
以上是关于MySQL数据库实验二:单表查询的主要内容,如果未能解决你的问题,请参考以下文章