前面說過數(shù)據庫的相關操作,接下來是對表進行操作,對表進行操作的前提是進入到數(shù)據庫當中,因此需要先使用 USE 指定使用的某個數(shù)據庫。

使用數(shù)據庫
創(chuàng)建表
:
CREATE TABLE <表名> ([表定義選項]) [表選項] [分區(qū)選項];
- CREATE TABLE 用于創(chuàng)建表的關鍵字
- <表名>:指定要創(chuàng)建表的名稱(必須符合標識符命名規(guī)則),表名稱格式為 db_name.tbl_name(其中db_name是數(shù)據庫名稱,tbl_name是數(shù)據表的名稱),在當前數(shù)據庫中建表可省略數(shù)據庫的名字,例如 tbl_name
- 表定義選項用于定義表中的各個字段信息,包括列名、數(shù)據類型、空值、默認值、完整性約束或表索引等
:

創(chuàng)建表 user
修改表
有時候創(chuàng)建表的時候,我們可能會忘掉了某個字段或者寫錯了數(shù)據類型,這個時候就可以通過下面的命令來修改表結構、表名稱等
:
ALTER TABLE <表名> [修改選項]
其中修改選項如下:
ADD COLUMN <列名> <類型> # 添加新列
CHANGE COLUMN <舊列名> <新列名> <新列類型> <位置> # 列重命名、改變數(shù)據類型和位置移動
MODIFY COLUMN <列名> <類型> # 改變類型和位置移
ALTER COLUMN <列名> { SET DEFAULT <默認值> | DROP DEFAULT } # 給某列刪除或者添加默認值
DROP COLUMN <列名> # 刪除某列
RENAME TO <新表名> # 表重命名
CHARACTER SET <字符集名> # 修改表字符集
COLLATE <校對規(guī)則名> # 修改表校對規(guī)則
:
修改表名:
ALTER TABLE <舊表名> RENAME [TO] <新表名>;

修改表名稱
修改表字符集和校對規(guī)則
ALTER TABLE 表名 [DEFAULT] CHARACTER SET <字符集名> [DEFAULT] COLLATE <校對規(guī)則名>;

image.png
查看表
:
以表格形式展示表結構
DESCRIBE <表名>; #
DESC <表名>; # 上一行代碼的簡寫
以SQL語句的形式展示表結構
SHOW CREATE TABLE <表名>; # 可以通過 \g 或者 \G 控制格式,此時不需要加分號 ;
兩者區(qū)別
SHOW CREATE TABLE 展示的內容更加豐富,它可以展示出表的存儲引擎和字符編碼;
:

以表格形式展示表結構

以SQL語句的形式展示表結構
刪除表
:
DROP TABLE [IF EXISTS] 表名1 [ ,表名2, 表名3 ...]
- IF EXISTS 用于在刪除數(shù)據表之前判斷該表是否存在。如果不加 IF EXISTS,當數(shù)據表不存在時 MySQL 將提示錯誤,中斷 SQL 語句的執(zhí)行;加上 IF EXISTS 后,當數(shù)據表不存在時 SQL 語句可以順利執(zhí)行,但是會發(fā)出警告。
- 表名1 [ ,表名2, 表名3 ...] 表示要被刪除的數(shù)據表的名稱。DROP TABLE 可以同時刪除多個表,只要將表名依次寫在后面,相互之間用逗號隔開即可。
- 刪除時用戶必須有刪除權限并且刪除表后,用戶在該表上的權限不會自動刪除。
:
該數(shù)據庫中只有一張表,因此刪除之后在查看時,數(shù)據庫為空

刪除數(shù)據表
刪除表時可能遇到的問題
一、刪除被其他表關聯(lián)的主表(兩種方案)
- 方案一:刪除字表,在刪除父表,缺點是刪除數(shù)據過多
- 方案二:取消關聯(lián),在刪除父表
刪除關聯(lián)的語句如下:
ALTER TABLE 字表 DROP FOREIGN KEY 子表中與父表關聯(lián)的字段;
表字段的操作
上面的都是整體對表結構的設計,設計好之后難免會遇到增加,刪除字段的操作,所以下面介紹的是表字段的 增刪改查 操作
增加字段
:
ALTER TABLE <表名> ADD <新字段名><數(shù)據類型> [約束條件]; # 在末尾增加字段
ALTER TABLE <表名> ADD <新字段名> <數(shù)據類型> [約束條件] FIRST; # 在開頭增加字段
ALTER TABLE <表名> ADD <新字段名> <數(shù)據類型> [約束條件] AFTER <已經存在的字段名>; # 在已存在的字段名后添加
- <表名> 為數(shù)據表的名字;
- <新字段名> 為所要添加的字段的名字;
- <數(shù)據類型> 為所要添加的字段能存儲數(shù)據的數(shù)據類型;
- [約束條件] 是可選的,用來對添加的字段進行約束。
:
先查看表結構,然后增加 age 字段,最后在查看增加后的表結構
向表中增加字段
查看字段
:
:
修改字段
:
修改表名稱和數(shù)據類型
ALTER TABLE <表名> CHANGE <舊字段名> <新字段名> <新數(shù)據類型>;
- <舊字段名>:指修改前的字段名;
- <新字段名>:指修改后的字段名;
- <新數(shù)據類型>:指修改后的數(shù)據類型,可以將新數(shù)據類型設置成與原來一樣
僅修改數(shù)據類型
ALTER TABLE <表名> MODIFY <字段名> <數(shù)據類型>
- <表名>:指要修改數(shù)據類型的字段所在表的名稱;
- <字段名>:指需要修改的字段;
- <數(shù)據類型>:指修改后字段的新數(shù)據類型
:
修改name的數(shù)據類型
刪除字段
:
ALTER TABLE <表名> DROP <字段名>;
:
刪除表中的 age 字段

刪除字段

