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 多...