ORCLE day04

目录:
日期处理
唯一性约束和非空约束的列级实现
检查约束的列级约束
主键 唯一 和 检查的表级约束
级联删除和级联置空
1 日期处理
1.1 问题
给你一个日期 把这个日期处理成对应月的最后一天的最后一秒。

sysdate

1.2 步骤
本案例的完整代码如下所示:

select to_char(trunc
(last_day(sysdate))+1-1/(246060),
‘yyyy-mm-dd hh24:mi:ss’) from dual;
last_day(sysdate) 求sysdate这个月最后一天的时间点

trunc(last_day(sysdate))+1-1/(246060) 截取这个月的最后一天的最后一秒

2 唯一性约束和非空约束的列级实现
2.1 问题
建立一张表,有三个字段。

id number 设置成主键

fname varchar2(30) 设置成唯一

sname varchar2(30) 设置成非空

2.2 步骤
本案例的完整代码如下所示:

create table testcolumn9527(
id number constraint
testcolumn9527_id_pk primary key,
fname varchar2(30) constraint
testcolumn9527_fname_uk unique,
sname varchar2(30) constraint
testcolumn9527_sname_nn not null);
constraint testcolumn9527_id_pk primary key 设置成主键

constraint testcolumn9527_fname_uk unique 设置成唯一

constraint testcolumn9527_sname_nn not null 设置成非空

3 检查约束的列级约束
3.1 问题
建立一张表

id number 设置成主键

salary number 要求大于3500。

3.2 步骤
本案例的完整代码如下所示:

create table testcolumn9527(
id number constraint
testcolumn9527_id_pk primary key,
salary number constraint
testcolumn9527_salary_ck check(
salary>3500)
);
constraint testcolumn9527_id_pk primary key

设置id成主键

constraint testcolumn9527_salary_ck check(salary>3500)

要求工资必须大于3500

4 主键 唯一 和 检查的表级约束
4.1 问题
建立一张表

id numb

fname varchar2(30)

sname varchar2(30)

salary number

要求使用表级约束 规定id是主键

fname sname 联合唯一

salary 要求大于4000。

4.2 步骤
本案例的完整代码如下所示:

create table testtable9527(
id number ,
fname varchar2(30),
sname varchar2(30),
salary number,
constraint
testtable9527_id_pk primary key(id),
constraint
testtable9527_fname_sname_uk
unique(fname,sname),
constraint
testtable9527_salary_ck check(salary>4000)
);
create table testtable9527

创建一张名为testtable9527的表

constraint testtable9527_id_pk primary key(id)

设置id成主键

constraint testtable9527_fname_sname_uk unique(fname,sname)

设置fname和sname 联合唯一约束性

constraint testtable9527_salary_ck check(salary>4000)

要求工资必须大于4000

5 级联删除和级联置空
5.1 问题
建立这两张表 然后建立表级的外键关系。

5.2 步骤
本案例的完整代码如下所示:

 create  table dept9527(
     id   number primary key,
     name  varchar2(30)
 ); 
 insert into dept9527 values(1,'test');
 insert into dept9527 values(2,'app');
 commit;
 create table emp9527(
     id   number  primary key,
     name  varchar2(30),
     dept_id  number,constraint 
     emp9527_dept_id_dept9527_id_fk 
     foreign key(dept_id)
     references  dept9527(id) on delete set null 
 );  
 insert into  emp9527 values(1,'x',1);
 insert into  emp9527 values(2,'y',1);
 insert into  emp9527 values(3,'z',2);
 commit;
/*删除id=1的部门*/
delete  from  dept9527 where id=1;

上述代码以下代码:

create table dept9527(
id number primary key,
name varchar2(30)
);
insert into dept9527 values(1,‘test’);
insert into dept9527 values(2,‘app’);
commit;
创建一张名为dept9527的表,并使用insert添加两条数据。

commit命令用于把事务所做的修改保存到数据库。

上述代码以下代码:

create table emp9527(
id number primary key,
name varchar2(30),
dept_id number,constraint
emp9527_dept_id_dept9527_id_fk
foreign key(dept_id)
references dept9527(id) on delete set null
);
insert into emp9527 values(1,‘x’,1);
insert into emp9527 values(2,‘y’,1);
insert into emp9527 values(3,‘z’,2);
commit;
创建一张名为emp9527的表。

以下代码:

constraint emp9527_dept_id_dept9527_id_fk
foreign key(dept_id) references dept9527(id) on delete set null
建立表级的外键关系

insert into emp9527 values(1,‘x’,1);
insert into emp9527 values(2,‘y’,1);
insert into emp9527 values(3,‘z’,2);
commit;
使用insert添加三条数据。

commit命令用于把事务所做的修改保存到数据库 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值