数据库上机题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
现有一个商店的数据库,记录顾客及其购物情况,由下面三个表组成:
商品(商品号,商品名,单价,商品类别,供应商);
顾客(顾客号,姓名,住址);
购买(顾客号,商品号,购买数量);
建表,在定义中要求声明:
1)每个表的主外码;
2)顾客的姓名和商品名不能为空值;
3)单价必须大于0,购买数量必须在0到20之间;
1.往表中插入数据:
商品(
M01,佳洁士,8.00,牙膏,宝洁;
M02,高露洁,6.50,牙膏,高露洁;
M03,洁诺,5.00,牙膏,联合利华;
M04,舒肤佳,3.00,香皂,宝洁;
M05,夏士莲,5.00,香皂,联合利华;
M06,雕牌,2.50,洗衣粉,纳爱斯;
M07,中华,3.50,牙膏,联合利华;
M08,汰渍,3.00,洗衣粉,宝洁;
M09,碧浪,4.00,洗衣粉,宝洁
)
顾客(C01,Dennis,海淀;
C02,John,朝阳;
C03,Tom,东城;
C04,Jenny,东城;
C05,Rick,西城;)
购买(C01,M01,3;C01,M05,2;
C01,M08,2;C02,M02,5;
C02,M06,4;C03,M01,1;
C03,M05,1;C03,M06,3;
C03,M08,1;C04,M03,7;
C04,M04,3;C05,M06,2;
C05,M07,8;)
2.用SQL语句完成下列查询:
(1)检索购买了供应商"宝洁"产品的所有顾客;
(2)检索买的商品包括了顾客"Dennis"所购买商品的顾客(姓名);
(3)检索牙膏卖出数量最多的供应商。
(4)检索至少购买了两种商品的所有顾客
(5)检索全部顾客都购买过的商品
(6)将所有的牙膏商品单价增加10%。
(7)删除从未被购买的商品记录。
现要为学校建立一个数据库,设学校环境如下:一个系有若干个专业,每个专业一年只招一个班,每个班有若干个学生..现要建立关于系、学生、班级的数据库,关系模式为:学生STUDENT(学号,姓名,年龄,班号)
班CLASS(班号,专业名,系名,入学年份)
系DEPARTMENT(系号,系名)
试用SQL语言完成以下功能:
1建表,在定义中要求声明:
(1)每个表的主外码.
(2)每个班级的人数不能超过30人.
(3)学生的年龄介于15到40岁之间.
(4)学生姓名不能为空.
(5)只有班里没有学生的时候,才能删除该班级.
2插入如下数据
CLASS(
101,软件,计算机,1995;102,微电子,计算机,1996;
111,无机化学,化学,1995;112,高分子化学,化学,1996;
121,统计数学,数学,1995;131,现代语言,中文,1996;
141,国际贸易,经济,1997;142,国际金融,经济,1996;
)
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
)
DEPARTMENT(
001,数学;
002,计算机;
003,化学;
004,中文;
005,经济;
)
3完成以下查询功能
(1)找出所有姓李的学生,并按其年龄由小到大排序.
(2)列出所有开设超过两个专业的系的名字.
(3)列出学生人数大于等于2的系的编号和名称.
4学校又新增加了一个物理系,编号为006.
5学生张三转到化学系111班,请更新相关的表.
设计零售公司的数据库:
售货员(员工号,姓名,住址),商品(商品号,商品名,单价),制造商(制造商名,制造商地址,电话),多个商品可以由一个售货员售出,一个商品也可以由多个人员售出,一件商品可以有多个制造商. 要求:
1建表:要有主外码定义,商品价格大于0.
2插入:每个表最少4条,保证查询结果不为空.
3找出Mike卖出的所有商品的商品名.
4找出提供商品种类最多的制造商名.
5更新:将“统一冰红茶“的价格降低3%.
6删除:单价低于一元的商品.
有某个学生运动会比赛信息的数据库,保存了如下的表:
运动员(运动员编号,运动员姓名,运动员性别,所属系号)
项目(项目编号,项目名称,项目比赛地点)
成绩(运动员编号,项目编号,积分)
请用SQL语句完成如下功能:
1.建表,注意满足如下要求:
a)表名必须加自己的帐号作前缀,比如“d1*******运动员”
b)定义各个表的主码外码约束
c)运动员的姓名和所属系别不能为空值.
d)积分要么为空值,要么为6,4,2,0,分别代表第一,二,三名和其他名次的积分,注意名次可以有并列名次,后面的排名不往前提升,例如,如果有两个并列第一,则没有第二名.
2.往表中插入数据:
运动员(
1001,李明,男,计算机系
1002,张三,男,数学系
1003,李四,男,计算机系
1004,王二,男,物理系
1005,李娜,女,心理系
1006,孙丽,女,数学系)
项目(x001,男子五千米,一操场
x002,男子标枪,一操场
x003,男子跳远,二操场
x004,女子跳高,二操场x005,女子三千米,三操场)
积分(1001,x001,6
1002,x001,4
1003,x001,2
1004,x001,0
1001,x003,4
1002,x003,6
1004,x003,2
1005,x004,6
1006,x004,4)
3.完成如下查询
a)求出目前总积分最高的系名,及其积分.
b)找出在一操场进行比赛的各项目名称及其冠军的姓名c)找出参加了张三所参加的所有项目的其他同学的姓名4.经查张三因为使用了违禁药品,其成绩都记0分,请在数据库中作出相应修改.
5.经组委会协商,需要删除女子跳高比赛项目.