1. 程式人生 > 實用技巧 >MySQL教程35-MySQL建立資料表

MySQL教程35-MySQL建立資料表

在建立資料庫之後,接下來就要在資料庫中建立資料表。所謂建立資料表,指的是在已經建立的資料庫中建立新表。

建立資料表的過程是規定資料列的屬性的過程,同時也是實施資料完整性(包括實體完整性、引用完整性和域完整性)約束的過程。接下來我們介紹一下建立資料表的語法形式。

基本語法

MySQL中,可以使用CREATE TABLE語句建立表。其語法格式為:

CREATE TABLE <表名> ([表定義選項])[表選項][分割槽選項];

其中,[表定義選項]的格式為:

<列名1> <型別1> [,…] <列名n> <型別n>

CREATE TABLE 命令語法比較多,其主要是由表建立定義(create-definition)、表選項(table-options)和分割槽選項(partition-options)所組成的。

這裡首先描述一個簡單的新建表的例子,然後重點介紹 CREATE TABLE 命令中的一些主要的語法知識點。

CREATE TABLE 語句的主要語法及使用說明如下:

  • CREATE TABLE:用於建立給定名稱的表,必須擁有表CREATE的許可權。
  • <表名>:指定要建立表的名稱,在 CREATE TABLE 之後給出,必須符合識別符號命名規則。表名稱被指定為 db_name.tbl_name,以便在特定的資料庫中建立表。無論是否有當前資料庫,都可以通過這種方式建立。在當前資料庫中建立表時,可以省略 db-name。如果使用加引號的識別名,則應對資料庫和表名稱分別加引號。例如,'mydb'.'mytbl' 是合法的,但 'mydb.mytbl' 不合法。
  • <表定義選項>:表建立定義,由列名(col_name)、列的定義(column_definition)以及可能的空值說明、完整性約束或表索引組成。
  • 預設的情況是,表被建立到當前的資料庫中。若表已存在、沒有當前資料庫或者資料庫不存在,則會出現錯誤。
提示:使用 CREATE TABLE 建立表時,必須指定以下資訊:
  1.要建立的表的名稱不區分大小寫,不能使用SQL語言中的關鍵字,如DROP、ALTER、INSERT等。
  2.資料表中每個列(欄位)的名稱和資料型別,如果建立多個列,要用逗號隔開。

在指定的資料庫中建立表

資料表屬於資料庫,在建立資料表之前,應使用語句“USE<資料庫>”指定操作在哪個資料庫中進行,如果沒有選擇資料庫,就會丟擲 No database selected 的錯誤。

【例項 1】建立員工表 tb_emp1,結構如下表所示。

欄位名稱資料型別備註
id INT(ll) 員工編號
name VARCHAR(25) 員工名稱
deptld INT(ll) 所在部門編號
salary FLOAT 工資

選擇建立表的資料庫 test_db(建立資料庫),建立 tb_emp1 資料表,輸入的 SQL 語句和執行結果如下所示。

語句執行後,便建立了一個名稱為 tb_emp1 的資料表,使用 SHOW TABLES;語句檢視資料表是否建立成功,如下所示。

查看錶結構

在 MySQL 中,使用 SQL 語句建立好資料表之後,可以檢視結構的定義,以確認表的定義是否正確。在 MySQL 中,查看錶結構可以使用 DESCRIBE(或desc) 和 SHOW CREATE TABLE 語句。

DESCRIBE/DESC 語句可以查看錶的欄位資訊,包括欄位名、欄位資料型別、是否為主鍵、是否有預設值等,語法規則如下:

DESCRIBE <表名>;

或簡寫成:

DESC <表名>;

【例項 2】使用 DESCRIBE 查看錶 tb_emp1 的結構,輸入的 SQL 語句和執行結果如下所示。

其中,各個欄位的含義如下:

  • Null:表示該列是否可以儲存 NULL 值。
  • Key:表示該列是否已編制索引。PRI 表示該列是表主鍵的一部分,UNI 表示該列是 UNIQUE 索引的一部分,MUL 表示在列中某個給定值允許出現多次。
  • Default:表示該列是否有預設值,如果有,值是多少。
  • Extra:表示可以獲取的與給定列有關的附加資訊,如 AUTO_INCREMENT 等。

SHOW CREATE TABLE語句可以用來顯示建立表時的CREATE TABLE語句,語法格式如下:

SHOW CREATE TABLE <表名>\G;

【例項 3】使用 SHOW CREATE TABLE 查看錶 tb_emp1 的詳細資訊,輸入的 SQL 語句和執行結果如下所示。

提示:使用 SHOW CREATE TABLE 語句不僅可以檢視建立表時的詳細語句,而且可以檢視儲存引擎和字元編碼。如果不加“\G”引數,顯示的結果可能非常混亂,加上“\G”引數之後,可使顯示的結果更加直觀,易於檢視。