用到的表:
Student(学号,姓名,年龄,性别,专业) 学生表
Course(课号,课程名称,教师编号) 课程表
SC(学号,课号,成绩) 成绩表
Teacher(教师编号,教师名称) 教师表
练习内容:
一、简单查询
1、列出全部学生的信息。
SELECT * FROM 学生表
2、列出软件专业全部学生的学号及姓名。
SELECT 学号,姓名 FROM 学生 WHERE 专业="软件"
3、列出所有课程的课号。
SELECT DISTINCT 课号 FROM 课程表
4、求1号课成绩大于80分的学生的学号及成绩,并按成绩由高到低列出。
SELECT 学号,成绩 FROM 成绩表 WHERE 课号="1" AND 成绩>80 ORDER BY 成绩 DESC
5、列出非软件专业学生的名单。
方法一:SELECT 姓名 FROM 学生 WHERE 专业<>"软件" 方法二:SELECT 姓名 FROM 学生 WHERE NOT 专业="软件" 方法三:SELECT 姓名 FROM 学生 WHERE 专业!="软件"
6、查询成绩在70~80分之间的学生选课得分情况
方法一:SELECT * FROM 成绩表 WHERE 成绩>=70 AND 成绩<=80 方法二:SELECT * FROM 成绩表 WHERE 成绩 BETWEEN 70 AND 80 不在此范围内的查询:(注意写出和以下语句等价的语句) SELECT * FROM 成绩表 WHERE 成绩 NOT BETWEEN 70 AND 80
7、列出选修1号课或3号课的全体学生的学号和成绩。
方法一:SELECT 学号,成绩 FROM 成绩表 WHERE 课号="1" OR 课号="3" 方法二:SELECT 学号,成绩 FROM 成绩表 WHERE 课号 IN ("1","3") 相反条件查询:SELECT 学号,成绩 FROM 成绩表 WHERE 课号 NOT IN ("1","3")
8、列出所有98级学生的学生成绩情况。
SELECT * FROM 成绩表 WHERE 学号 LIKE "98%" SELECT * FROM 成绩表 WHERE 学号 LIKE "98_ _ _ _"
相反条件查询:SELECT * FROM 成绩表 WHERE 学号 NOT LIKE "98%"
9、列出成绩为空值(或不为空值)的学生的学号和课号。
答案一:SELECT 学号,课号 FROM 成绩表 WHERE 成绩 IS NULL 答案二:SELECT 学号,课号 FROM 成绩表 WHERE 成绩 IS NOT NULL
10、求出所有学生的总成绩。
SELECT SUM(成绩) AS 总成绩 FROM 成绩表
11、列出每个学生的平均成绩。
SELECT 学号,AVG(成绩) AS 平均成绩 FROM 成绩表 GROUP BY 学号
12、列出各科的平均成绩、最高成绩、最低成绩和选课人数。
SELECT 课号, AVG(成绩) AS 平均成绩, MAX(成绩) AS 最高分,; MIN(成绩) AS 最低分, COUNT(学号) AS 选课人数 FROM 成绩表 GROUP BY 课号