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”引數之後,可使顯示的結果更加直觀,易於檢視。