Oracle作业

1.根据表格创建数据表

学生表(School_Students)

列名数据类型长度是否允许为空说明
stu_idnvarchar220账号、主键约束
stu_namenvarchar220姓名
stu_class_idnvarchar220班级编号
--创建学生表school_students
create table school_Students
(
  stu_id nvarchar2(20) not null,
  stu_name nvarchar2(20) not null,
  stu_class_id nvarchar2(20) not null,
  constraint pk_stu_id primary key(stu_id)
);

班级表(school_class)

列名数据类型长度是否允许为空说明
class_idnvarchar220班级编号、主键约束
class_namenvarchar220班级名称
--创建班级表(school_class)
create table school_class
(
  class_id nvarchar2(20) not null,
  class_name nvarchar2(20) not null,
  constraint pk_class_id primary key(class_id)
);

2.添加数据

班级编号班级名称
2016300116播音与主持艺术1班
2016300216播音与主持艺术2班
2016300316传播学
2016300416地理科学
--往班级表(school_class)插入数据
insert into school_class
values ('20163001','16播音与主持艺术1班');
insert into school_class
values ('20163002','16播音与主持艺术2班');
insert into school_class
values ('20163003','16传播学');
insert into school_class
values ('20163004','16地理科学');
学号姓名班级
201632218002曹浒琳20163001
201632218003曹睿20163001
201632218004陈浩20163001
201632218028李松鸿20163002
201632218029李唯郡20163002
201632218030李文博20163002
201632218031李昕原20163003
201632218041潘睿20163003
201632218042戚婉秋20163003
201632218051王进凤20163004
21632218052王连超20163004
201632218054王祎20163004
--往学生表(school_students)添加数据
insert into school_students values ('201632218002','曹浒琳','20163001');
insert into school_students values ('201632218003','曹睿','20163001');
insert into school_students values ('201632218004','陈浩','20163001');
insert into school_students values ('201632218028','李松鸿','20163002');
insert into school_students values ('201632218029','李唯郡','20163002');
insert into school_students values ('201632218030','李文博','20163002');
insert into school_students values ('201632218031','李昕原','20163003');
insert into school_students values ('201632218041','潘睿','20163003');
insert into school_students values ('201632218042','戚婉秋','20163003');
insert into school_students values ('201632218051','王进凤','20163004');
insert into school_students values ('201632218052','王连超','20163004');
insert into school_students values ('201632218054','王祎','20163004');

3.给学生表添加性别(stu_sex),默认值为男

alter table school_students
add stu_sex nvarchar2(2) default '男';

4.给学生表添加已修学分(stu_credits) 默认为0分

alter table school_students
add stu_credits number(2) default 0;

5.给班级表修改班级编号字段的默认值,默认值为“2016”

alter table school_class
modify class_id default '2016';

6.修改学号“201632218002”的同学,性别为女,学分为12,

update school_students
set stu_sex='女',stu_credits=12
where stu_id='201632218002';

7.修改学号“201632218042”的同学,性别女 ,学分为15,

update school_students
set stu_sex='女',stu_credits=15
where stu_id='201632218042';

8.修改学号“201632218051”的同学,性别女 ,学分为13,

update school_students
set stu_sex='女',stu_credits=13
where stu_id='201632218051';

9.修改班级编号为“20163003”的同学,学分为16,

update school_students
set stu_credits=16
where stu_class_id='20163003';

10.复制表school_students的结构和数据到表school_students2中

create table school_students2
as select * from school_students;

11.删除班级编号为“20163004”的School_Students2表中的数据

delete from school_students2
where stu_class_id='20163004';

12.创建表School_Students3

列名数据类型长度是否允许为空说明
stu_idnvarchar220账号、主键约束
stu_namenvarchar220姓名
stu_sexnvarchar220默认值男
stu_creditsnumber2默认值12
stu_class_idnvarchar220班级编号
--创建表School_Students3
create table school_students3
( 
 stu_id nvarchar2(20) not null,
 stu_name nvarchar2(20) not null,
 stu_sex nvarchar2(20) default '男',
 stu_credits number(2) default 12,
 stu_class_id nvarchar2(20not null,
 constraint pk_stu_id3 primary key(stu_id)
);	

13.复制School_Students2到School_Students3(注意顺序)

insert into school_students3
(stu_id,stu_name,stu_sex,stu_credits,stu_class_id)
select
stu_id,stu_name,stu_sex,stu_credits,stu_class_id
from school_students2;

14.把School_Students的数据合并到School_Students3(注意顺序,school_students3已经存在的数据不合并)

merge into school_students3
using school_students on(school_students3.stu_id=school_students.stu_id) 
when not matched then
insert
(stu_id,stu_name,stu_sex,stu_credits,stu_class_id)
values
(school_students.stu_id,school_students.stu_name,school_students.stu_sex,school_students.stu_credits,school_students.stu_class_id);

15.修改School_Students表中的数据,把班级编号(stu_class_id)为“20163002”的同学,性别修改为“女”,学分修改为20

update school_students
set stu_sex='女',stu_credits=20
where stu_class_id=20163002;

16.把School_Students表中的数据更新到School_Students3

merge into school_students3
using school_students 
on(school_students3.stu_id=school_students.stu_id)
when matched then
update set 
school_students3.stu_name=school_students.stu_name,
school_students3.stu_sex=school_students.stu_sex,
school_students3.stu_credits=school_students.stu_credits,
school_students3.stu_class_id=school_students.stu_class_id
when not matched then
insert
(stu_id,stu_name,stu_sex,stu_credits,stu_class_id)
values
(
 school_students.stu_id,
 school_students.stu_name,
 school_students.stu_sex,
 school_students.stu_credits,
 school_students.stu_class_id
);

17.给School_Students表创建学生姓名索引(index_test),事务初始条目为2,最大并发数200

create index index_test   //创建索引index_test
on school_students(stu_name)   
initrans 2    //设置事务初始条目为2
maxtrans 200;  //设置最大并发数为200

18.修改索引名为“index_School_Students_stu_name”

//修改索引名
alter index index_test
rename to index_school_students_stu_name;

19.给School_Students表创建学生性别索引(index_sex),事务初始条目为2,最大并发数200

create index index_sex
on school_students(stu_sex)
initrans 2
maxtrans 200;

20.删除性别索引

drop index index_sex;
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值