创建表-----表的约束

在这里插入图片描述
在这里插入图片描述
删除表

drop table student

char(ln) 和varcharto(ln)的区别
char会直接开辟ln的存储大小(面试相关)
varcharto根据实际数据长度动态开辟存储空间
char存储效率比varcharto高(面试相关)
小型数据写char 大型数据写varcharto

添加主键有三种方式

create table student(

--1.添加主键,限制内容非空
       sno number(10) primary key,
       sname varchar2(100),
       sage number(3),
       ssex varchar2(3),
       sfav varchar2(500),
       sbirth date,
       sqq varchar2(30)--2.添加主键另一种方式,可以设定报错信息  constraint pk_student_sno primary key(sno)

)

3.在创建表后也可以进行主键约束

alter table student add constraint pk_student_sno primary key(sno)

删除主键约束
constraint 后面是之前设定的主键名字

alter table student drop constraint pk_student_sno 

设定非空

create table student(

       sno number(10) primary key ,
              --表后跟not null
       sname varchar2(100)not null,
       sage number(3),
       ssex varchar2(3),
       sfav varchar2(500),
       sbirth date,
       sqq varchar2(30)--对应设定非空第二种方法,检查约束
     constraint ck_student_sname check(sname is not null)
)
alter table student add constraint ck_student_sname check(sname is not null)

删除约束类比删除主键

example 检查约束限定年龄大小

create table student(

       sno number(10) primary key ,
       sname varchar2(100)not null,
       --括号后面直接写条件语句
       sage number(3)(sage>0 and sage<120),
       ssex varchar2(3),
       sfav varchar2(500),
       sbirth date,
       sqq varchar2(30))

另外两种方式和删除方式直接参照上面,检查约束一般是ck_表名…

唯一约束

create table student(

       sno number(10) primary key ,
       sname varchar2(100)not null,
       sage number(3)(sage >0 and sage<120),
       --直接在后面加unique
       ssex varchar2(3) unique,
       sfav varchar2(500),
       sbirth date,
       sqq varchar2(30))

一般是un_表名…

外键约束

开发中一般父表的主键作为子表的外键
如果使用了外键的这种约束关系,父表数据无法删除,除非级联删除(在创建外键约束时加上on delete cascade,删父表可以删除全部子表关联内容,这种删除无法保留原始数据,
稍微好一点的解决是on delete set null,将删除的内容值为空)

适用于 两张表有数据重叠的部分,其中一张表的这个字段依赖于另一张表,这张表里面有的字段数据另一张表一定要有

--需要依赖的这张表叫做子表,外键加在子表里面
create table student(

       sno number(10) primary key ,
       sname varchar2(100)not null,
       sage number(3)(sage >0 and sage<120),
       ssex varchar2(3) unique,
       sfav varchar2(500),
       sbirth date,
       sqq varchar2(30)--这张表中的cid依赖于clazz中的cno,如果clazz找不到加入的数据,就报错
       cid number(10) references clazz(cno)
       --第二种形式 constraint fk_student_cid foreign key(cid) references clazz(cno)

)
--被依赖的表叫做父表
create table clazz(

       cno number(10) primary key,
       cname varchar2(100) not null,
       cdesc varchar2(300)
       
)

表外的外键约束 类比上面吧

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值