mysql常用的约束_MySQL常用的约束条件
約束條件
約束條件是在表和字段上強制執行的數據檢驗規則,
它是為了防止不規范的數據進入數據庫,
在我們對數據執行插入、修改、刪除等一系列操作的時候,
數據庫管理系統會自動按照指定的約束條件對數據進行監測,
它主要是對空值和重復值的檢測,來保證數據存儲的完整性和準確性。
按照約束的不同功能,MySQL中常用的約束條件有以下六種。
1.主鍵約束
主鍵是表中非空不重復的字段,它可以唯一的標識表中的一條記錄。
作為主鍵的字段取值不能為空,也不可以重復,并且一張表中只能有一個主鍵,
但是構成主鍵的字段可以是一個也可以有多個。
也就是說主鍵只能有一個,但是一個主鍵可以由多個字段構成,
當多個字段的取值完全一樣的情況下才會違反主鍵約束。
①添加主鍵約束的方法1:
creat table (
primary key,
,
……
);
示例:
create table employee(
e_id int primary key,
e_name varchar(5),
e_sex varchar(5),
e_age int,
d_id int
);
②添加主鍵約束的方法2:
create table (
,
,
......
,
[constraint 主鍵約束名] primary key(字段名1[,字段名2,...字段名n])
);
示例:
create table employee(
e_name varchar(5),
e_sex varchar(5),
e_age int,
d_id int,
primary key(e_name,e_sex)
);
③刪除主鍵約束的方法:
alter table drop primary key;
示例:
alter table employee drop primary key;
2.唯一約束
唯一約束要求指定字段的數據取值不能重復,可以是空值,但是空值也只能出現一次。
①添加唯一約束的方法1:
creat table (
unique,
,
……
);
示例:
create table employee(
e_id int,
e_name varchar(5) unique,
e_sex varchar(5),
e_age int,
d_id int
);
②添加唯一約束的方法2:
creat table (
,
,
……
,
[constraint 唯一約束名] unique (字段名1[,字段名2...字段名n])
);
示例:
create table employee(
e_id int,
e_name varchar(5),
e_sex varchar(5),
e_age int,
d_id int,
unique (e_name,e_sex)
);
③刪除唯一約束的方法:
alter table drop index ;
如果單個字段沒有指定唯一約束名,則默認的唯一約束名為字段名。
如果是多個字段組合為唯一約束時候,默認的唯一約束名為第一個字段的名稱。
如果指定了約束名,則刪除的時候寫約束名。
示例:
alter table employee drop index e_name;
3.自動增長約束
自動增長約束是要求指定字段的數據取值自動增長,默認是從1開始,
每增加一條記錄,這個字段的取值就會加1,
所以它只適用數值型和日期時間型字段,并且要配合主鍵一起使用。
①添加字段增長約束的方法:
creat table (
primary key auto_increment,
,
……
);
示例:
create table employee(
e_id int primary key auto_increment,
e_name varchar(5),
e_sex varchar(5),
e_age int,
d_id int
);
②刪除自動增長約束的方法:
alter table modify ;
示例:
alter table employee modify e_id int;
4.非空約束
非空約束是要求指定字段的取值不能為空值。
①非空約束的方法:
creat table (
not null,
,
……
);
示例:
create table employee(
e_id int,
e_name varchar(5) not null,
e_sex varchar(5),
e_age int,
d_id int
);
②刪除非空約束的方法:
alter table modify [null];
示例:
alter table employee modify e_name int;
5.默認約束
默認約束是指在插入新記錄的時候,如果沒有為指定字段賦值,
數據庫管理系統會自動為這個字段賦值為默認約束設定的值。
①添加默認約束的方法:
creat table (
default value,
,
……
);
示例:
create table employee(
e_id int,
e_name varchar(5),
e_sex varchar(5),
e_age int default 0,
d_id int
);
②刪除默認約束的方法:
alter table modify ;
示例:
alter table employee modify e_age int;
6.外鍵約束
外鍵約束是指一個表中的字段取值依賴于另一個表中字段的值。
主鍵所在的表叫主表,外鍵所在的表叫從表。
每一個外鍵值必須與主表中的主鍵值相對應。
①添加外鍵約束的方法:
creat table (
,
,
……
,
[constraint 外鍵約束名] foreign key(字段名) references (主鍵字段)
);
示例:
-- 創建一個主表
create table department(
d_id int primary key,
d_name varchar(5),
d_num int);
-- 創建從表的同時添加外鍵
create table employee(
e_id int primary key,
e_name varchar(5),
e_sex varchar(5),
e_age int,
d_id int,
foreign key(d_id) references department(d_id)
);
②刪除外鍵約束的方法:
alter table drop foreign key ;
先刪除從表再刪除主表。
先刪除外鍵約束,再刪除表。
示例:
alter table employee drop foreign key fk_d_id;
7.小結
約束條件 特點
主鍵約束(PRIMARY KEY) 非空不重復
非空約束(NOT NULL) 不能為空
唯一約束(UNIQUE) 不能重復
自增字段(AUTO_INCREMENT) 自動增長
默認約束(DEFAULT) 默認值
外鍵約束(FOREIGN KEY) 與主鍵相對應
總結
以上是生活随笔為你收集整理的mysql常用的约束_MySQL常用的约束条件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql临时表的使用实例_MySQL中
- 下一篇: sylog mysql_25.2 配置使