mysql字串類型、列屬性及外鍵

來源:互聯網
上載者:User

標籤:多少   開始   應該   方便   cal   存在   null   電話   記錄   

字串類型

 

Char 和varchar

在定義char 跟varchar時,都需要設定長度。

文法:

char(M); 最大長度為255

varchar(M); 最大長度為65532 不同編碼長度不同 GBK最大為:32767

utf8最大為:21845

M為長度!

兩者區別:

Char的M是固定的,即使輸入的字元長度小於M值,該字元長度也會被定義為M值;

效率更快,使用一些固定字元長度的時候可以使用,例:電話號碼、社會安全號碼碼等!

Varchar的M是範圍性值,只要不超過M,輸入的值長度為多少即為多少!儲存空間更加靈活。

text

文本類型,主要分為四種:

tinyText,text,mediumText,longtext

字元長度不需要定義

從左往右排序,越往後值越大,longtext的值幾乎是無限大!

主要運用在文字框和其他自由輸出地區(如:一篇文章、一篇新聞等)!

enum

單選項字串類型

文法:

enum(選項字串1,選項字串n);

插入值的時候,只能插入選項字串中的一個字串,其他則無效,會出現報錯!

因為enum在儲存空間中是以整數的形式儲存,所以我們可以在插入值的時候直接插入對應字串的編號,從左往右開始,起始值為1.

Set

多選項字串類型

文法方面與單選項一樣,區別在於插入值的時候可以插入多個值!

同單選項一樣,可以通過字串編號來讀取,只不過排序不同,定序,從左往右,依次為1.2.4.8.16.32.64   最多隻能到64

Binary,varbinary,blob

二進位文本類型,想當電腦的話可以自己Google學習,那不是人學的!

列屬性

文法格式:列屬性是在建立表的時候,填寫在欄位類型後面的

null和nonull

null允許欄位為空白;

Nonull 不允許欄位為空白,如果欄位設定了這個屬性的話,系統會判斷欄位是否為空白,如果有設定預設值(default),如果沒有的話,系統會報錯!

Default

欄位預設值

文法:

default  預設值 預設值可以是整數也可以是字串

primary key

主鍵

1.定義一個欄位為主鍵後,該欄位不能重複;

2.主鍵的內容不可為空

3.一個表中主鍵只能有一個

4.也叫做主鍵索引

定義主鍵的方法

1.定義一個欄位的時候直接在後面加上primary key ;

2.定義完欄位後再定義主鍵 文法:primary key(欄位);

這種方法可以創造出組合主鍵,將兩個欄位組合成一個主鍵,但是要記住,主鍵只有一個

組合主鍵文法: primary key(欄位名1,欄位名2);

Unique key

唯一鍵

也叫作唯一索引

跟主鍵基本一樣,定義方法也一樣

區別:唯一鍵可以為空白,主鍵不可為空!

auto_increment

自增長屬性

作用是每次插入記錄的時候,自動的為某個欄位的值加1(基於上一個記錄)

 

注意:

使用這個屬性有兩個條件:

1, 該欄位類型必須為整型

2, 該欄位上必須存在索引(後面講,主鍵也叫作主鍵索引,唯一鍵也叫作唯一鍵索引)

auto_increment 自動成長初始值

文法格式:在定義完欄位後增加auto_increment 初始值

comment

欄位內注釋

外鍵

一張表內的一個欄位指向、引用著另外一張表內的另外一個欄位

負責指向的表為子表,被指向的表為主表

作用:

1, 增加子表記錄的時候,是否有與之對應的父表記錄!

2, 當刪除或更改父表記錄的時候,從表應該如何處理相關的記錄!

文法格式:

foreign key(子表欄位) references 父表名(父表主鍵)

先有父表再有字表,文法寫在建立字表的欄位內;

定義外鍵名

定義外鍵名後方便刪除

Constraint 外鍵名 foreign key(子表欄位) references 父表名(父表主鍵)

外鍵名不能加引號!

如果想要修改父表的話需要再設定一個級聯操作命令,當在操作父表時,子表會受到什麼樣的影響,如果沒有設定級聯操作,更改父表會報錯!

級聯操作

主表更新

文法形式為:on update[級聯操作]

主表刪除

文法形式為:on delete[級聯操作]

這裡的級聯操作常見的有三種形式:

cascade:同步操作,或者串聯操作!也就是當主表記錄刪除或更新的時候,從表也進行相應的刪除或更新!

 

set null:設定為null,也就是當主表記錄刪除或更新的時候,從表中的外鍵欄位設定為空白

 

restrict:拒絕主表的更新或刪除

刪除外鍵的文法

alter table 表名drop foreign key 外鍵名;

mysql字串類型、列屬性及外鍵

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.