insert into t_course values ('100001','db1') insert into t_course values ('100002','db2') insert into t_course values ('100003','db3')
update t_course set cname ='数据库' where cid = '100001' delete from t_course where cid = '100001' --3.
create view v_t1 as
select a.tid,b.cid,b.credit,c.cname from t_teacher a join t_teachcourse b _on a.tid = b.tid join t_course c _on b.cid = c.cid go --4
select * from t_teacher where tid in
(select tid from t_teachcourse where credit >90) --5
select cid,max(credit),min(credit),avg(credit) from t_teachcourse group by cid --6
select sum(b.credit) from t_teacher a join t_teachcourse b _on a.tid = b.tid where a.tname = ‘郭老师’
综合题二
1. 某个学籍数据库有如下表结构:
学生(学号,姓名,性别,出生日期,班级) 课程(课程号,课程名称,课程类别,课时) 选课(学号,课程号,成绩) 请完成下列查询要求。
1.查询出“软件041”班的所有男生的学号和姓名。 2.查询出所有姓张的同学的姓名和班级。
3.查询出“C语言”课程成绩前5名的学生的学号、姓名和班级。 4.查询出各班级学生人数。
5.查询出“计算机应用基础”课程成绩高于张三同学此门课程成绩的学生的学号和姓名。
2. 上海XX商业连锁集团需要建立信息系统。该系统中存在3个实体集,一是“商店”实体集,属性有商店编号、商店名、地址等;二是“商品”实体集,属性有商品号、商品名、规格、单价等;三是“职工”实体集,属性有职工编号、姓名、性别、业绩等。
商店与商品间存在“销售”联系,每个商店可销售多种商品,每种商品也可以放在多个商店销售,每个商店销售的一种商品有月销售量;商店与职工之间存在“聘用”联系,每个商店有许多职工,每个职工只能在一个商店工作,商店聘用职工有聘期和工资。
(1).试画出E-R图。
(2).将该E-R图转换成关系模式,并指出主键值和外键值。
综合题参考答案:
1.
1.
SELECT 学号, 姓名 FROM学生
WHERE班级 = ‘软件041’ AND性别 = ‘男’ 2.
SELECT * FROM课程
WHERE课程名称 LIKE ‘%语言%’
3.
SELECT TOP 5学生.学号, 姓名, 班级
FROM学生 JOIN 选课 ON 学生.学号 = 选课.学号 JOIN 课程 ON课程.课程号 = 选课.课程号WHERE课程名称 = ‘C语言’ORDER BY 成绩 DESC 4.
SELECT 班级, COUNT(*) AS 人数 FROM 学生 GROUP BY班级 5.
SELECT学生.学号, 姓名
FROM 学生JOIN 选课 ON 学生.学号 = 选课.学号 JOIN 课程 ON课程.课程号 = 选课.课程号
WHERE课程名称 = ‘计算机应用基础’ AND 成绩 > ( SELECT成绩
FROM 学生JOIN 选课 ON 学生.学号 = 选课.学号 JOIN 课程 ON课程.课程号 = 选课.课程号
WHERE课程名称 = ‘计算机应用基础’ AND姓名 = ‘张三’ 2.略
综合题三:
现有关系数据库如下: 数据库名:我班同学数据库
同学表(学号 char(6),姓名,性别,年龄,民族,身份证号,宿舍号) 宿舍表(宿舍号 char(6),宿舍电话) 用SQL语言实现下列功能的sql语句代码: 1.创建数据库[我班同学数据库]代码。 2.创建数据表[宿舍表]代码;
宿舍表(宿舍号 char(6),宿舍电话)
要求使用:主键(宿舍号)、宿舍电话:以633开头的7位电话号码 3.创建数据表[同学表]代码;
同学表(学号 char(6),姓名,性别,年龄,民族,身份证号,宿舍号)
要求使用:主键(学号)、外键(宿舍号)、默认(民族)、非空(民族,姓名,年龄)、唯一(身份证号)、检查(性别)
4.将下列宿舍信息添加到宿舍表的代码 宿舍号 宿舍电话 101 6331157 102 6331777
修改 宿舍号为101的 宿舍电话:6331158
删除 宿舍号为102的 宿舍信息 5.创建视图[同学表视图]代码
同学表视图(学号, 姓名, 性别, 年龄, 民族, 身份证号, 宿舍号, 宿舍电话) 6.从同学表视图中查询姓张的女同学的姓名、性别、宿舍电话。 7.从同学表中查询女同学的最大年龄、最小年龄、平均年龄。 8.创建带参数的存储过程[某宿舍同学]:姓名, 性别, 宿舍电话 执行此过程,查询'101'宿舍情况 参考答案: no 1. 参考答案 create database [我班同学数据库] go use [我班同学数据库] go create table 宿舍表 ([宿舍号] char(6) primary key, [宿舍电话] char(7) check([宿舍电话] like '633[0-9][0-9][0-9][0-9]')) create table 同学表 (学号 char(6) primary key, 姓名 nchar(4) not null, 性别 nchar(1) check(性别 in ('男', '女')), 年龄 int , 民族 nchar(8) default '汉族' not null, 身份证号 char(18) unique, 宿舍号 char(6) references 宿舍表(宿舍号) ) insert 宿舍表 values('101', '6331157') insert 宿舍表 values('102', '6331777') update 宿舍表 set 宿舍电话='6331158' where 宿舍号='101' delete 宿舍表 where 宿舍号='102' create view [同学表视图] as select 学号, 姓名, 性别, 年龄, 民族, 身份证号, 同学表.宿舍号, 宿舍电话 from 同学表,宿舍表 where 同学表.宿舍号=宿舍表.宿舍号 select 姓名, 性别, 宿舍电话 from 同学表视图 where 姓名 like '张%' and 性别='女' select 最大年龄 = max(年龄), 最小年龄 = min(年龄), 平均年龄 = 2. 3. 4. 5. 6. 7. avg(年龄) from 同学表 where 性别='女' 8. create procedure [某宿舍同学] @宿舍号 varchar(6) as select 姓名, 性别, 宿舍电话 from 同学表视图 where 宿舍号 = @宿舍号 go execute [某宿舍同学] '101'
综合试题四:
有一个[学生课程]数据库,数据库中包括三个表: 学生表:Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,记为:Student(Sno,Sname,Ssex,Sage,Sdept),Sno 为关键字。
课程表:Course由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,记为: Course(Cno,Cname,Cpno,Ccredit) Cno为关键字。
成绩表:SG由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,记为: SG(Sno,Cno,Grade) (SNO, CNO) 为关键字。
用SQL语言实现下列功能:
1.建立学生表[Student],其中学号属性不能为空,并且其值是唯一的。 2.查考试成绩有不及格的学生的学号。 3.将学号为05001学生的年龄改为22岁。 4.计算1号课程的学生平均成绩。
5.创建存储过程[getDetailByName],通过输入参数学生姓名(如\张三\,筛选出该学生的基
本信息,对不存在此学生姓名的输入值,必须作一检测,打印信息“不存在此学生”。 6. 查计算机系姓赵的男同学的姓名(Sname)、性别(Ssex)、年龄(Sage)。
7.创建视图[学生成绩表视图],视图中包括学号(Sno)、姓名(Sname)、课程号(Cno)、课程名
(Cname)、成绩(Grade)。
8.将一个新学生记录(学号:05020;姓名:丁莉;性别:女;年龄:17岁;所在系:计算机;)
插入Student表中。
参考答案:
1.
create table student (Sno char(5) primary key, Sname char(20), Ssex char(2), Sage int, Sdept char(15) ) 2.