列屬性:真正約束字段的是數(shù)據(jù)類型侧啼,但是這種約束很單一,需要有一些額外的約束务豺,來更加保證數(shù)據(jù)的合法性,這就需要列屬性
列屬性包括:NULL/NOT? NULL嗦明、default笼沥、Primary key、unique? key娶牌、auto_increment奔浅、comment
空屬性:
兩個值:NULL(默認的)、NOT? NULL(不為空)
列描述:comment裙戏,描述乘凸,沒有實際含義,是專門用來描述字段累榜,會根據(jù)表創(chuàng)建語句保存,用來給程序員(數(shù)據(jù)庫管理員)來進行了解的
create? table? 表名? (name? varchar(20)? not? null? comment '姓名')灵嫌;? ?---》可以用? show create? table? 表名;? 查看
默認值: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ù)主鍵褐健、邏輯主鍵
自動增長:auto_increment付鹿,當對應(yīng)的字段,不給值,或給默認值倘屹、或給NULL值银亲,會自動的被系統(tǒng)觸發(fā),系統(tǒng)會從當前字段中已有的最大值基礎(chǔ)上纽匙,再進行+1操作务蝠,得到一個新的不同的數(shù)據(jù)
特點:
任何一個字段要做自增長,前提必須本身就是一個索引
自增長字段必須是數(shù)字烛缔,而且是整型
一張表最多只能有一個自增長
修改自增長:alter? table? 表名? auto_increment=值;? ? ? ? ? ? ? ? -----》 數(shù)值改小? 不生效? 改大? 生效
查看自增長對應(yīng)的變量:show? variables? like 'auto_increment%';
修改自增長的步長:
例:
set? auto_increment_increment(auto_increment%) = 5 ;? ? ?------ 一次自增5
刪除自增長:alter? table? 表名? modify? 字段 類型;
唯一鍵(unique? key)
????默認允許自動為空馏段,而且可以多個為空
增加唯一鍵
方案一:在創(chuàng)建表的時候,字段之后直接跟unique / unique key
方案二:在所有的字段之后增加unique? key(字段列表)践瓷;
方案三:在創(chuàng)建表之后增加唯一鍵
例:
? ? ? ? ? ? alter? table? 表名? add unique? key(字段名)院喜;
更新唯一鍵&刪除唯一鍵
alter? table? 表名? drop? index? 索引名字 ;
索引_表關(guān)系
索引:系統(tǒng)根據(jù)某種算法,將已有的數(shù)據(jù)晕翠,或未來可能新增的數(shù)據(jù)喷舀,單獨建立一個文件,文件能夠?qū)崿F(xiàn)快速的匹配數(shù)據(jù)淋肾,并且能夠快速地找到對應(yīng)表中的記錄
索引的意義:
????提升查詢數(shù)據(jù)的效率
????約束數(shù)據(jù)的有效性硫麻、唯一性等
MySQL中提供了多種索引
主鍵索引:primary key
唯一索引:unique key
全文索引:fulltext? index
普通索引:index