约束:非空约束、主键约束、唯一约束、外键约束、外键约束

1、约束的含义:

是一种限制,对表的行或列进行限制。

 

2、约束的类型:

1)非空约束:not null ,字段的值不能为空。若添加数据时没有指定值,会报错。

添加非空约束

方式1:在创建表时添加非空约束

create table bookinfo(

book_id int,

book_name varchar(20) not null

);

方式2:通过修改表来添加非空约束

create table bookinfo(

book_id int,

book_name varchar(20)

);

alter table bookinfo modify book_name varchar(20) not null;//添加非空约束

删除非空约束

create table bookinfo(
book_id int,
book_name varchar(20) not null
);
alter table bookinfo modify book_name varchar(20); //删除非空约束

 

2)主键约束:primary key,通过主键能定位到改行记录,要求唯一并不允许为空。注意:一张表只能有一个字段设置为主键。

第一种:单字段主键约束:

     编写方式1:列名 数据类型 primary key

create table bookinfo(

book_id int primary key,

book_name varchar(20) not null

);

       编写方式2:[constraint <约束名>]primary key(列名)

create table bookinfo(

book_id int,

book_name varcahre(20) not null,

constraint pk_id primary key(book_)id)

);

第2种:多字段联合主键(或:复合主键)

定义:主键由多个字段联合组成

编写方式:primary key (字段1,字段2,…字段n);

create table borrowinfo(
 book_id int,
 card_id char(18),
 primary key(book_id,card_id)
);

同样地,我们不仅可以通过创建表的时候添加主键约束,也可以通过修改表的时候添加主键约束。

alter table bookinfo modify book_id int primary key;

alter talbe bookinfo add primary key(book_id);

alter table bookinfo add constraint pk_id primary key (book_id);

删除主键约束:

alter table bookinfo drop primary key;

 

3)唯一约束:unique ,一张表指定列的值不能重复

创建表时添加唯一约束:

create table bookinfo(

 book_id int primary_key,

 book_name varchar(20) unique not null

);

修改表时添加唯一约束:

alter table bookinfo modify book_name varchar(20) unique;

alter table bookinfo add unique(book_name);

alter table bookinfo add constraint uk_bname unique(book_name);

删除唯一约束:

alter table bookinfo drop key book_info;

 

4)默认约束:default,插入数据未对值赋值的话,会默认赋值

方式1:创建表时添加默认约束:

create table bookinfo(

book_id int primary key,

press varchar(20) default '机械工业出版社'

);

方式2:创建表时未创建默认约束,而是在修改表时添加约束:

alter table bookinfo

modify press varchar(10) default '机械工业出版社';

删除约束:

alter table bookinfo modify press varchar(20);

alter table bookinfo alter columu press drop default;

 

5)外键约束:foreign key,对两个表进行连接。可以是一列或是多列,一个表可以有一个或多个外键。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值