Oracle基础练习题及答案(表约束)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
练习作业
创建表emp1,字段如下
eno char(3),
ename char(6)
sex char(2)
age number(2)
dno char(3)
并插入如下数据
1 ,TOM ,男,21 ,’001’
2 ,JERRY ,男,21 ,’002’
3 ,KATE ,女,21 ,’003’
4 ,MARY ,女,21 ,’004’
5 ,JACK ,男,21 ,’005’
i.在eno字段上创建主键约束
ii.在ename字段上创建非空约束
iii.创建检查约束判断age在18到60岁之间的男性或者age在18到55岁之间的女性iv.在dno字段上创建唯一性约束
create table emp1(
eno char(3) primary key,
ename char(6) not null,
sex char(2),
age number(2),
dno char(3) unique,
constraint sex_age check(
((age between18and60) and sex='男') or
((age between18and55) and sex='女'))
)
insert into emp1 values('1','TOM','男',21,'001')
insert into emp1 values('2','JERRY','男',21,'002');
insert into emp1 values('3','KATE','女',21,'003');
insert into emp1 values('4','MARY','女',21,'004');
insert into emp1 values('5','JACK','男',21,'005');
v.创建和emp1表字段相同的emp_bak表,将emp_bak表的eno字段与emp表的eno字段创建外键约束
create table emp_bak as select * from emp1 where1=2
alter table emp_bak add constraint v foreign key(eno) references emp1(eno);
1、请创建一个表,表名为phone,表结构如下
电话号码(PHONENUM VARCHAR2(8))
电话费(PAY number(8,2))
号码等级(NUMLEVEL VARCHAR2(4))
费用日期(PAYDATE varchar2(12)
create table phone (
phonenum varchar2(8),
pay number(8,2),
numlevel varchar2(4),
paydate varchar2(12)
)
1)插入以下两条数据.
123456, 600, pt04, 20051220
888888, 900, pt05, 20051019.
insert into phone values('123456',600,'pt04', '20051220');
insert into phone values('888888',900,'pt05', '20050919');
2)创建一个备份表结构名为phone_bak, 将phone中的数据插入phone_bak中.
create table phone_bak as select * from phone;
3)将电话号码为123456的电话费改为1000,执行回滚操作
Update phone set pay=1000 where phonenum=123456;
Rollback;
1)在phone表中,如果PHONENUM字段中的数据为‘123456’,则返回‘Y’否则返回‘N’
Select decode(phonenum,’123456’,’y’,’n’) from phone;
2)将phone表中的电话号码为123456的记录的费用日期(PAYDATE)字段的日期转变成YYYY/MM/DD格式
Update phone set paydate= to_date(paydate,'yyyy/mm/dd') where phonenum=123456;
3)将电话号码为888888的号码等级改为pt04并提交
Update phone set numlevel=’pt04’ where phonenum=888888
commit;