Mysql中的約束

2021-10-05 10:47:37 字數 2436 閱讀 1813

概念:對錶中的資料進行限定,保證資料的正確性,有效性,完整性;

分類: 四種約束

主鍵約束: primary key

非空約束: not null

唯一約束: unique

外來鍵約束: foreign key

(一)非空約束

建立表的時候新增非空約束

create table stu(

id int,

name varchar(20) not null

)

刪除表中的非空約束

刪除表中的非空約束

alter table stu modify name varchar(20);

建立表以後,新增非空約束

alter table stu modify name varchar(20) not null;
(二)唯一約束

建立表時候新增唯一約束

create table stu(

id int ,

phone_number varchar(20) unique

);

唯一約束可以有null ,但是只可以有一條為null

刪除唯一約束

alter table stu drop index phone_number;
(三)主鍵約束

主鍵約束

primary key

注意: 1.含義:非空且唯一

​ 2.一張表只能有乙個欄位是主鍵

​ 3.主鍵就是表中記錄的唯一標識

在建立表的時候新增主鍵

create table stu(

id int primary key,

name varchar(20)

)

刪除表中的主鍵

alter table stu drop primary key; (主鍵是唯一的,所以不需要指定字段)
建立完表以後,新增主鍵

alter table stu modify id int primary key ;
主鍵的自動增長

概念:如果某一列是數值型別的,使用auto_increment可以完成值的自動增長,

建立表時候新增自動增長

create table stu(

id int primary key auto_increment ,

name varchar(20)

);

注意:自動增長與上一條記錄有關,他會先讀取上一條記錄,然後在進行自動增長;

刪除自動增長

alter table stu modify id int;
新增自動增長

alter table stu modify id int auto_increment ;
(四)外來鍵約束

外來鍵約束 foreign key ; 讓表與表產生關係,從而保證資料的正確性;

1.在建立表時候,可以新增外來鍵

語法:

create table 表名(

...外來鍵列

constraint 外來鍵名稱 foreign key (外來鍵列名稱) references 主表名稱(主表列名稱)

);

a表字段屬於b表中的字段 那麼b表就是主表,其中字段就是主鍵

另外外來鍵可以為null;

2.刪除外來鍵

alter table employee drop foreign key emp_dep_fk;
3.新增外來鍵

alter table employee add constraint emp_dep_fk foreign key (dep_id) references department (id);
4.級聯操作

就是你修改主表中的資料,從表中的資料也會跟著改變,這就是級聯

新增外來鍵,設定級聯更新

alter table employee add constraint emp_dep_fk foreign key (dep_id) references department (id) on update cascade;
新增外來鍵,設定級聯刪除

alter table employee add constraint emp_dep_fk foreign key (dep_id) references department (id) on update cascade;
當你將主表中的一條記錄刪除的時候,相應的從表中的資料也會被刪除

mysql中的約束條件 MySQL中的約束條件

主鍵約束 primary key 1.每個表中只能有乙個主鍵 2.主鍵值必須是非空不重複 3.可以設定單字段主鍵,也可以設定多欄位聯合主鍵 聯合主鍵中多個欄位的取值完全相同時,才違反主鍵約束 新增單字段主鍵約束 create table primary key,新增多欄位聯合主鍵約束 create ...

mysql中的約束條件 MySQL中的約束條件

主鍵約束 primary key 1.每個表中只能有乙個主鍵 2.主鍵值必須是非空不重複 3.可以設定單字段主鍵,也可以設定多欄位聯合主鍵 聯合主鍵中多個欄位的取值完全相同時,才違反主鍵約束 新增單字段主鍵約束 create table primary key,新增多欄位聯合主鍵約束 create ...

mysql密碼約束 mysql中的約束型別

約束是一種限制,它通過對錶的行或列的資料做出限制,來確保表的資料的完整性 唯一性。mysql中,常用的幾種約束 primary key 主鍵 主鍵約束相當於 唯一約束 非空約束 的組合,主鍵約束列不允許重複,也不允許出現空值。每個表最多隻允許乙個主鍵,建立主鍵約束可以在列級別建立,也可以在表級別建立...