数据库原理与应用习题
Sage 整型 表示学生年龄 Ssex 字符型,最大2个字符 表示学生性别 Sdate 日期型 表示学生入学时间 Sdept 字符型,长度为20 表示所在系 约束:主码——Sno 非空属性——Sname 创建课程表,具体要求如下。 课程表:表名——course 属性:
Cno 字符型,最大4个字符 表示课程编号 Cname 字符型,最大10个字符 表示课程名
CTeacher 字符型,最大8个字符 表示教师姓名 Coffice 字符型,最大20个字符 表示办公室 约束:主码——Cno 非空属性——Cname 创建选课表,具体要求如下。 选课表:表名——SC 属性:
Sno 字符型,最大7个字符 表示学生学号 Cno 字符型,最大4个字符 表示课程编号 Grade 整型
约束:主码——Sno,Cno 同时,Sno,Cno均为外码 (3)用企业管理器在学生表上输入以下数据
用企业管理器在课程表上输入以下数据
用企业管理器在选课表上输入以下数据
(4)用INSERT语句往基本表student中插入学生元组(“0121901”,“WU”,18,“女”,1980-01-01,null)
(5)往course中插入元组(“X005”,“管理学”,“林丽丽”,“G301”) (6)往sc表中插入元组(“0121901”,“X005”,85) (7)把WU同学的选课记录全部删去
(8)在学生表上学生姓名一列建立唯一索引,索引名称为i_sname (9)查询“刘丽”老师所授课程的课程号和课程名
16
数据库原理与应用习题
(10)建立信管系选修课程“X001”的学生的视图,视图名字为v_x_001
5.(1)创建考试数据库,数据库名称为:Exam
(2)在Exam数据库中创建商店表、商品表、供应表,表结构如下:
商店表(表名:shop)
列名 A# ANAME WQTY CITY 说明 商店编号 商店名称 店员人数 所在城市 数据类型 字符串,长度为5 字符串,长度为30 整数型 字符串,长度为20 约束 主码 非空 取值大于0 默认值为“大连”
商品表(表名:goods) 列名 B# BNAME PRICE 说明 商品编号 商品名称 商品价格 数据类型 字符串,长度为5 字符串,长度为20 浮点型(float) 约束 主码
供应表(表名:supply)
列名 A# B# QTY 说明 商店编号 商品编号 商品数量 数据类型 字符串,长度为5 字符串,长度为5 整数型 约束 主码,引用商店表(shop)外码 主码,引用商品表(goods)外码 取值大于0
(3)往表中插入如下数据(用企业管理器或查询分析器均可)。
商店表(表名:shop)
商品表(表名:goods)
17
数据库原理与应用习题
供应表(表名:supply)
(4)检索编号为101的商店信息。
(5)检索商店名称包含“商场”的商店信息。
(6)检索“大连商场”提供的商品编号和商品名称。
(7)检索商店供应商品的信息,列出商店名称、商品名称和数量。 (8)检索店员人数大于100的商店信息。
(9)检索商品信息,并且按照商品的价格对商品进行排序。
(10)检索101商店提供的商品数量的最大值、最小值和平均值。 (11)按照商品名称的降序对商品表建立索引,索引名称为I_bname。 (12)按照商店编号的升序,商品编号的降序对供应表建立索引,索引名称为I_supply。 (13)建立名称为“大连”的城市提供的商品信息视图,列出商品编号和商品名称。视
图名称为v_1。 (14)建立价格大于10元,并且由“大连商场”提供的商品信息的视图,列出商店编号,
商品编号和提供的数量。视图名称为v_2。
(15)用SQL语句往商店表中添加商店信息(商店编号:102,商店名称:沃尔玛)。 (16)将“大连商场”提供的“书包”的数量更改为100。 (17)从供应表中删除“第一百货公司”提供的商品信息。
(18)向商店表中添加字段,字段名称为ADATE,数据类型为日期时间型,其中,ADATE
表示商店成立时间。
6.设职工---社团数据库有三个基本表:
职工(职工号,姓名,年龄,性别);
社会团体(编号,名称,负责人,活动地点); 参加(职工号,编号,参加日期); 其中:
(1)职工表的主码为职工号。
18
数据库原理与应用习题
(2)社会团体表的主码为编号;外码为负责人,被参照表为职工表,对应属性为职工号。 (3)参加表的职工号和编号为主码;职工号为外码,其被参照表为职工表,对应属性为职工号;编号为外码,其被参照表为社会团体表,对应属性为编号。
试用SQL语句表达下列操作:
(1)定义职工表、社会团体表和参加表,并说明其主码和参照关系。 (2)建立下列两个视图。
社团负责人(编号,名称,负责人职工号,负责人姓名,负责人性别); 参加人情况(职工号,姓名,社团编号,社团名称,参加日期) (3)查找参加唱歌队或篮球队的职工号和姓名。 (4)查找没有参加任何团体的职工情况。 (5)查找参加了全部社会团体的职工情况。
(6)查找参加了职工号为“1001”的职工所参加的全部社会团体的职工号。 (7)求每个社会团体的参加人数。
(8)求参加人数最多的社会团体的名称和参加人数。 (9)求参加人数超过100人的社会团体的名称和负责人。
(10)把对社会团体和参加两个表的数据查看、插入和删除数据的权力赋给用户李平,并允许他将此权力授予其他用户。
7.设工程—零件数据库中有四个基本表:
供应商(供应商代码,姓名,所在城市,联系电话); 工程(工程代码,工程名,负责人,预算); 零件(零件代码,零件名,规格,产地,颜色);
供应零件(供应商代码,工程代码,零件代码,数量) 试用SQL语句完成下列操作:
(1)找出天津市供应商的姓名和电话。
(2)查找预算在50000——100000元之间的工程的信息,并将结果按预算降序排列。 (3)找出使用供应商S1所供零件的工程号码。
(4)找出工程项目J2使用的各种零件名称及其数量。 (5)找出上海厂商供应的所有零件号码。 (6)找出使用上海产的零件的工程名称。 (7)找出没有使用天津产的零件的工程号码。 (8)把全部红色零件的颜色改成蓝色。 (9)将由供应商S5供给工程代码为J4的零件P6改为由S3供应,并作其他必要的修改。 (10)从供应商关系中删除S2的记录,并从供应零件关系中删除相应的记录。
习题解答
(一)单选题
1.C 2.A 3.A 4.B 5.B 6.C 7.B 8.A 9.A 10.D 13.D 14.B 15.D 16.D 17.A 18.B 19.C 20.C 22.C 23.C 24.B 25.B 26.C 27.D 28.B 29.C 30.C (三)判断题
1. × 2.√ 3.× 4.× 5.× 6.√ 7.√ 8.√
19
数据库原理与应用习题
(四)综合题
1.(1)create database library (2)create table book(
book_id char(4) primary key, book_name char(20) not null, Publisher char(20), price int, lend char(2))
(3)INSERT into book values(‘001’,’数据库’,’高等教育出版社’,30,’是’)
INSERT into book values(‘002’,’电子商务’,’清华大学出版社’,25,’
是’)
INSERT into book values(‘003’,’物流概论’,’中国物资出版社’,28,’
否’)
(4)ALTER table book ALTER column book_name varchar(40) (5)create unique index i_bname on book(book_name) (6)select * from book WHERE lend='否' (7)drop index book.i_bname
(8)create view v_book as select * from book WHERE lend='是' and price>28 2.(1)create database person (2)create table emp(
eno char(4) primary key, ename char(12) not null, age int, sex char(2), ecity char(10))
create table comp(
cno char(4) primary key, cname char(12) not null, city char(12))
create table works( eno char(4), cno char(4), salary int,
primary key(eno,cno),
foreign key (eno) references emp(eno), foreign key (cno) references comp(cno)) (3)略
(4)select * from works ORDER by salary
(5)select emp.eno,ename,comp.cno,cname,salary
from emp,works,comp WHERE emp.eno=works.eno and comp.cno=works.cno (6)select emp.eno,ename from emp,works WHERE emp.eno=works.eno and salary>2000 3.(1)create database jxs (2)create table employee(
emp_no char(5) primary key,
20