SQL基础(三)之约束

三、约束
用来你输入的字要符合你要求数据的格式
作用:定义规则  确保数据的完整性  

非空约束
一、在创建表的时候进行非空约束
create table table_name(
    column_name datatype  not null,....
);
二、修改表的约束 (在设置非空约束 最好表中没有数据)
alter table userinfo 
modify username varchar2(20)  not null;

三、在修改表的时候如何去除非空约束
alter table userinfo 
modify username varchar2(20)    null;

主键约束
     一张表中只能设计一个主键约束
    主键约束可以有多个字段构成(联合主键和符合主键)
一、创建表的时候设置主键约束
create table table_name(
   column_name datatype primary key,.....
)

实例:
create  table userinfo
( id  number(6,0) primary key,
  username   varchar2(20),
  userpwd     varchar2(20)
);

联合主键
create  table userinfo
( id  number(6,0) ,
  username   varchar2(20),
  userpwd     varchar2(20),
constraint  pk_id_username primary key(id,username)
);
查看约束的名字
select  constraint_name  from user-constraint where table_name='userinfo'


二、修改表的时候添加主键约束
add constraint  constraint_name 
primary  key(column_name);

实例:
alter table userinfo
add constraint pk-id  primary  key(id);

三、更改约束的名称
rename constraint pk-id to new_pk_id;

实例:
alter  table  userinfo 
 rename constraint pk-id to new_pk_id;  

四、删除主键的约束

1  禁用约束
disable|enable conatraint  constraint-name 

实例:
alter table userinfo
disable constraint new_pk_id;

2 删除主键约束
drop  constaint constraint-name 

实例:
alter table userinfo
drop constraint new_pk_id;

3 dorp primary  key[cascade]
实例:
alter table  userinfo
drop  primary  key;


外键约束、

1 在创建表的时候设置外键约束
create table table1
(column_name datatype references
 table2(column_name),..........);

table1(从表)  table2(主表)    主从表的数据字段数据类型必须相同

2 在修改表的时候添加外键约束
constraint constraint-name  foreign
key(column-name)

3 删除外键约束


唯一约束
UNIQUE 
用户输入的必须是唯一的;
CREATE TABLE NUMBER (
   MID  NUMBER  PRIMARY KEY ,
   NAME  UNIQUE,
 );

检查约束(Check):ck
 给表中的一些数据增加一些过滤条件 
 例子:
  create table userinfo  (
     mid  number,
     name varchar2(50) not null,
     age  number(3),
     sex  varchar2(10)  not null,
     constraint  pk_mid primary key (mid),
     constraint  ck_sex check (sex in ('男','女')),
     constraint  ck_age check (age between 0 and 250)
   )

主外键约束
create TABLE member(
      mid  number,
      name  varchar2(50)  not null,
      constraint  pk_mid primary key (mid)
);
create  table book (
      bid       number,
      title     varchar2(50)  not null,
      mid       number,
      constraint  pk_bid  primary key  (bid),
      constraint  fk_mid  foreign key(mid) refernces member(mid)
);
     不关心子表 还在不在 强制删除数据 
 
     



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值