淺析MySQL中列屬性

本篇主要介紹有關於MySQL中列屬性的相關知識點。
在MySQL中,真正約束字段的是數據類型,但是數據類型的約束很單一,這個時候就需要一些額外的約束來更加保證數據的合法性。
列的屬性有,NULL/Not NULL,default,primary key,auto_increment,comment等。

空屬性
空屬性有兩個取值,分別是NULL,NOT NULL。其中默認值是空(NULL)。空數據沒有意義。任何參與NULL運算的結果都是NULL。
這裏寫圖片描述

create table my_class(
    name varchar(20)  not null,
    room varchar(20)  not null,
    size int
) charset utf8;

這裏寫圖片描述

列描述
列描述(comment),又可以稱之爲註釋,沒有實際含義,是專門用來描述字段的。

create table my_teacher(
name varchar(20) not null comment '姓名',
money decimal(10,2) not null comment '工資'
)charset utf8;

這裏寫圖片描述
默認值
當數據庫中表的某一個字段屬性經常性的出現某一個具體的值,此時可以爲此字段設置默認值。而在需要真實數據的時候可以選擇性的修改字段的具體值。

create table my_default(
name varchar(20) not null,
age tinyint unsigned default 0,
gender enum('男','女','保密') default '男'
)charset utf8;

這裏寫圖片描述

主鍵屬性
主鍵(primary key),一張表中只能有一個字段使用對應的鍵,用來唯一的約束字段裏面的數據,主鍵不能重複。
一張表中只能有最多一個主鍵(複合主鍵除外)。爲一張表增加主鍵有3種方式。
1.在創建表的時候直接在字段之後使用primary key關鍵字。主鍵不能爲空,但此方式只能使用一個字段作爲主鍵。

create table my_pri1(
name varchar(20) not null comment '姓名',
number char(10) primary key comment '學號,不能重複'
)charset utf8;

這裏寫圖片描述
2.在創建表的時候在有的字段之後,使用primary key(字段列表)的方式創建複合主鍵。

create table my_pri2(
number char(10) comment '學號',
course char(10) comment '課程代碼',
score tinyint unsigned default 60 comment '成績',
-- 增加主鍵限制,一個學號和一個課程只有一個成績
primary key(number,course)
)charset utf8;

這裏寫圖片描述
3.當表已經創建好之後,再次增加主鍵可以通過修改表字段的屬性,也可以直接追加.

-- 追加主鍵
create table my_pri3(
course char(10) not null comment '課程編號',
name varchar(10) not null comment '課程名字'
)charset utf8;
-- 下面是兩種方式來追加主鍵
alter table my_pri3 modify course char(10) primary key comment '課程編號';
alter table my_pri3 add primary key(course);

刪除主鍵

alter table my_pri1 drop primary key;

注意主鍵對應的字段中的數據不允許重複,一旦重複,數據操作(數據的增改)將失敗。

自動增長
自動增長通常是跟主鍵進行搭配,一般而言,聲明爲自動增長屬性的字段,插入數據的時候系統會自動的在當前最大值的基礎上對指定的數據+1.
自動增長(auto_increment)有幾個必要的條件。
1.任何一個字段要做自動增長的前提是本身是一個索引(key一欄有值)。
2.自動增長必須是數字而且是整型。
3.一張表只能有一個自增長,自動增長的起始默認值是1

create table my_auto(
id int primary key auto_increment comment '自動增長',
name varchar(10) not null
)charset utf8;

這裏寫圖片描述
修改自動增長的步長:

set auto_increment_increment=5;

刪除字段的自動增長的屬性:

 alter table my_auto modify id int;

唯一鍵
一張表中往往有很多的數據具有唯一性,數據之間不能重複。唯一鍵解決了主鍵不能滿足多個字段的唯一性的問題。

create table my_uniquel(
number char(10) unique comment '學號唯一,可以爲空',
name varchar(20) not null
)charset utf8;

這裏寫圖片描述

當然唯一鍵也可以通過追加的方式來設置,但此時的鍵會顯示成主鍵(因爲滿足了唯一性和數字型的條件)。
這裏寫圖片描述

修改的方式來添加主鍵。alter table my_unique add unique key(number);

刪除主鍵:
這裏寫圖片描述

發佈了123 篇原創文章 · 獲贊 47 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章