5_MySQL 表的欄位約束

Code_27發表於2020-11-19

有無符號宣告

unsigned 無符號(給數值型別使用,表示為正數,不寫可以表示正負數都可以)

字串長度宣告

欄位型別後面加括號限制寬度 :在字元型別後面加限制表示字串的長度

char(5).
varchar(7) 

數值型長度宣告

int(4) 沒有意義,預設無符號的 int 為 int (11),有符號的 int (10)

int(4) unsigned zerofill 只有當給 int 型別設定有前導零時,設定 int 的寬度才有意義

是否為空宣告

not null 不能為空,在運算元據庫時如果輸入該欄位的資料為 NULL ,就會報錯

預設值宣告

default 設定預設值

主鍵宣告

primary key 主鍵不能為空,且唯一 [ 一般和自動遞增一起配合使用 ]

表中每一行都應該有可以唯一標識自己的一列,用於記錄兩條記錄不能重複,任意兩行都不具有相同的主鍵值

應該總是定義主鍵 雖然並不總是都需要主鍵,但大多數資料庫設計人員都應保證他們建立的每個表具有一個主鍵,以便於以後的資料操縱和管理

要求:

  • 記錄一旦插入到表中,主鍵最好不要再修改
  • 不允許 NULL
  • 不在主鍵列中使用可能會更改的值
  • 自增整數型別:資料庫會在插入資料時自動為每一條記錄分配一個自增整數,這樣我們就完全不用擔心主鍵 重複,也不用自己預先生成主鍵
  • 可以使用多個列作為聯合主鍵,但聯合主鍵並不常用。使用多列作為主鍵時,所有列值的組合必須是唯一的

遞增宣告

auto_increment 定義列為自增屬性,一般用於主鍵,數值會自動加 1

索引是否唯一宣告

unique 唯一索引(資料不能重複:使用者名稱)可以增加查詢速度,但是會降低插入和更新速度


MySQL 的運算子

  • 算術運算子: +、 -、 *、 /、 %

  • 比較運算子: =、 >、 <、 >=、 <=、!=

  • 資料庫特有的比較: in、not in、is null、is not null、like、between、and

  • 邏輯運算子: and、or、not

  • like: 支援特殊符號%和_

其中%表示任意數量的任意字元,_表示任意一位字元

相關文章