一.表約束 1.非空約束:not null 作用:定義表的某一列不能為空。 2.唯一約束:uniqe key 作用:確定某一列不能存在相同的值。 3.主鍵約束:primay key 作用:列中唯一標識一條數據,每張表裡面只能有一個主鍵;主要是幫助MYSQL更快的查找某一條信息。 特征:非空並唯一,當 ...
一.表約束
1.非空約束:not null
作用:定義表的某一列不能為空。
>> alter table 表名 modify 列名 int not null; "添加非空約束" >> alter table 表名 modify 列名 int; "取消非空約束"
2.唯一約束:uniqe key
作用:確定某一列不能存在相同的值。
>> alter table 表名 add unique key(列); "添加唯一約束" >> alter table 表名 drop key 列; "取消唯一約束"
3.主鍵約束:primay key
作用:列中唯一標識一條數據,每張表裡面只能有一個主鍵;主要是幫助MYSQL更快的查找某一條信息。
特征:非空並唯一,當表裡沒有主鍵的時,預設第一個出現的非空並唯一的列就是主鍵。
>> alter table 表名 add primary key(列); "添加主鍵約束" >> alter table 表名 drop primary key; "取消主鍵約束"
4.外鍵約束:foreign key
作用:保持數據的一致性,減少數據冗餘,實現一對多關係。外鍵一般關聯另一張表的主鍵。
>> alter table 需要外鍵的表 add constraint 外鍵名 foreign key(需要外鍵表的欄位名) referencnes 關聯表名(關聯欄位名);
"添加外鍵約束"(註意:外鍵名不能重覆)
>> alter table 存在外鍵的表 drop foreign key 關聯欄位名;
"刪除外鍵約束"
5.自增長約束:auto_increment
作用:自動編號。一般與主鍵組合使用。一個表裡面只有一個自增,預設情況下起始值為1,每次增量為1
>> alter table 表名 modify 列 int auto_increment;
"添加自增長約束"
>> alter table 表名 modify 列 int;
"刪除自增長約束"
6.預設約束:default
作用:沒有插入數據時,自動賦予預設值。
>> alter table 表名 modify 列 int default 預設值;
"添加預設約束" >> alter table 表名 modify 列 int;
"刪除預設約束"
二.表關係
1. 一對一關係:
例:2張表通過主鍵進行關聯。 學生信息表:學生表=1:1
#建立學生信息表: create table student_details( id int primary key, sex varchar(20) not null, age int, address varchar(20) comment '家庭住址', parents varchar(20), home_num varchar(20), foreign key (id) references student(s_id) );
2.一對多關係
例:2張表通過外鍵進行關聯。 學生表:學院表=n:1
##創建學生表 create table student( s_id int primary key auto_increment, # 學生id s_name varchar(20) not null, # 學生名字 dept_id int not null, # 所屬學院 id constraint SD_id foreign key(dept_id) references department(d_id) #外鍵 );
#創建學院表 create table department( d_id int primary key auto_increment, # 學院id d_name varchar(20) not null # 學院名 );
3.多對多關係
例:通過創建中間表進行關聯 。 學生表:課程表=m:n
#建立課程表: create table cours( cours_id int primary key auto_increment, cours_name varchar(20) not null );
# 選課表 (中間表) create table `select`( s_id int, #用來記錄學生id cours_id int, #用來記錄 課程id primary key(s_id,cours_id), # 聯合主鍵 foreign key(s_id) references student(s_id), # 關聯學生id foreign key(cours_id) references cours(cours_id) # 關聯課程id );
三.數據類型
MySQL支持多種類型,大致可以分為三類:
-
數值日期/
-
時間
-
字元串(字元)類型。