综合测试二
一、基础设置
1.1 创建新用户test1密码test1
1.2 赋予test1管理员权限
1.3 给予用户创建会话的权限
1.4 给予用户创建表的权限
1.5 修改当前会话的时间显示为以下格式“yyyy-mm-dd hh:mm:ss”
二、数据管理操作
某个学生运动会比赛信息的数据库,保存了如下的表:
表1:运动会信息表gameinfo
表2:运动员sporter
成绩grade
请用SQL语句完成如下功能:
1. 在test1用户下建表,注意满足如下要求:
a) 定义各个表的主码外码约束
b) 运动员的姓名和所属系别不能为空值。
c) 积分要么为空值,要么为6,4,2,0, 分别代表第一,二,三名和其他名次的积分。
2. 往表中插入数据:
运动会表(
101,秋季运动会,工业大学,2008-8-8,1000,12300.50)
运动员(
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. 完成如下操作
1)查询运动会信息表以文字形式显示运动会的信息。例如:工业大学秋季运动会在2008年8
月8日举行,参加人数1000人,赛会预计费用12,300.50元。
2)由于客观原因,参赛人数减少20%,费用缩减为原来的90%,请更改运动会信息表。
3)1006号运动员的信息更改为孙梦,外语系。
4)计算参加运动会的男女运动员共多少人。
5)查出姓李的运动员显示他们的姓名和所在系别。
6)求出目前总积分最高的系名,及其积分。
7)出在一操场进行比赛的各项目名称及其冠军的姓名
8)出参加了张三所参加的所有项目的其他同学的姓名
9)经查张三因为使用了违禁药品,其成绩都记0分,请在数据库中作出相应修改。
10)经组委会协商,需要删除女子跳高比赛项目。
答案:
综合测试二
一、基础设置
1.1创建新用户test1密码test1
conn sys/123 as sysdba;
create user test1 identified by test1
1.2 赋予test1管理员权限
grant dba to test1;
1.3 给予用户test1创建会话的权限
grant create session to test1;
1.4 给予用户创建表的权限
grant create table to test1;
1.5 修改当前会话的时间显示为以下格式“yyyy-mm-/dd hh24:mm:ss”
alter session set nls_date_format=‘yyyy-mm-dd hh24:mi:ss’
二、数据管理操作
某个学生运动会比赛信息的数据库,保存了如下的表:
表1:运动会信息表gameinfo
create table gameinfo
(
gameid int primary key,
gamename varchar2(30) not null,
school varchar2(20),
gamedate date,
count int check(count>0),
charge number(7,2) check(charge>0)
)
表2:运动员sporter
create table sporter(
sporterid number(4) primary key,
name varchar2(20) not null,
sex char(2),
department varchar2(20) not null
);
表3:项目item
create table item(
itemid varchar2(6) primary key,
itemname varchar2(20),
location varchar2(20)
);
表4:成绩grade
create table grade1(
id varchar2(6),
itemid varchar2(6),
mark number(2),
constraint fk_itemid
foreign key( itemid) references item( itemid),
constraint mark_ck check ( mark in( 6,4,2,0)));
请用SQL语句完成如下功能:
1. 在test1用户下建表,注意满足如下要求:
a) 定义各个表的主码外码约束
b) 运动员的姓名和所属系别不能为空值。
c) 积分要么为空值,要么为6,4,2,0, 分别代表第一,二,三名和其他名次的积分。
2. 往表中插入数据:
运动会表(
101,春季运动会,工业大学,2008-8-8,1000,12300.50)
insert into gameinfo values(101,'秋季运动会','工业大学','8-8月-2008',1000,12300.50); 运动员(
1001, 李明,男,计算机系
1002,张三,男,数学系
1003, 李四,男,计算机系
1004, 王二,男,物理系
1005, 李娜,女,心理系
1006, 孙丽,女,数学系)
insert into sporter( sporterid, name,sex,department)
values ( 1001, '李明', '男','计算机');
insert into sporter( sporterid, name,sex,department)
values ( 1002, '张三', '男','数学系');
insert into sporter( sporterid, name,sex,department)
values ( 1003, '李四', '男','计算机');
insert into sporter( sporterid, name,sex,department)
values ( 1004, '王二', '男','物理系');
insert into sporter( sporterid, name,sex,department) values ( 1005, '李娜', '女','心理系');
insert into sporter( sporterid, name,sex,department) values ( 1006, '孙丽', '女','数学系');
项目(
x001, 男子五千米,一操场
x002,男子标,一操场
x003, 男子跳远,二操场
x004, 女子跳高,二操场
x005, 女子三千米,三操场)使用批量操作插入此表数据insert into item values( &itemid,’&itemname’, location) 或
insert into item( itemid,itemname, location)
varchar2最大长度values('X001', '男子五千米','一操场');
insert into item( itemid,itemname, location)
values('X002', '男子标','一操场');
insert into item( itemid,itemname, location)
values('X003', '男子跳远','二操场');
insert into item( itemid,itemname, location)
values('X004', '女子跳高','二操场');
insert into item( itemid,itemname, location)
values('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)
insert into grade1( id,itemid,mark)
values (1001,'X001',6);
insert into grade1( id,itemid,mark)
values (1002,'X001',4);
insert into grade1( id,itemid,mark)
values (1003,'X001',2);
insert into grade1( id,itemid,mark)
values (1004,'X001',0);
insert into grade1( id,itemid,mark)
values (1001,'X003',4);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论