目錄
列屬性
簡單屬性
列屬性又稱爲字段屬性,在mysql中共有6個屬性,null,默認值,列描述,主鍵,唯一鍵和自動增長
null屬性
null屬性,代表字段爲空
如果對應的值爲YES表示該字段可以爲空值
注意:
在設計表的時候,儘量不要讓數據爲空
默認值
default:默認值,當字段被設計的時候,如果允許默認條件下,用戶不進行數據的插入,那麼就可以使用事先準備好的數據來填充,通常填充的是NULL
測試:不給當前字段提供插入值
從圖中可以發現age字段使用默認值18進行填充
default關鍵字的另外一層使用,顯示的告知字段使用默認值,在進行數據插入的時候,對字段值直接使用default
列描述
comment:專門用於給開發人員進行維護的一個註釋說明
基本語法:
comment 字段描述;
查看comment,必須通過查看錶創建語句
主鍵
顧名思意,主要的鍵,primary key,在一張表中,有且只有一個字段,裏面的值具有唯一性
創建主鍵
隨表創建
系統提供了兩種增加主鍵的方式
方案一:直接在需要當作主鍵的字段之後,增加primary key屬性來確定主鍵
方案二:在所有字段之後增加primary key選項,primary key(字段信息)
表後增加
基本語法:
alter table 表名 add primary key(字段);
查看主鍵
方案一:查看錶結構
方案二:查看錶的創建語句
刪除主鍵
基本語法:
alter table 表名 drop primary key;
複合主鍵
案例:有一張學生選修課表,一個學生可以選修多個選修課,一個選修課也可以由多個學生來選,但是一個學生在一個選修課中只有一個成績。
主鍵一般用在中間表,學生有學生表,課程有課程表,學生與課程的中間表my_score就用複合主鍵
主鍵約束
主鍵一旦增加,那麼對對應的字段有數據要求
1、當前字段對應的數據不能爲空;
2、當前字段對應的數據不能有任何重複;
數據重複後報錯:
主鍵分類
主鍵分類採用的是主鍵所對應的字段業務意義分類
業務主鍵:主鍵所在的字段,具有業務意義(學生ID,課程ID)
邏輯主鍵:自然增長的整型(應用廣泛)
自動增長
自動增長,auto_increment,當給定某個字段該屬性之後,該列的數據在沒有提供確定數據的時候,系統會根據之前已經存在的數據進行自動增加後填充。
通常自動增長用於邏輯主鍵。
原理
1、系統中有維護一組數據用來保存當前使用了自動增長屬性的字段,記住當前對應的數據值,再給定一個指定的步長;
2、當用戶進行數據插入的時候,如果沒有給定值,系統在原始值上再增加上步長變成新的數據;
3、自動增長的觸發,給定屬性的字段沒有提供值;
4、自動增長只適用於數值;
使用自動增長
基本語法:
在字段之後增加一個屬性auto_increment
修改自動增長
1、查看自增長,自增長一旦觸發之後,會自動的在表選項中增加一個選項(一張表最多隻能擁有一個自增長)
2、表選項可以通過修改表結構來實現
基本語法:
alter table 表名 auto_increment=數值;
刪除自動增長
刪除自增長,就是在字段屬性之後不再保留auto_increment,當用戶修改自增長所在字段時,如果沒有看到auto_increment屬性,系統會自動清除該自增長
初始設置
在系統中,有一組變量用來維護自增長的初始值和步長
細節問題
1、一張表只有一個自增長,自增長會上升到表選項中
2、如果數據插入中沒有觸發自增長(給定了數據),那麼自增長不會表現
3、自增長修改的時候,值可以較大,但是不能比當前已有的自增長字段的值小
唯一鍵
unique key,用來保證對應的字段中的數據唯一的
主鍵也可以用來保證數據唯一性,但是一張表只有一個主鍵
1、唯一鍵在一張表中可以有多個
2、唯一鍵允許字段數據爲NULL,NULL可以有多個(NULL不參與比較)
創建唯一鍵
創建唯一鍵與創建主鍵非常類似
1、直接在表字段之後增加唯一鍵標識符,unique [key];
-- 唯一鍵
create table my_unique1(
id int primary key auto_increment,
username varchar(10) unique
)charset utf8;
2、在所有的字段之後使用unique key(字段列表);
create table my_unique2(
id int primary key auto_increment,
username varchar(10),
unique key(username)
)charset utf8;
3、在創建完表之後也可以增加唯一鍵;
alter table 表名 add unique key(字段列表);
查看唯一鍵
唯一鍵效果:在不爲空的情況下不允許重複
在查看錶創建語句的時候,會看到與主鍵不同的一點:多出一個“名字”
刪除唯一鍵
index:關鍵字,唯一鍵是索引的一種(提升查詢效率)
基本語法:
alter table 表名 drop index 唯一鍵名字;
修改唯一鍵
先刪除後增加
複合唯一鍵
唯一鍵與主鍵一樣,可以使用多個字段共同保證唯一性
一般主鍵都是單一字段(邏輯主鍵),而其他需要唯一性的內容都是由唯一鍵來處理