现要建立关于系、学生、班级的数据库,关系模式为

设学校环境如下:一个系有若干个专业,每个专业一年只招一个班,每个班有若干个学生。现要建立关于系、学生、班级的数据库,关系模式为:班CLASS(班号classid,专业名s... 设学校环境如下:一个系有若干个专业,每个专业一年只招一个班,每个班有若干个学生。
现要建立关于系、学生、班级的数据库,关系模式为:
班CLASS (班号classid,专业名subject,系名deptname,入学年份enrolltime,人数num)
学生STUDENT (学号studentid,姓名name,年龄age,班号classid)
系 DEPARTMENT (系号departmentid,系名deptname)
试用SQL语言完成以下功能:
1 建表,在定义中要求声明:
(1)每个表的主外码。
(2)每个班级的人数不能超过30人。
(3)学生的年龄介于15到40岁之间。
(4)学生姓名不能为空。

2 插入如下数据
DEPARTMENT( 001, 数学;
002, 计算机;
003, 化学;
004, 中文;
005, 经济;)

CLASS(
101,软件,计算机,1995,20;
102,微电子,计算机,1996,30;
111,无机化学,化学,1995,29;
112,高分子化学,化学,1996,25;
121,统计数学,数学,1995,20;
131,现代语言,中文,1996,20;
141,国际贸易,经济,1997,30;
142,国际金融,经济,1996,14;


STUDENT (
8101,张三,18,101;
8102,钱四,16,121;
8103,王玲,17,131;
8105,李飞,19,102;
8109,赵四,18,141;
8110,李可,20,142;
8201,张飞,18,111;
8302,周瑜,16,112;
8203,王亮,17,111;
8305,董庆,19,102;
8409,赵龙,18,101;
8510,李丽,20,142 )

3 完成以下查询功能
(1)找出所有姓李的学生。

(2)列出所有开设超过两个专业的系的名字。

(3)列出人数大于等于30的系的编号和名字。

4 学校又新增加了一个物理系,编号为006。

5 学生张三退学,请更新相关的表。
展开
 我来答
mxm_1123
推荐于2017-09-18 · TA获得超过1779个赞
知道大有可为答主
回答量:496
采纳率:0%
帮助的人:0
展开全部
1.
--删除
drop table student;
drop table class;
drop table department;
--系
create table department(
departmentid varchar2(3) not null,
department varchar2(30) primary key
);
--班
create table class(
classid number(3) primary key,
subject varchar2(30),
department varchar2(30) references department(department),
enrolltime number(4),
num number(2) check (num <= 30) --(2)每个班级的人数不能超过30人。
);
--学生
create table student(
studentid number(4) primary key,
name varchar2(10) not null,--(4)学生姓名不能为空。
age number(2) check(age between 15 and 40), --(3)学生的年龄介于15到40岁之间。
classid number(3) references class(classid)
);

2.
insert into department values('001','数学');
insert into department values('002','计算机');
insert into department values('003','化学');
insert into department values('004','中文');
insert into department values('005','经济');

insert into class values(101,'软件','计算机',1995,20);
insert into class values(102,'微电子','计算机',1996,30);
insert into class values(111,'无机化学','化学',1995,29);
insert into class values(112,'高分子化学','化学',1996,25);
insert into class values(121,'统计数学','数学',1995,20);
insert into class values(131,'现代语言','中文',1996,20);
insert into class values(141,'国际贸易','经济',1997,30);
insert into class values(142,'国际金融','经济',1996,14);

insert into student values(8101,'张三',18,101);
insert into student values(8102,'钱四',16,121);
insert into student values(8103,'王玲',17,131);
insert into student values(8105,'李飞',19,102);
insert into student values(8109,'赵四',18,141);
insert into student values(8110,'李可',20,142);
insert into student values(8201,'张飞',18,111);
insert into student values(8302,'周瑜',16,112);
insert into student values(8203,'王亮',17,111);
insert into student values(8305,'董庆',19,102);
insert into student values(8409,'赵龙',18,101);
insert into student values(8510,'李丽',20,142);

3 完成以下查询功能
(1)找出所有姓李的学生。
select * from student where name like '李%';
(2)列出所有开设超过两个专业的系的名字。
select * from department a
where (select count(distinct subject) from class where department= a.department) >= 2;
(3)列出人数大于等于30的系的编号和名字。
select * from department c where (select sum(a.num) from class a,department b
where a.department = b.department and b.department = c.department) >= 30;

4 学校又新增加了一个物理系,编号为006。
insert into department values ('006','物理');

5 学生张三退学,请更新相关的表。
update class set num = num -1 where classid = (select classid from student
where name='张三');
delete from student where name='张三';
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
迈杰
2024-11-30 广告
多组学联合分析是我们迈杰转化医学研究(苏州)有限公司的重要研究领域。该技术通过整合基因组、转录组、蛋白质组及代谢组等多层次数据,提供对生物系统更全面、深入的理解。我们利用先进的生物信息学工具和方法,实现多组学数据的整合与挖掘,从而揭示疾病发... 点击进入详情页
本回答由迈杰提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式