標籤:sig 缺點 存在 efault 方案 course 有關 var 很多
1 欄位屬性
1.1 主鍵
- 主鍵:primary key,一張表中只能有一個欄位可以使用對應的鍵,用來唯一的約束該欄位裡面的資料,不能重複。
- 一張表只能有最多一個主鍵。
1.1.1 增加主鍵
- 在SQL操作中歐有多種方式可以給表增加主鍵,大體分為三種:
- 方案1:在建立表的時候,直接在欄位之後,跟primary key關鍵字(主鍵本身不可為空)。
-- 增加主鍵create table my_pri( id int primary key, name varchar(20) not null comment ‘姓名‘)charset utf8;
- 方案2:在建立表的時候,在所有的欄位之後,使用primary key(主鍵欄位列表)來建立主鍵,如果有多個欄位作為主鍵,可以是複合主鍵。
create table my_pri2( number char(10) comment ‘學號‘, course char(10) comment ‘課程代碼:3901+0000‘, score tinyint unsigned default 60 comment ‘成績‘, -- 增加主鍵限制:學號和課程代碼應該是唯一的 primary key (number,course))charset utf8;
- 方案3:當表已經建立好之後,額外追加主鍵:可以通過修改表欄位屬性,也可以直接追加。
alter table 表名 add primary key (欄位列表);
1.1.2 主鍵約束
- 主鍵對應的欄位中的資料不允許重複,一旦重複,資料操作失敗(增和該)。
1.1.3 主鍵更新 & 刪除主鍵
drop table 表名 drop primary key;
1.1.4 主鍵分類
- 在實際建立表的過程中,很少使用真實業務資料作為主鍵欄位(業務主鍵,如學號、課程號)。
- 大部分的時候,是使用邏輯性的欄位(欄位沒有業務含義,值是什麼都沒有關係),將這種欄位主鍵稱為邏輯主鍵。
1.2 自動成長
- 自增長:當對應的欄位,不給值,或者給預設值,或者給null的時候,會自動的被系統觸發,系統會從當前欄位中的已有的最大值+1操作,得到一個新的不同的欄位。
1.2.1 新增自增長
- 自增長特點:auto_increment
- 任何一個欄位要做自增長必須前提是本身是一個索引(key一欄有值)。
1.2.2 自增長使用
- 當自增長被給定的值為null或者預設值的時候,會觸發自動成長。
1.2.3 修改自增長
- 自增長如果是涉及到欄位改變:必須先刪除自增長,後增加(一張薄只能有一個自增長)。
- 修改當前自增長已經存在的值:修改只能比當前已有的自增長的最大值大,不能笑(小不生效)。
-- 修改表選項的值alter table 表名 auto_increment = 值;
- 思考:為什麼自增長是從1開始?為什麼每次都是自增1呢?
- 所有系統的變現(如字元集、校對集)都是系統內部的變數進行控制的。
- 查看自增長對應的變數:show variables like ‘auto_increment%‘;
- 可以修改變數實現不同的效果,但是修改是針對整個資料庫的修改,而不是單張表,不建議修改。
-- 不建議修改set auto_increment_increment = 5;
1.2.4 刪除自增長
- 自增長是欄位的一個屬性:可以通過modify來進行修改(保證欄位沒有auto_increment即可)
alter table 表名 modify 欄位 類型;
1.3 唯一鍵
- 一張表往往有很多欄位需要具有唯一性,資料不能重複;但是一張表中只能有一個主鍵,所以唯一鍵就可以解決表中有多個欄位需要唯一性的約束。
- 唯一鍵的本質和主鍵差不多,唯一鍵預設的允許自動為空白,而且可以多個為空白。
1.3.1 增加唯一鍵
- 方案一:在建立表的時候,欄位之後直接跟unique/unque key。
- 方案二:在所有的欄位之後增加unique key(欄位列表);--複合唯一鍵
MySQL (三)