

















列屬性:真正約束字段的是數(shù)據(jù)類型,但是這種約束很單一,需要有一些額外的約束,來更加保證數(shù)據(jù)的合法性,這就需要列屬性
列屬性包括:NULL/NOT NULL、default、Primary key、unique key、auto_increment、comment
空屬性:
兩個值:NULL(默認的)、NOT NULL(不為空)
列描述:comment,描述,沒有實際含義,是專門用來描述字段,會根據(jù)表創(chuàng)建語句保存,用來給程序員(數(shù)據(jù)庫管理員)來進行了解的
默認值:default,某一種數(shù)據(jù)會經(jīng)常性地出現(xiàn)某個具體的值,可以在一開始就指定好,在需要真實數(shù)據(jù)的時候,用戶可以選擇性地使用默認值
主鍵:primary key,主要的鍵,一張表只能有一個字段可以使用對應(yīng)的鍵,用來唯一的約束該字段里面的數(shù)據(jù),不能重復(fù),這種稱之為主鍵
增加主鍵:
方案一:在創(chuàng)建表的時候,直接在字段之后,跟primary key關(guān)鍵字(主鍵本身不允許為空)
方案二:在創(chuàng)建表的時候,在所有的字段之后,使用primary key(主鍵字段列表)來創(chuàng)建主鍵,如果有多個字段作為主鍵,可以是復(fù)合主鍵
方案三:當表已經(jīng)創(chuàng)建好之后,額外追加主鍵,可以通過修改表字段屬性,也可以直接追加
alter table 表名 add primary key(字段列表);
主鍵約束:主鍵對應(yīng)的字段中的數(shù)據(jù)不允許重復(fù),一旦重復(fù),數(shù)據(jù)操作(增和改)失敗
更新主鍵 & 刪除主鍵
alter table 表名 drop primary key;
主鍵分類:業(yè)務(wù)主鍵、邏輯主鍵
create table my_student(
id int primary key auto_increment comment '邏輯主鍵:自增長',
number char(10) not null comment '學(xué)號',
name varchar(10) not null
)
自動增長:auto_increment,當對應(yīng)的字段,不給值,或給默認值、或給NULL值,會自動的被系統(tǒng)觸發(fā),系統(tǒng)會從當前字段中已有的最大值基礎(chǔ)上,再進行+1操作,得到一個新的不同的數(shù)據(jù)
特點:
任何一個字段要做自增長,前提必須本身就是一個索引
自增長字段必須是數(shù)字,而且是整型
一張表最多只能有一個自增長
修改自增長:alter table 表名 auto_increment=值;
查看自增長對應(yīng)的變量:show variables like 'auto_increment%';
主鍵約束:主鍵對應(yīng)的字段中的數(shù)據(jù)不允許重復(fù),一旦重復(fù),數(shù)據(jù)操作(增和改)失敗
更新主鍵 & 刪除主鍵
alter table 表名 drop primary key;
主鍵分類:業(yè)務(wù)主鍵、邏輯主鍵
create table my_student(
id int primary key auto_increment comment '邏輯主鍵:自增長',
number char(10) not null comment '學(xué)號',
name varchar(10) not null
)
刪除自增長:alter table 表名 modify 字段 類型;
唯一鍵(unique key)
默認允許自動為空,而且可以多個為空
增加唯一鍵
方案一:在創(chuàng)建表的時候,字段之后直接跟unique / unique key
方案二:在所有的字段之后增加unique key(字段列表);
方案三:在創(chuàng)建表之后增加唯一鍵
更新唯一鍵 & 刪除唯一鍵
錯誤的刪除方法:alter table 表名 drop unique key;
alter table 表名 drop index 索引名字;
索引:系統(tǒng)根據(jù)某種算法,將已有的數(shù)據(jù),或未來可能新增的數(shù)據(jù),單獨建立一個文件,文件能夠?qū)崿F(xiàn)快速的匹配數(shù)據(jù),并且能夠快速地找到對應(yīng)表中的記錄
索引的意義:
提升查詢數(shù)據(jù)的效率
約束數(shù)據(jù)的有效性、唯一性等