没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
数据库第三章作业
专业:
姓名:
学号:
习题三
23、某校与教学管理相关的 3 个关系模式的结构如下:
学生(学号、姓名、年龄、性别、所在系)
课程(课程号、课程名、开课系、任课教师)
学习(学号、课程号、成绩)
试执行如下操作:
(1) 创建“教学”数据库,在“教学”数据库中创建“学生”、“课程”、“学习”这 3 个基
本表,并说明主键和外键。
(2) 试用 SQL 的查询语句表达下列查询:
1) 查询刘老师所授课程的课程号和课程名。
2) 查询年龄大于 23 岁的男学生的学号和姓名。
3) 查询至少修读刘老师所授课程中一门课程的女学生姓名。
4) 查询王乐同学不学的课程的课程号。
5) 查询至少修读两门课程的学生学号。
6) 查询全部学生都修读的课程的课程号与课程名。
7) 查询修读课程中包含刘老师所授课程的学生学号。
解:
(1)create database 教学
create table 学生
(学号 char(6) primary key,
姓名 char(10),
年龄 smallint,
性别 char(2),
所在系 char(10));
create table 课程
(课程号 char(6) constraint pk_kch primary key,
课程名 char(20),
开课系 char(10),
任课教师 char(10));
create table 学习
(学号 char(6),
课程号 char(6),
成绩 smallint constraint pk_ks primary key(学号,课程号));
(2)
①
SELECT 课程号,课程名
FROM 课程
WHERE 任课教师='刘老师';
②
SELECT 学号,姓名
FROM 学生
WHERE 年龄>23 AND 性别='男';
③
第一种(嵌套查询)
SELECT 姓名
FROM 学生
WHERE 性别='女'AND 学号 IN
(SELECT 学号
FROM 学习
WHERE 课程号 IN
(SELECT 课程号
FROM 课程
WHERE 任课教师='刘老师'));
第二种(连接查询)
SELECT 姓名
FROM 学生,课程,学习
WHERE 学生.学号=学习.学号 AND 学习.课程号=课程.课程号 AND 性别='女' AND 任课教师
='刘老师';
④
SELECT 课程号
FROM 课程
WHERE NOT EXISTS
(SELECT *
FROM 学生,学习
WHERE 学生.学号=学习.学号 AND 学习.课程号=课程.课程号 AND 姓名='王乐');
⑤
SELECT DISTINCT X.学号
FROM 学习 AS X,学习 AS Y
WHERE X.学号=Y.学号 AND X.课程号!=Y.课程号;
⑥
SELECT 课程号,课程名
FROM 课程
WHERE NOT EXISTS
(SELECT *
FROM 学生
WHERE NOT EXISTS
(SELECT *
FROM 学习
WHERE 学号=学生.学号 AND 课程号=课程.课程号));
剩余13页未读,继续阅读
资源评论
老帽爬新坡
- 粉丝: 82
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功