一、創建數據表
需要注意的是,在操作數據表之前,應該使用“USE 數據庫名”指定操作是在哪個數據庫中進行,否則會拋出“No database selected”錯誤。
創建數據表的基本語法格式如下所示:
CREATE TABLE 表名
(
字段名1,數據類型[完整性約束條件],
字段名2,數據類型[完整性約束條件],
......
字段名n,數據類型[完整性約束條件]
)
例如下圖:
為了驗證數據表是否創建成功,需要使用SHOW TABLES語句進行查看,具體執行結果如下所示:
二、查看數據表
使用SHOW CREATE TABLE查看數據表在MySQL中,SHOW CREATE TABLE語句不僅可以查看創建表時的定義語句,還可以查看表的字符編碼。SHOW CREATE TABLE語句的基本語法格式如下所示:
SHOW CREATE TABLE 表名;
在上述格式中,“表名”指的是要查詢數據表的名稱。
使用SHOW CREATE TABLE語句查看appled表,SQL語句如下所示:
SHOW CREATE TABLE appled;
執行結果如下:
在MySQL中,使用DESCRIBE語句可以查看表的字段信息,其中包括字段名、字段類型等信息。DESCRIBE語句的基本語法格式如下所示:
DESCRIBE 表名;
或簡寫為:
DESC 表名;
使用DESCRIBE語句查看appled表,SQL語句如下所示
DESC appled;
執行結果如下所示:
使用DESCRIBE語句查看數據表:
NULL:表示該列是否可以存儲NULL值。
Key:表示該列是否已經編制索引。
Default:表示該列是否有默認值。
Extra:表示獲取到的與給定列相關的附加信息。
二、修改數據表
(1) 修改表名
在數據庫中,不同的數據表是通過表名來區分的。在MySQL中,修改表名的基本語法格式如下所示:
ALTER TABLE 舊表名 RENAME [TO] 新表名;
在上述格式中,“舊表名”指的是修改前的表名,“新表名”指的是修改后的表名,關鍵字TO是可選的,其在SQL語句中是否出現不會影響語句的執行。
在修改數據庫表名之后,用SHOW TABLES語句查看數據庫中的所有表,執行結果如下:
(2) 修改字段名
數據表中的字段是通過字段名來區分的,基本語法格式如下所示:
ALTER TABLE 表名 CHANGE 舊字段名 新字段名 新數據類型;
將數據表aple中的name字段改為username,數據類型保持不變,SQL語句如下所示:
ALTER TABLE aple CHANGE name username INT(20);
為了驗證字段名是否修改成功,通過DECS語句查看aple表的結構,執行結果如下所示:
(3)修改字段的類型數據
修改字段的數據類型,就是將字段的數據類型轉為另外一種數據類型,基本語法格式如下所示:
ALTER TABLE 表名 MODIFY 字段名 數據類型;
咱們用ALTER語句修改ega字段的數據類型,SQL語句如下所示:
ALTER TABLE aple MODIFY ega CHAR(20);
為了驗證id字段的數據類型是否修改成功,再次使用DECS查看aple數據表,執行結果如下:
(4)添加字段
在MySQL中,添加字段的基本語法格式如下所示:
ALTER TABLE 表名 ADD 新字段名 數據類型
[約束條件][FIRST|AFTER 已存在字段名]
在數據表aple中添加一個沒有約束條件的INT類型的字段age,SQL語句如下:
ALTER TABLE aple ADD age INT(10);
為了驗證字段age是否添加成功,接下來,使用DESC語句查看數據表aple,執行結果如下:
(5)刪除字段
所謂刪除字段指的是將某個字段從表中刪除。在MySQL中,刪除字段的基本語法格式如下所示:
ALTER TABLE 表名 DROP 字段名;
刪除aple表中的age字段,SQL語句如下:
ALTER TABLE aple DROP age;
為了驗證age字段是否刪除,接下來,使用DESC語句查看aple表,執行結果如下:
(6)修改字段的排列位置
在MySQL中,修改字段排列位置的基本語法格式如下:
ALTER TABLE表名 MODIFY 字段名1 數據類型 FIRST|AFTER 字段名2
將數據表aple的username字段修改為表的第一個字段,執行的SQL語句如下:
ALTER TABLE aple MODIFY username INT(20) FIRST;
為了驗證username字段是否修改為表的第一個字段,接下來,使用DESC語句查看數據表,執行結果如下:
(7) 刪除數據表
刪除數據表是指刪除數據庫中已存在的表,在刪除數據表的同時,數據表中存儲的數據都將被刪除。
在MySQL中,直接使用DROP TABLE語句就可以刪除沒有被其它表關聯的數據表,其基本的語法格式如下所示:
DROP TABLE 表名;
刪除數據表aple,SQL語句如下:
DROP TABLE aple;
為了驗證數據表grade是否被刪除成功,使用DESC語句查看數據表,執行結果如下:
上述結果可以看出,aple表已經不存在了,說明數據表aple被成功刪除了。
三,表的約束
(1) 主鍵約束
主鍵約束是通過PRIMARY KEY定義的
在MySQL中,主鍵約束分為兩種,具體如下:
1、單字段主鍵
2、多字段主鍵
單字段主鍵指的是由一個字段構成的主鍵,其基本的語法格式如下所示
字段名 數據類型 PRIMARY KEY
多字段主鍵指的是多個字段組合而成的主鍵,其基本的語法格式如下所示:
PRIMARY KEY (字段名1,字段名2,……字段名n)
(3) 非空約束
非空約束指的是字段的值不能為NULL,在MySQL中,非空約束是通過NOT NULL定義的,其基本的語法格式如下所示:
字段名 數據類型 NOT NULL;
(4)唯一約束
唯一約束用於保證數據表中字段的唯一性,即表中字段的值不能重復出現。唯一約束是通過UNIQUE定義的,其基本的語法格式如下所示:
字段名 數據類型 UNIQUE;
(5) 默認約束
默認約束用於給數據表中的字段指定默認值,即當在表中插入一條新記錄時,如果沒有給這個字段賦值,那么,數據庫系統會自動為這個字段插入默認值。默認值是通過DEFAULT關鍵字定義的。
默認約束基本的語法格式如下所示:
字段名 數據類型 DEFAULT 默認值;
四、設置表的字段值自動增加
在數據表中,若想為表中插入的新記錄自動生成唯一的ID,可以使用AUTO_INCREMENT約束來實現。
AUTO_INCREMENT約束的字段可以是任何整數類型。
默認情況下,該字段的值是從1開始自增的。
使用AUTO_INCREMENT設置表字段值自動增加的基本語法格式如下所示:
字段名 數據類型 AUTO_INCREMENT;