MySQL【六】約束條件

MySQL約束條件

 

not null

# not null (是否能夠爲空)
create table stu(id int(10),
name char(12) not null,
sex enum('male','female')
);

not null + default(默認值)

create table stu2(
id int,
name char(12) not null,
phone char(11),
sex enum('male','female') not null default 'male'
);

unique(惟一)

create table stu3(
id int,
name char(12),
ident char(18) unique
);

unique(聯合惟一)

複製代碼
ip + port
192.168.16.13  mysql 3306
192.168.16.13  kugou 8080
192.168.16.13  flask 5000
192.168.16.15  mysql 3306
192.168.16.16  mysql 3306

create table service(
id int,
ip char(15),
name char(15),
port int(5),
unique(ip,port)
);
複製代碼

auto_increment

自增的條件(這一列必須是數字,這一列必須是uniuqe)html

create table userinfo(
  id int unique auto_increment,
  name char(12),
  password char(32)
);

primary key(主鍵)

primary key(主鍵)  ==  not null 非空 + unique 惟一 mysql

create table userinfo3(
  id int unique,
  username char(18) not null unique,
  password char(32),
  ident char(18) not null unique
);

一張表中只能有一個主鍵 : 主鍵從約束的角度上來講 就是非空且惟一的
只不過,非空+惟一能夠設置多個字段,可是主鍵只能給一個表中的一個字段設置
(通常狀況下,咱們給id字段設置爲主鍵,不容許一張表不設置主鍵)sql

create table pri2(
  id1 int primary key,
  id3 int unique not null
);

聯合主鍵

約束多個字段各自不能爲空,而且聯合惟一flask

create table pri4(
    id1 int,
    num int,
    primary key(id1,num)
);

外鍵

foreign Key(被關聯的項) references 被關聯的表(待關聯的項)ide

複製代碼
# 表2 班級表 cid class_name
create table clas(
    cid int primary key,
    class_name char(20)
 );
 
# 表1 學生表 id name class_id
create table stu(
    id int primary key ,
    name char(18),
    class_id int,
    foreign Key(class_id) references clas(cid)
 );
複製代碼

級聯更新,級聯刪除

(關聯後能夠修改也能夠刪除)on update cascade on dalete cascadepost

複製代碼
create table stu(
    id int primary key ,
    name char(18),
    class_id int,
    foreign Key(class_id) references clas(cid)
    on update cascade on dalete cascade
 );
複製代碼
相關文章
相關標籤/搜索