MySQL從零開始了解數(shù)據(jù)庫開發(fā)之表的操作解析
今天我們來學(xué)習(xí)數(shù)據(jù)表的操作
創(chuàng)建數(shù)據(jù)表
創(chuàng)建數(shù)據(jù)表的語法:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] table_name [ (create_definition,...) ][table_options][select_statement]
說明:
- TEMPORARY:表示創(chuàng)建的表是一個臨時表
- IF NOT EXISTS:避免創(chuàng)建重復(fù)的表
- create_definition:這是表的列屬性,MySQL要求創(chuàng)建表時至少存在一列
- table_options:表的一些特性參數(shù),其中大多數(shù)選項涉及的是表數(shù)據(jù)的存儲方式和儲存位置,比如ENGINE指定儲存引擎,多數(shù)情況下用戶無需指明表選項
- select_statement:SELECT語句描述部分,用于快速創(chuàng)建表
接下來來看白屬性create_definition的具體格式:
col_name type[NOT NULL | NULL] [DEFAULT default_value][AUTO_INCREMENT][PRIMARY KEY][reference_definition]
- col_name:列名稱
- type:字段類型
- NOT NULL | NULL :指出列是否允許為空值,系統(tǒng)一般默認(rèn)允許為空值,所以當(dāng)不允許為空值時,必須使用NOT NULL
- DEFAULT default_value:表示列的默認(rèn)值
- AUTO_INCREMENT:表示是否自動編號,每個表只能有一個 AUTO_INCREMENT列,并且必須被索引
- PRIMARY KEY:是否為主鍵,一個表只能有一個主鍵,如果表中沒有PRIMARY KEY ,而某些應(yīng)用程序需要主鍵,那么MySQL將會返回第一個沒有任何NULL列的UNIQUE鍵作為主鍵
- reference_definition:為字段添加注釋
查看表結(jié)構(gòu)
對于一個創(chuàng)建成功的數(shù)據(jù)表可以使用
SHOW [FULL] COLUMNS FROM 數(shù)據(jù)表名 [FROM 數(shù)據(jù)庫名] # 或者是 SHOW [FULL] COLUMNS FROM 數(shù)據(jù)庫名.數(shù)據(jù)表名
進(jìn)行查看。同樣也可以選擇使用DESCRIBE語句查看數(shù)據(jù)表結(jié)構(gòu)
DESCRIBE 數(shù)據(jù)表名 [列名]
修改數(shù)據(jù)表結(jié)構(gòu)
修改表結(jié)構(gòu)是指增加/修改/刪除字段,修改字段名/類型以及修改表名,這可以使用ALTER TABLE語句來實現(xiàn),語法格式如下。
ALTER [IGNORE] TABLE 數(shù)據(jù)表名 alter_spec[,alter_spec]... | table_options
說明:
- IGNORE:可選項,表示如果出現(xiàn)重復(fù)關(guān)鍵的行,則執(zhí)行一行,其他重復(fù)的行被刪除。
- 數(shù)據(jù)表名:用于指定要修改的數(shù)據(jù)表的名稱。
- alter_spec:用于定義要修改的內(nèi)容,其語法格式為
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} -- 修改列的默認(rèn)值(設(shè)置或刪除) 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 數(shù)據(jù)表名1 to 數(shù)據(jù)表名2
修改數(shù)據(jù)表名的操作與修改數(shù)據(jù)庫名一樣,不建議使用,因為底層一旦修改啊,上層的所有業(yè)務(wù)都要進(jìn)行修改,可能會造成意料之外的問題。
復(fù)制表
創(chuàng)建表的CREATE TABLE語句還有另一種語法結(jié)構(gòu):在一個已經(jīng)存在的數(shù)據(jù)表的基礎(chǔ)上創(chuàng)建該表的備份,也就是復(fù)制表。這種語法的格式如下
CREATE TABLE [IF NOT EXISTS] 數(shù)據(jù)表名 , {LIKE 源數(shù)據(jù)表名 | (LIKE 源數(shù)據(jù)表名)}
該語句的功能是根據(jù)源數(shù)據(jù)表生成一個數(shù)據(jù)表。注意這個數(shù)據(jù)表只是復(fù)制結(jié)構(gòu),并沒有拷貝內(nèi)容:

如果要拷貝內(nèi)容的話可以使用:
CREATE TABLE 數(shù)據(jù)表名 AS SELECT * from 源數(shù)據(jù)表
刪除表
刪除表的語法很簡單:
DROP TABLE [IF EXISTS]
實際使用時避免真正刪除數(shù)據(jù)表!
到此這篇關(guān)于MySQL從零開始了解數(shù)據(jù)庫開發(fā) --- 表的操作的文章就介紹到這了,更多相關(guān)mysql表的操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Mysql創(chuàng)建表以及數(shù)據(jù)庫crud語句舉例詳細(xì)講解
- MySQL?數(shù)據(jù)庫表操作完全指南:創(chuàng)建、讀取、更新與刪除實戰(zhàn)
- MySQL?數(shù)據(jù)庫表與查詢操作實戰(zhàn)案例
- MySQL數(shù)據(jù)庫約束和多表查詢實例代碼
- MySQL 數(shù)據(jù)庫表創(chuàng)建過程
- MySQL如何追蹤數(shù)據(jù)庫中對特定表的更新操作
- MySQL數(shù)據(jù)庫實現(xiàn)批量表分區(qū)完整示例
- MySQL數(shù)據(jù)庫表的CRUD操作
- MySQL數(shù)據(jù)庫表的約束詳解析
相關(guān)文章
Mysql支持的數(shù)據(jù)類型(列類型總結(jié))
MySQL支持大量的列類型,它可以被分為3類:數(shù)字類型、日期和時間類型以及字符串(字符)類型。本節(jié)首先給出可用類型的一個概述,并且總結(jié)每個列類型的存儲需求,然后提供每個類中的類型性質(zhì)的更詳細(xì)的描述2016-12-12
mysql kill進(jìn)程后出現(xiàn)killed死鎖問題及解決
這篇文章主要介紹了mysql kill進(jìn)程后出現(xiàn)killed死鎖問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01
解決數(shù)據(jù)庫有數(shù)據(jù)但查詢出來的值為Null問題
這篇文章主要介紹了解決數(shù)據(jù)庫有數(shù)據(jù)但查詢出來的值為Null問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10
MySQL中使用case when 語句實現(xiàn)多條件查詢的方法
今天在一個應(yīng)用中使用到了一個比較特殊的數(shù)據(jù)查詢要求。需要的朋友可以參考下。2010-12-12
mysql?blocked?because?of?many?connection?errors解決記錄
這篇文章主要為大家介紹了mysql?blocked?because?of?many?connection?errors解決方法記錄,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10

