形考任务3_综合应用题0
形考任务3_综合应用题0
试卷总分:20 得分:0 综合应用题1 图书销售(本题10分) 1.写出创建如下三张数据表的SQL语句。(本题4分) “图书”表结构: 书号:普通编码定长字符类型,长度为10,主键。 书名:普通编码可变长字符类型,长度为20,非空。 类别:统一字符编码定长字符类型,长度为4,取值为:“高等数学”、“量子力学”、“国学基础”。 出版日期:日期类型。 单价:整型。 ? “书店”表结构: 书店编号:普通编码定长字符类型,长度为20,主键。 书店名:普通编码可变长字符类型,长度为30,非空。 地址:统一字符编码可变长字符类型,长度为30。 ? “销售”表结构: 书号:普通编码定长字符类型,长度为10,引用图书表的外键。 书店编号:普通编码定长字符类型,长度为20,引用书店表的外键。 销售时间:日期时间类型。 销售数量:整型。 主键:(书号,书店编号,销售时间)。 答案:
答: CREATE TABLE 图书(
书号 char(10) primary key, ,我们的目标是要做全覆盖、全正确的答案搜索服务。
书名 varchar(20) not null,
类别 nchar(4) CHECK (类别 IN('高等数学','量子力学', '国学基础')),
出版日期 date,
单价 int )
CREATE TABLE
书店( 书店编号 char(20) primary key,
书店名 varchar(30) not null,
地址 nvarchar(30) ) CREATE TABLE
销售( 书号 char(10),
书店编号 char(20),
销售时间 datetime, ,我们的目标是要做全覆盖、全正确的答案搜索服务。
销售数量 int, Primary key(书号,书店编号,销售时间), Foreign key(书号) references 图书(书号), Foreign key(书店编号) references
书店(书店编号)
2.依据第1题所创建的三张表,写出完成下列操作的SQL语句。(本题4分) 1)? 查询“量子力学”类图书的书名和出版日期。 2)? 查询单价大于等于60的图书的销售情况,列出书名、类别、销售时间和销售数量。 3)? 将“量子力学”类图书的单价降低10。 4)? 在书店表中插入一行数据,书店编号:SD100,书店名:新华书店,地址:西单。 答案:
1)SELECT 书名,出版日期 FROM 图书 WHERE 类别 = '量子力学'
2)SELECT 书名, 类别, 销售时间, 销售数量
FROM 图书 a JOIN 销售 b ON a.书号 = b.书号
WHERE 单价 >= 60
3)UPDATE 图书 SET 单价 = 单价 - 10 WHERE 类别 = '量子力学'
4)INSERT INTO 书店
VALUES('SD100','新华书店','西单')
3.依据第1题所创建的三张表,写出创建满足如下要求的视图的SQL语句:查询销售了“高等数学”类图书的书店名和地址。(本题2分) 答案:
答:
CREATE VIEW V1
AS SELECT 书店名,地址 FROM 书店 a JOIN 销售 b ON a.书店编号 = b.
书店编号 JOIN 图书 c ON c.书号 = b.一网一平台答案
书号 WHERE 类别 = '高等数学'
综合应用题2 教师授课(本题10分) 4.写出创建如下三张数据表的SQL语句。(本题4分) “教师”表结构: 教师号:普通编码定长字符类型,长度为10,主键。 教师名:普通编码可变长字符类型,长度为20,非空。 所在部门:普通编码可变长字符类型,长度为30。 职称:普通编码定长字符类型,长度为6,取值为:“教授”、“副教授”、“其他”。 ? “课程”表结构: 课程号:普通编码定长字符类型,长度为20,主键。 课程名:普通编码可变长字符类型,长度为40,非空。 学时数:微整型。 开课学期:微整型。 ? “授课”表结构: 教师号:普通编码定长字符类型,长度为10,引用教师表的外键。 课程号:普通编码定长字符类型,长度为20,引用课程表的外键。 授课时数:整型。 授课年份:整型。 主键:(教师号,课程号,授课年份)。 答案:
CREATE TABLE 教师(
教师号 char(10) primary key,
教师名 varchar(20) not null,
所在部门 varchar(30),
职称 char(6) CHECK (职称 IN('教授','副教授', '其他'))
)
CREATE TABLE 课程(
课程号 char(20) primary key,
课程名 varchar(40) not null,
学时数 tinyint,
开课学期 tinyint
5.依据第1题所创建的三张表,写出完成下列操作的SQL语句。(本题4分) 1)? 查询“教授”职称的教师姓名和所在部门。 2)? 查询每学期开设的学时数大于40的课程门数。 3)? 查询2016年全部课程的授课情况,列出课程名、学时数、教师名和授课时数。 删除没人讲授的课程。 答案:
答: 1) SELECT 教师名, 所在部门 国开形成性考核答案
FROM 教师
WHERE 职称 = '教授'
2) SELECT 开课学期,COUNT(*) 课程门数
FROM 课程
WHERE 学时数 > 40
GROUP BY 开课学期
3) SELECT 课程名, 学时数, 教师名, 授课时数 FROM 课程
JOIN 授课 ON 课程.课程号 = 授课.课程号 JOIN 教师 ON 教师.教师号 = 授课.教师号 WHERE 授课年份 = 2016 国开形成性考核答案一网一平台答案
4) DELETE FROM 课程
WHERE 课程号 NOT IN (SELECT 课程号 FROM 授课)
6.依据第1题所创建的三张表,写出创建满足如下要求的视图的SQL语句:查询2016授课年份全体授课教师的教师名、所授的课程名和授课时数。(本题2分) ? 答案:
答:
CREATE VIEW V1 AS
SELECT 教师名,课程名,授课时数
FROM 授课 JOIN 教师 ON 授课.教师号 = 教师.教师号
JOIN 课程 ON 课程.课程号 = 授课.课程号
WHERE 授课年份 = 2016 |