mysql教程(七)建立表並新增約束

2021-10-11 22:46:26 字數 3889 閱讀 2802

not null:非空約束,針對某個字段設定其值不為空,如:學生的姓名不能為空。

unique:唯一約束,它可以使某個欄位的值不能重複,如:email不能重複:

primary key:主鍵約束,每個表應該具有主鍵,主鍵可以標識記錄的唯一性,主鍵分為單一主鍵和復合(聯合)主鍵,單一主鍵是由乙個字段構成的,復合(聯合)主鍵是由多個字段構成的。

foreign key:外來鍵約束,外來鍵主要是維護表之間的關係的,主要是為了保證參照完整性,如果表中的某個欄位為外來鍵字段,那麼該字段的值必須**於參照的表的主鍵,如:emp中的deptno值必須**於dept表中的deptno字段值。

注意:當乙個表中存在外來鍵約束時,比如a表中有乙個外來鍵來自b表,那麼刪除資料的時候的時候要先刪除a表中的引用記錄,再刪除b表中的資料。

droptableif exists t_classes;

createtablet_classes(

classes_idint(3),

classes_namevarchar(30)notnull,

constraintpk_classes_idprimarykey(classes_id)

)

droptableif exists t_student;

createtablet_student(

student_idint(10),

student_namevarchar(50)notnull,

***char(2)notnull,

birthdaydatenotnull,

emailvarchar(30)unique,

classes_idint(3)notnull,

constraintpk_student_idprimarykey(student_id),

constraintfk_classes_idforeignkey(classes_id)referencest_classes(classes_id)

)

當乙個表中存在外來鍵約束時,刪除和修改都會是乙個比較令人頭疼的事情,一不小心就會報錯。可以採用級聯的方法去解決這個問題。

on update cascade 級聯更新

mysql對有些約束的修改比較麻煩,所以我們可以先刪除,再新增

altertablet_studentdropforeignkeyfk_classes_id;

altertablet_studentaddconstraintfk_classes_id_1foreignkey(classes_id)referencest_classes(classes_id)onupdatecascade;

on delete cascade 級聯刪除

mysql對有些約束的修改時不支援的,所以我們可以先刪除,再新增

altertablet_studentdropforeignkeyfk_classes_id;

altertablet_studentaddconstraintfk_classes_id_1foreignkey(classes_id)referencest_classes(classes_id)ondeletecascade;

deletefromt_classeswhereclasses_id = 20;

① 新增外來鍵約束:alter table 從表 add constraint   約束名稱 foreign key 從表(外來鍵字段) references 主表(主鍵字段);

示例:alter table t_student add constraint fk_classes_id_1 foreign key(classes_id) references t_classes(classes_id);

② 新增主鍵約束:alter table 表 add constraint  約束名稱  primary key  表(主鍵字段); 

示例:alter table t_student add constraint pk primary key(student_id);

③ 新增唯一性約束:alter table 表 add constraint  約束名稱 unique  表(字段); 

示例:alter table t_student add constraint uk unique(email);

alter table t_student modify student_name varchar(30) unique;

mysql對有些約束的修改時不支援,所以我們可以先刪除,再新增

刪除外來鍵約束:alter table 表名 drop foreign key 約束名;

刪除主鍵約束:alter table 表名 drop primary key ;

mysql建立約束 MySQL 建立表及其約束

create table tb name 1 建立表的主鍵約束 主鍵是唯一標識某字段的作用,當該字段為主鍵的時候,其值必須是唯一的,且不能為空。mysql create table student id int primary key,stu id int,course id int id為主鍵,所...

mysql刪除表主鍵約束 MySQL新增約束

mysql新增約束 刪除約束及修改約束 mysql刪除約束 將t student 刪除外來鍵約束 alter table 表名 drop foreign key 外來鍵 區分大小寫 alter table t student drop foreign key fk classes id 刪除主鍵約束...

mysql 建立表新增行 列注釋

建立表新增注釋 create table purchase id int 25 primary key auto increment,user id int 50 comment 列注釋 created on datetime default null engine innodb default c...