列屬性:真正約束字段的是數(shù)據(jù)類型,但是這種約束很單一情连,需要有一些額外的約束,來更加保證數(shù)據(jù)的合法性览效,這就需要列屬性
列屬性包括:NULL/NOT NULL却舀、default、Primary key锤灿、unique key挽拔、auto_increment、comment
空屬性:
兩個(gè)值:NULL(默認(rèn)的)但校、NOT NULL(不為空)
列描述:comment螃诅,描述,沒有實(shí)際含義,是專門用來描述字段术裸,會(huì)根據(jù)表創(chuàng)建語句保存倘是,用來給程序員(數(shù)據(jù)庫管理員)來進(jìn)行了解的
默認(rèn)值:default,某一種數(shù)據(jù)會(huì)經(jīng)常性地出現(xiàn)某個(gè)具體的值袭艺,可以在一開始就指定好搀崭,在需要真實(shí)數(shù)據(jù)的時(shí)候,用戶可以選擇性地使用默認(rèn)值
主鍵:primary key猾编,主要的鍵瘤睹,一張表只能有一個(gè)字段可以使用對應(yīng)的鍵,用來唯一的約束該字段里面的數(shù)據(jù)答倡,不能重復(fù)轰传,這種稱之為主鍵
增加主鍵:
方案一:在創(chuàng)建表的時(shí)候,直接在字段之后苇羡,跟primary key關(guān)鍵字(主鍵本身不允許為空)
方案二:在創(chuàng)建表的時(shí)候绸吸,在所有的字段之后,使用primary key(主鍵字段列表)來創(chuàng)建主鍵设江,如果有多個(gè)字段作為主鍵锦茁,可以是復(fù)合主鍵
方案三:當(dāng)表已經(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é)號(hào)',
name varchar(10) not null
)
自動(dòng)增長:auto_increment瞳秽,當(dāng)對應(yīng)的字段瓣履,不給值,或給默認(rèn)值练俐、或給NULL值袖迎,會(huì)自動(dòng)的被系統(tǒng)觸發(fā),系統(tǒng)會(huì)從當(dāng)前字段中已有的最大值基礎(chǔ)上腺晾,再進(jìn)行+1操作燕锥,得到一個(gè)新的不同的數(shù)據(jù)
特點(diǎn):
任何一個(gè)字段要做自增長,前提必須本身就是一個(gè)索引
自增長字段必須是數(shù)字悯蝉,而且是整型
一張表最多只能有一個(gè)自增長
修改自增長: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é)號(hào)',
name varchar(10) not null
)
刪除自增長:alter table 表名 modify 字段 類型;
唯一鍵(unique key)
默認(rèn)允許自動(dòng)為空厚棵,而且可以多個(gè)為空
增加唯一鍵
方案一:在創(chuàng)建表的時(shí)候,字段之后直接跟unique / unique key
方案二:在所有的字段之后增加unique key(字段列表)跺撼;
方案三:在創(chuàng)建表之后增加唯一鍵
更新唯一鍵 & 刪除唯一鍵
錯(cuò)誤的刪除方法:alter table 表名 drop unique key;
alter table 表名 drop index 索引名字;
索引:系統(tǒng)根據(jù)某種算法窟感,將已有的數(shù)據(jù),或未來可能新增的數(shù)據(jù)歉井,單獨(dú)建立一個(gè)文件,文件能夠?qū)崿F(xiàn)快速的匹配數(shù)據(jù)哈误,并且能夠快速地找到對應(yīng)表中的記錄
索引的意義:
提升查詢數(shù)據(jù)的效率
約束數(shù)據(jù)的有效性哩至、唯一性等