怎么創(chuàng)建和修改數(shù)據(jù)表?
- 創(chuàng)建和修改數(shù)據(jù)表,是數(shù)據(jù)存儲過程中的重要?環(huán)。
- 我們不僅需要把表創(chuàng)建出來,還需要正確地設置限定條件,這樣才能確保數(shù)據(jù)的一致性和完整性。
- 同時,表中的數(shù)據(jù)會隨著業(yè)務需求的變化而變化,添加和修改相應的字段也是常見的操作。
如何創(chuàng)建數(shù)據(jù)表?
- 首先,我們要知道 MySQL 創(chuàng)建表的語法結構:
CREATE TABLE <表名> ( 字段名 name1 數(shù)據(jù)類型 [字段級別約束] [默認值], 字段名 name2 數(shù)據(jù)類型 [字段級別約束] [默認值], 字段名 name3 數(shù)據(jù)類型 [字段級別約束] [默認值], ...... [表級別約束] );
- 我們通過定義表名、表中的字段、表的屬性等,把一張表創(chuàng)建出來。
- “約束”限定了表中數(shù)據(jù)應該滿足的條件。
- 假設創(chuàng)建一個表叫做進貨單頭表(importhead):
- 1、2、3 表示門店的 3 種進貨方式,分別是配送中心配送、門店采買和供貨商直供。
- 其中,“1(配送中心配送)”是標準進貨方式,我們希望這個字段的值能夠默認是 1。
- 我們先來看基本的數(shù)據(jù)表創(chuàng)建流程如下:
CREATE TABLE importhead ( listnumber INT, supplierid INT, stocknumber INT, importtype INT DEFAULT 1, quantity DECIMAL(10, 3), importvalue DECIMAL(10, 2), recorder INT, recordingdate DATETIME );
- 接下來插入一條數(shù)據(jù):
INSERT INTO importhead ( listnumber, supplierid, stocknumber, quantity, importvalue, recorder, recordingdate ) VALUES ( 3456, 1, 1, 10, 100, 1, '2020-12-10' );
都有哪些約束?
- 給字段設置默認值的做法,就是默認約束。
- 設置了默認約束,插入數(shù)據(jù)的時候,如果不明確給字段賦值,那么系統(tǒng)會把設置的默認值自動賦值給字段。
- 除了默認約束,還有主鍵約束、外鍵約束、非空約束、唯?性約束和自增約束。
- 非空約束
- 非空約束表示字段值不能為空,如果創(chuàng)建表的時候,指明某個字段非空,那么添加數(shù)據(jù)的時候,這個字段必須有值,否則系統(tǒng)就會提示錯誤。
- 唯?性約束
- 唯?性約束表示這個字段的值不能重復,否則系統(tǒng)會提示錯誤。
- 跟主鍵約束相比,唯?性約束要更加弱?些。
- 自增約束
- 自增約束可以讓 MySQL 自動給字段賦值,且保證不會重復,非常有用,只是不容易用好。
- 在數(shù)據(jù)表中,只有整數(shù)類型的字段(包括 TINYINT、SMALLINT、MEDIUMINT、INT 和 BIGINT),才可以定義自增約束。自增約束的字段,每增加?條數(shù)據(jù),值自動增加 1。
- 你可以給自增約束的字段賦值,這個時候,MySQL 會重置自增約束字段的自增基數(shù),下次添加數(shù)據(jù)的時候,自動以自增約束字段的最大值加 1 為新的字段值。
- 在一個表中,我們可以指定多個字段滿足唯一性約束,而主鍵約束則只能有一個,這是 MySQL 系統(tǒng)決定的。另外,滿足主鍵約束的字段,自動滿足非空約束,但是滿足唯一性約束的字段,則可以是空值。
如何修改表?
- 進貨單表是存儲進貨數(shù)據(jù)的。我們還要創(chuàng)建?個進貨單歷史表(importheadhist)來存儲驗收過的進貨數(shù)據(jù)。
- 這個表的結構跟進貨單表類似,只是多了 2 個字段,分別是驗收人(confirmer)和驗收時間(confirmdate)。
- 首先,我們要把原來的表結構復制:
CREATE TABLE importheadhist LIKE importhead;
- 我們需要對這個表進行修改,通過添加字段和修改字段,來獲得我們需要的“進貨單歷史表”:
ALTER TABLE importheadhist ADD confirmer INT; ALTER TABLE importheadhist ADD confirmdate DATETIME;
- 除了添加字段,我們可能還要修改字段,我們要把字段名稱“quantity” 改成 “importquantity”,并且把字段類型改為 DOUBLE:
ALTER TABLE importheadhist CHANGE quantity importquantity DOUBLE;
- 首先,我們要把原來的表結構復制:
文章來源地址http://www.zghlxwxcb.cn/news/detail-438687.html
文章來源:http://www.zghlxwxcb.cn/news/detail-438687.html
到了這里,關于《MySQL 必知必會》課程筆記(三)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!