程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 4、數據表的創建與更新

4、數據表的創建與更新

編輯:MySQL綜合教程

數據表是關系數據庫中操作的級別對象。在關系數據庫中,通過數據表來存儲數據記錄。在數據表中會經常用到主鍵、外鍵、約束和索引。這一章將對數據表中涉及到的數據類型以及主鍵、外鍵、約束和索引等概念和使用方法做一個全面的介紹。另外還將介紹數據表的創建方法,以及如何對表中的記錄進行增加和修改操作、如何刪除數據表等內容。
1.數據庫中的表
在關系數據庫中,數據表是存儲數據的基本單元,由行和列兩部分組成的。它是根據數據庫設計階段的E-R圖轉換而來。在數據表中除了行、列、數據記錄、屬性、字段等基本概念外,還會涉及到主鍵、外鍵、索引、約束等概念。
數據記錄、行、字段、列
在關系數據庫中,數據表是存儲數據的基本單元,由行和列兩部分組成的。其中,行用來描述實體中的具體數據,在數據表中每一行中的數據被稱為一條數據記錄,也可以簡稱為記錄;字段是表中的一列,用來保存數據表中某一條記錄中的特定信息。字段在關系數據庫中也可以稱為列。
column_name1為指定數據表的列名;datatype1為指定列名的數據類型;constraint_condition1為指定列名的完整性約束。
為了保證數據的完整性,需要使用數據庫約束。約束主要包括唯一約束(UNIQUE)、主鍵約束(PRIMARY KEY)、外鍵約束(FOREIGN KEY)、檢查約束(CHECK)和非空約束(NOT NULL)。
唯一約束(UNIQUE)用來保證某一列或者一組列中沒有相同的值。如果為列定義了唯一約束,則該列中不允許出現重復的值,但是允許列中存在空值(即NULL值)。唯一約束即可以定義的表級上,也可以定義在列級上。一般在為列創建唯一約束後,數據庫會自動為該列建立一個唯一索引,其索引名與約束名是相同的。
主鍵約束(PRIMARY KEY)是用來保證使用主鍵約束的某一列或者一組列中有唯一的值,並且不能包含空值(即NULL值)。數據表中每一列只能定義一個PRIMARY KEY。一般在為列創建主鍵約束後,數據庫會自動為該列建立一個主索引,其索引名與約束名是相同的。
在創建數據表時,如果希望將多個列組合起來作為一個數據表中的主鍵,可以在PRIMARY KEY關鍵字後使用括號,將需要定義為主鍵的列放到PRIMARY KEY關鍵字後面的括號中。括號中的多個列之間需要使用逗號分割。
首先來考慮這樣一個問題,現在由於某種原因需要將一名學生在學校的全部信息刪除。這裡涉及學生信息的一共有兩個表,一個是學生信息表,一個是成績信息表。學生信息表保存的是學生的基本信息,成績信息表保存的是學生選課的課程成績信息。如果沒有定義外鍵約束,將該名學生從學生信息表中刪除時,而沒有將該名學生的選課的課程成績信息刪除,這樣就會造成兩個關聯表之間數據的不一致。
同樣的問題也可能出現在對兩個關聯表中數據的修改操作中。如果是多個表之間存在關聯關系的話,不定義外鍵約束,類似上面的情況很可能會發生。為了避免由於操作不當而引起的關聯表中數據的不一致,有必要為關聯表之間定義外鍵約束。
外鍵約束(FOERING KEY)主要是用來定義兩個表之間的關系。外鍵約束保證了表的參照完整性,確保對一個表的數據操作不會對與之關聯的表造成不利的影響。定義外鍵的語法格式如下:

 (列名1) ]
其後的ON UPDATE和ON DELETE分別指明了對表中的數據做修改和刪除時,主從表之間要采用的主要操作方式。
CASCADE:級聯刪除。如果主表中的一條數據記錄被刪除,那麼從表中與之相對應的的數據也將被一起刪除。
SET NULL:置空刪除。如果主表中的一條數據記錄被刪除,那麼從表中與之相對應的的數據也將被設置為空值。
RESTRICT:受限刪除。如果主表中的一條數據記錄被刪除,則在執行DELETE命令時數據庫管理系統會報錯,通知用戶與主表相對應的該數據在從表中仍然存在,但是與主表相對應的該數據在從表中不會被刪除。它是默認的方式。
檢查約束(CHECK)是用來限制列的取值范圍或者取值條件,使用CHECK約束可以保證數據規則的一致性。可以為一個列定義多個CHECK約束,當為列定義了CHECK約束後,該列中所對應的數據必須滿足指定的約束條件。
非空約束(NOT NULL)是用來保證在向該列插入數據時不允許插入空值(即NULL值)。非空約束只能用來約束列。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved