關於約束的筆記

2021-10-06 17:57:37 字數 1826 閱讀 5098

一.唯一約束:unique,值不能重複

1.建立表時,新增唯一約束

create table stu(

id int,

phone_number varchar(20) unique

);–mysql中,唯一約束限定的列的值可以有多個null

2.刪除唯一約束

alter table stu drop index phone_number;

3.在建立表後,新增唯一約束

alter table stu modify phone_number varchar(20) unique;

二.主鍵約束

–建立表

create table stu(

id int primary key ,

name varchar(20)

);–刪除主鍵的方法

alter table stu drop primary key;

–建立完錶後,新增主鍵的方法

alter table stu modify id int primary key;

三.主鍵自動增長

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;

四.外來鍵約束,讓表與表之間產生關聯,從而保證資料的正確性

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

語法:create tabale +表明(

…外來鍵列

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

2.如何刪除外來鍵

alter table +表名 drop foreign key + 外鍵名;

3.建立表之後 ,新增外來鍵

alter table +表名 add constraint + 外來鍵名稱 foreign key +(外來鍵列名稱) references 主表名稱(主表列名稱)

4.級聯操作

1.新增級聯操作

語法:alter table +表名 add constraint + 外來鍵名稱

foreign key +(外來鍵列名稱) references 主表名稱(主表列名稱) on update cascade on delete cascade

2.分類

級聯更新:on update cascade

級聯刪除:on delete cascade

一.資料庫的設計

1.多表之間的關係

1.一對一(了解):

如,人和身份證號碼

2.一對多(多對一):

如,員工和所在的部門

3.多對多:

如,學生和課程,乙個學生可以選擇

多個課程,乙個課程也可以被多個學生選修

2.資料庫設計的正規化

概念:設計資料庫時,需要遵循的一些規範,要遵循規範後邊的正規化要求,必須先遵循前邊的所有正規化要求

分類:1.第一正規化:每一列都是不可分割的原子資料項

2.第二正規化:在第一正規化的基礎上,非碼屬性必須完全依賴於候選碼

函式依賴:a–>b,如果通過a屬性的值,可以確定唯一b屬性的值,則稱b依賴於a

例如:學號–>姓名, (學號,課程名稱)–>分數

完全函式依賴:a-->b,如果a是乙個屬性組,則b屬性值的確定需要依賴a屬性組中所有的屬性值

關於MySQL的約束

對於乙個列所建立的約束,稱之為列級約束,而對於兩個或兩個以上的列所建立的約束,我們稱之為表級約束,列級約束在使用的時候,既可以在列定義的時候宣告,也可以在列定義以後宣告,而表級的約束只能在列定義以後來宣告,在實際開發中,用列級約束比較多,表級約束很少用,除此之外,在所有的約束中,並不是說每種約束都存...

關於SQL的約束

1.刪除一列 alter table tbstudent drop column stuphone 2.新增一列 alter table tbstudent add stuphone char 11 3.修改欄位的資料型別 表中gender列不能有資料 alter table tbstudent a...

學習筆記 MySQL 表的約束(主鍵約束)

學習筆記 一.主鍵約束 primary key 主鍵約束的字段值不能相同不能為空,效果同 not null unique 相同 但是主鍵約束後的字段有索引值 如下圖 二.兩種寫法 1.列級約束 create table t user id int 4 primary key,name varchar...