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

如果要拷貝內(nèi)容的話(huà)可以使用:
CREATE TABLE 數(shù)據(jù)表名 AS SELECT * from 源數(shù)據(jù)表
刪除表
刪除表的語(yǔ)法很簡(jiǎn)單:
DROP TABLE [IF EXISTS]
實(shí)際使用時(shí)避免真正刪除數(shù)據(jù)表!
到此這篇關(guān)于MySQL從零開(kāi)始了解數(shù)據(jù)庫(kù)開(kāi)發(fā) --- 表的操作的文章就介紹到這了,更多相關(guān)mysql表的操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Mysql創(chuàng)建表以及數(shù)據(jù)庫(kù)crud語(yǔ)句舉例詳細(xì)講解
- MySQL?數(shù)據(jù)庫(kù)表操作完全指南:創(chuàng)建、讀取、更新與刪除實(shí)戰(zhàn)
- MySQL?數(shù)據(jù)庫(kù)表與查詢(xún)操作實(shí)戰(zhàn)案例
- MySQL數(shù)據(jù)庫(kù)約束和多表查詢(xún)實(shí)例代碼
- MySQL 數(shù)據(jù)庫(kù)表創(chuàng)建過(guò)程
- MySQL如何追蹤數(shù)據(jù)庫(kù)中對(duì)特定表的更新操作
- MySQL數(shù)據(jù)庫(kù)實(shí)現(xiàn)批量表分區(qū)完整示例
- MySQL數(shù)據(jù)庫(kù)表的CRUD操作
- MySQL數(shù)據(jù)庫(kù)表的約束詳解析
相關(guān)文章
MySQL?中的服務(wù)器配置和狀態(tài)詳解(MySQL?Server?Configuration?and?Statu
MySQL服務(wù)器配置和狀態(tài)設(shè)置包括服務(wù)器選項(xiàng)、系統(tǒng)變量和狀態(tài)變量三個(gè)方面,可以通過(guò)命令行、配置文件或SQL語(yǔ)句進(jìn)行設(shè)置和查看,服務(wù)器選項(xiàng)和系統(tǒng)變量可以是全局或會(huì)話(huà)級(jí)別的,狀態(tài)變量只讀且不可修改,sql_mode是一個(gè)特殊的變量,影響SQL語(yǔ)句的執(zhí)行模式,感興趣的朋友一起看看吧2025-02-02
mysql啟用skip-name-resolve模式時(shí)出現(xiàn)Warning的處理辦法
在優(yōu)化MYSQL配置時(shí),加入 skip-name-resolve ,在重新啟動(dòng)MYSQL時(shí)檢查啟動(dòng)日志,發(fā)現(xiàn)有警告信息2012-07-07
淺談?dòng)唵沃貥?gòu)之 MySQL 分庫(kù)分表實(shí)戰(zhàn)篇
這篇文章主要介紹了 MySQL 分庫(kù)分表方法的相關(guān)資料,需要的朋友可以參考下面文章內(nèi)容,希望能幫助到你2021-09-09
MySQL DATE_SUB()函數(shù)的實(shí)現(xiàn)示例
本文主要介紹了MySQL DATE_SUB() 函數(shù)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-03-03
MSSQL根據(jù)ID進(jìn)行分頁(yè)實(shí)現(xiàn)方法
本文將詳細(xì)介紹MSSQL根據(jù)ID進(jìn)行分頁(yè)實(shí)現(xiàn)方法,需要的朋友可以參考下2012-11-11

