1. 程式人生 > >MySQL.常見表選項及約束

MySQL.常見表選項及約束

ins 約束 類型 表達 const alter creat 非空約束 .com

1.create table 選項

  1.指定列選項 default、comment

  2.指定表選項 engine、auto_increment、comment

2.create table 約束

  1.非空約束:not null

  2.唯一約束:unique

  3.主鍵約束: primary key

  4.外鍵: foreign key

  5.檢查enum、set:chect

一、create table 選項

 a. 定義列的時候,指定列選項

  1.default<literal>:定義列的默認值

   當插入一個新行到表中並且沒有給該列明確賦值,如果定義了列的默認值,將自動得到默認值,如果沒有,則為null

   也可以在insert和 update 語句中使用 default 關鍵字給默認值賦值,函數default(column)也得到一個列的默認值

  2.comment 用來給列添加註釋,最多為255個字符,註釋將會保存在數據字典中

  b.  在create table 語句中的表選項

   1.engine :指定表使用的儲存引擎    #儲存引擎:決定了表中的數據如何存儲以及如何訪問,還有事務如何處理

                      MySQL中允許對每個表使用不同的儲存引擎,如果在create table 中沒有使用儲存引擎,則使用默認的儲存引擎。

      MySQL > show engines     #查詢所有支持的儲存引擎

      (儲存引擎是重點)

   2.auto_increment :決定當前表中插入第一行時,自增列得到的第一個值是多少

   3.comment:給表添加註釋

二、create table 約束

  作用:可以為列定義約束(constraint)

  約束主要是防止非法數據進入表中,確保數據的正確性和一致性(統稱數據完整性)

  約束也可以防止一個表被刪除

註意:1.MySQL中約束保存在表中,可以通過表查詢約束信息

   2.進行約束的時間:使用create table語句、使用alter table語句

常見的約束類型有5種:1.not null    非空約束,指定某列不能為空

           2.unique     唯一約束,指定某列和幾列組合的數據不能重復

           3.primary key  主鍵約束,指定某列的數據不能重復、唯一

           4.foreign key   外鍵,指定該列記錄屬於主表中的一條記錄,參照另一條數據

           5.check     檢查,指定一個表達式,用於檢查指定數據

    註意:1.not null 約束只能在列級別定義,作用在多個列上約束只能定義在表級別,例如復合主鍵約束

       2.列級別上不能定義外鍵約束,並且不能給約束起名字,有MySQL自動命名(not null除外)

·       3.表級別上定義的約束可以給約束起名字(check除外)

  1.not null 非空約束

   作用:確保當前列的值不能為空

   註意:非空約束只能出現在表對象的列上

  2.

MySQL.常見表選項及約束