明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

mysql創(chuàng)建數(shù)據(jù)表時指定默認值圖文說明教程

[摘要]指定默認值如果在插入行時沒有給出值,MySQL允許指定此時使用的默認值。默認值用 CREATE TABLE 語句的列定義中的 DEFAULT 關鍵字指定。請看下面的例子:輸入:create table orderitems(order_num int ...
指定默認值

如果在插入行時沒有給出值,MySQL允許指定此時使用的默認值。默認值用 CREATE TABLE 語句的列定義中的 DEFAULT 關鍵字指定。

請看下面的例子:

輸入:

create table orderitems
(
order_num              int                 NOT NULL,
order_item              int                NOT NULL,
prod_id              char(10)            NOT NULL,
quantity                  int                 NOT NULL   DEFAULT1,
item_price         decimal(8,2)      NOT NULL,
PRIMARY KEY ( order_num,order_item)
)ENGINE = InnoDB;

輸出:這條語句創(chuàng)建包含組成訂單的各物品的 orderitems 表(訂單本身存儲在 orders 表中)。 quantity 列包含訂單中每項物品的數(shù)量。在此例子中,給該列的描述添加文本 DEFAULT 1 指示MySQL,在未給出數(shù)量的情況下使用數(shù)量 1 。

不允許函數(shù) 與大多數(shù)DBMS不一樣,MySQL不允許使用函數(shù)作為默認值,它只支持常量。

使用默認值而不是 NULL 值 許多數(shù)據(jù)庫開發(fā)人員使用默認值而不是 NULL 列,特別是對用于計算或數(shù)據(jù)分組的列更是如此。

延伸知識:

什么是引擎類型?

你可能已經(jīng)注意到,迄今為止使用的 CREATE TABLE 語句全都以ENGINE=InnoDB 語句結束。

與其他DBMS一樣,MySQL有一個具體管理和處理數(shù)據(jù)的內部引擎。在你使用 CREATE TABLE 語句時,該引擎具體創(chuàng)建表,而在你使用 SELECT語句或進行其他數(shù)據(jù)庫處理時,該引擎在內部處理你的請求。多數(shù)時候,此引擎都隱藏在DBMS內,不需要過多關注它。

但MySQL與其他DBMS不一樣,它具有多種引擎。它打包多個引擎,這些引擎都隱藏在MySQL服務器內,全都能執(zhí)行 CREATE TABLE 和 SELECT等命令。

為什么要發(fā)行多種引擎呢?因為它們具有各自不同的功能和特性,為不同的任務選擇正確的引擎能獲得良好的功能和靈活性。

當然,你完全可以忽略這些數(shù)據(jù)庫引擎。如果省略 ENGINE= 語句,則使用默認引擎(很可能是 MyISAM ),多數(shù)SQL語句都會默認使用它。但并不是所有語句都默認使用它,這就是為什么 ENGINE= 語句很重要的原因(也就是為什么本書的樣列表中使用兩種引擎的原因)。

以下是幾個需要知道的引擎:

1.InnoDB 是一個可靠的事務處理引擎,它不支持全文本搜索;

2.MEMORY 在功能等同于 MyISAM ,但由于數(shù)據(jù)存儲在內存(不是磁盤)中,速度很快(特別適合于臨時表);

3.MyISAM 是一個性能極高的引擎,它支持全文本搜索,但不支持事務處理。

引擎類型可以混用。除 productnotes 表使用 MyISAM 外,本書中的樣例表都使用 InnoDB 。原因是作者希望支持事務處理(因此,使用 InnoDB ),但也需要在 productnotes 中支持全文本搜索(因此,使用 MyISAM )。

外鍵不能跨引擎 混用引擎類型有一個大缺陷。外鍵(用于強制實施引用完整性)不能跨引擎,即使用一個引擎的表不能引用具有使用不同引擎的表的外鍵。

那么,你應該使用哪個引擎?這有賴于你需要什么樣的特性。 MyISAM由于其性能和特性可能是最受歡迎的引擎。但如果你不需要可靠的事務處理,可以使用其他引擎。

以上就是mysql創(chuàng)建數(shù)據(jù)表時指定默認值教程的詳細內容,更多請關注php中文網(wǎng)其它相關文章!


學習教程快速掌握從入門到精通的SQL知識。