mysql建表約束

2021-09-28 14:31:31 字數 2117 閱讀 9374

mysql的約束主要有主鍵約束,外來鍵約束,唯一約束,非空約束,預設約束;

主鍵約束

它能夠唯一確定一張表中的一條記錄.也就是我們通過給某個字段新增約束,就使得該字段不重複且不為空;

mysql> create table texts(

-> id int primary key,

-> name varchar(20));

–>聯合主鍵

聯合主鍵中的每個欄位都不能為空,並且加起來不能和已設定的聯合主鍵重複。

create table user (

id int,

name varchar(20),

password varchar(20),

primary key(id, name)

);

–>自增約束

自增約束的主鍵由系統自動遞增分配。

create table user (

id int primary key auto_increment,

name varchar(20)

);# 如果忘記設定主鍵,還可以通過sql語句設定(兩種方式):

alter table user add primary key(id);

alter table user modify id int primary key;

#刪除主鍵

alter table user drop primary key;

唯一約束
-- 建表時建立唯一主鍵

create table user (

id int,

name varchar(20),

unique(name)

);-- 新增唯一主鍵

-- 如果建表時沒有設定唯一建,還可以通過sql語句設定(兩種方式):

alter table user add unique(name);

alter table user modify name varchar(20) unique;

-- 刪除唯一主鍵

alter table user drop index name;

非空約束

就是修飾的字段不能為空 null;

-- 建表時新增非空約束

-- 約束某個字段不能為空

create table user (

id int,

name varchar(20) not null

);-- 移除非空約束

alter table user modify name varchar(20);

預設約束

就是當我們插入欄位的時候,如果沒有傳值,就會使用預設值;

-- 建表時新增預設約束

-- 約束某個欄位的預設值

create table user2 (

id int,

name varchar(20),

age int default 10

);-- 移除非空約束

alter table user modify age int;

外來鍵約束

涉及到兩個表 :父表,子表;

-- 班級

create table classes (

id int primary key,

name varchar(20)

);-- 學生表

create table students (

id int primary key,

name varchar(20),

-- 這裡的 class_id 要和 classes 中的 id 字段相關聯

class_id int,

-- 表示 class_id 的值必須來自於 classes 中的 id 字段值

foreign key(class_id) references classes(id)

);-- 1. 主表(父表)classes 中沒有的資料值,在副表(子

Mysql建表約束

2.自增約束 3.唯一約束 4.非空約束 5.預設約束 6.外來鍵約束 7.檢查約束 無效 8.列舉型別約束 9.觸發器 trigger 約束 1.主鍵約束 它是能夠唯一確定一張表中的一條記錄,也就是我們通過給某個字段新增約束,也就是使得改字段不重複而且不為空 1.1 普通主鍵約束 create t...

MySQL建表約束

它能夠唯一確定一張表中的記錄,也就是我們通過給某個字段新增約束,就可以使得該字段不重複且不為空。create table user id int primary key,name varchar 20 insert into user values 1,張三 唯一 不能再次插入id 1的記錄 資料 ...

MySQL建表約束

1 作用 它能夠唯一確定一張表中的一條記錄,也就是我們通過某個字段新增約束,就可以使得該字段不重複且不為空。create table user id int primary key,name varchar 20 使用peimary key 修飾後,插入 insert id就不能為空和重複了。2 多...