永遠記住,你的存在是有意義的,
你很重要,
你是被愛著的,
而且你為這個世界帶來了無可取代的東西。
-- 麥克西 《男孩、鼴鼠、狐貍和馬》--
從零開始了解數據庫開發
- 創建數據表
- 查看表結構
- 修改數據表結構
- 重命名表
- 復制表
- 刪除表
今天我們來學習數據表的操作
創建數據表
創建數據表的語法:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] table_name
[
(create_definition,...)
][table_options][select_statement]
說明:
- TEMPORARY:表示創建的表是一個臨時表
- IF NOT EXISTS:避免創建重復的表
- create_definition:這是表的列屬性,MySQL要求創建表時至少存在一列
- table_options:表的一些特性參數,其中大多數選項涉及的是表數據的存儲方式和儲存位置,比如ENGINE指定儲存引擎,多數情況下用戶無需指明表選項
- select_statement:SELECT語句描述部分,用于快速創建表
接下來來看白屬性create_definition的具體格式:
col_name type[NOT NULL | NULL] [DEFAULT default_value][AUTO_INCREMENT][PRIMARY KEY][reference_definition]
- col_name:列名稱
- type:字段類型
- NOT NULL | NULL :指出列是否允許為空值,系統一般默認允許為空值,所以當不允許為空值時,必須使用NOT NULL
- DEFAULT default_value:表示列的默認值
- AUTO_INCREMENT:表示是否自動編號,每個表只能有一個 AUTO_INCREMENT列,并且必須被索引
- PRIMARY KEY:是否為主鍵,一個表只能有一個主鍵,如果表中沒有PRIMARY KEY ,而某些應用程序需要主鍵,那么MySQL將會返回第一個沒有任何NULL列的UNIQUE鍵作為主鍵
- reference_definition:為字段添加注釋
查看表結構
對于一個創建成功的數據表可以使用
SHOW [FULL] COLUMNS FROM 數據表名 [FROM 數據庫名]
# 或者是
SHOW [FULL] COLUMNS FROM 數據庫名.數據表名
進行查看。同樣也可以選擇使用DESCRIBE語句查看數據表結構
DESCRIBE 數據表名 [列名]
修改數據表結構
修改表結構是指增加/修改/刪除字段,修改字段名/類型以及修改表名,這可以使用ALTER TABLE語句來實現,語法格式如下。
ALTER [IGNORE] TABLE 數據表名 alter_spec[,alter_spec]... | table_options
說明:
- IGNORE:可選項,表示如果出現重復關鍵的行,則執行一行,其他重復的行被刪除。
- 數據表名:用于指定要修改的數據表的名稱。
- alter_spec:用于定義要修改的內容,其語法格式為
ADD [COLUMN] col_name create_definition [FIRST | AFTER col_name] -- 添加新列,可指定位置(FIRST表示第一列,AFTER表示在某列之后) ADD [COLUMN] ( col_name create_definition, ...) -- 同時添加多列 ADD INDEX [index_name] (index_col_name, ...) -- 添加普通索引 ADD PRIMARY KEY (index_col_name, ...) -- 添加主鍵 ADD UNIQUE [INDEX] [index_name] (index_col_name, ...) -- 添加唯一索引 ALTER [COLUMN] columnname {SET DEFAULT literal | DROP DEFAULT} -- 修改列的默認值(設置或刪除) CHANGE [COLUMN] old_col_name new_column_name col_definition [FIRST | AFTER col_name] -- 修改列名和列定義,可指定位置 MODIFY [COLUMN] col_name col_definition [FIRST | AFTER col_name] -- 修改列定義,可指定位置 DROP [COLUMN] col_name -- 刪除指定列 DROP PRIMARY KEY -- 刪除主鍵 DROP INDEX index_name -- 刪除索引 RENAME [TO] new_table_name -- 重命名表
重命名表
重命名表的語法為:
RENAME TABLE 數據表名1 to 數據表名2
修改數據表名的操作與修改數據庫名一樣,不建議使用,因為底層一旦修改啊,上層的所有業務都要進行修改,可能會造成意料之外的問題。
復制表
創建表的CREATE TABLE語句還有另一種語法結構:在一個已經存在的數據表的基礎上創建該表的備份,也就是復制表。這種語法的格式如下
CREATE TABLE [IF NOT EXISTS] 數據表名 , {LIKE 源數據表名 | (LIKE 源數據表名)}
該語句的功能是根據源數據表生成一個數據表。注意這個數據表只是復制結構,并沒有拷貝內容:
如果要拷貝內容的話可以使用:
CREATE TABLE 數據表名 AS SELECT * from 源數據表
刪除表
刪除表的語法很簡單:
DROP TABLE [IF EXISTS]
實際使用時避免真正刪除數據表!