數據庫學習3-列屬性(字段屬性)

目錄

列屬性

簡單屬性

null屬性

 默認值

列描述

主鍵

創建主鍵

查看主鍵

刪除主鍵

主鍵約束

主鍵分類

自動增長

原理

使用自動增長

修改自動增長

刪除自動增長

初始設置

細節問題

唯一鍵

創建唯一鍵

查看唯一鍵

刪除唯一鍵

修改唯一鍵

複合唯一鍵


列屬性

簡單屬性

列屬性又稱爲字段屬性,在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 唯一鍵名字;

修改唯一鍵

先刪除後增加

複合唯一鍵

唯一鍵與主鍵一樣,可以使用多個字段共同保證唯一性

一般主鍵都是單一字段(邏輯主鍵),而其他需要唯一性的內容都是由唯一鍵來處理

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章