溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

mysql之DDL操作--數(shù)據(jù)表

發(fā)布時間:2020-08-05 12:30:04 來源:網(wǎng)絡(luò) 閱讀:681 作者:xiaochegzhi 欄目:數(shù)據(jù)庫

我們創(chuàng)建好了數(shù)據(jù)庫以后,就可以創(chuàng)建相應(yīng)的數(shù)據(jù)表,那么創(chuàng)建表也是屬于DDL數(shù)據(jù)定義層面,接下來我們來學(xué)習(xí)一下。

1、創(chuàng)建數(shù)據(jù)表

創(chuàng)建指令:create table tb_name [表選項]

我們發(fā)現(xiàn)指令與數(shù)據(jù)庫的創(chuàng)建指令是相同的,沒什么大的區(qū)別。

PS:當(dāng)然我們創(chuàng)建表之前,首先先選擇相應(yīng)的數(shù)據(jù)庫。

接下來我們創(chuàng)建一張學(xué)生信息表

create table student_studentinfo(

id int,

name varchar(5),

class_id int);


關(guān)于列類型以及列約束即列屬性會在后面說到。

mysql之DDL操作--數(shù)據(jù)表

這里有幾個要注意的地方:我們在創(chuàng)建數(shù)據(jù)表時是選擇了相應(yīng)的數(shù)據(jù)庫的,使用的指令是:

use db_name 

同時,在創(chuàng)建數(shù)據(jù)表時,我們在業(yè)務(wù)邏輯上設(shè)置表的前綴,一般在成熟的項目里都有前綴,為什么要設(shè)置前綴呢?主要有以下幾個因素

A、當(dāng)我們只有一個數(shù)據(jù)庫時,如果一個數(shù)據(jù)庫里有多個項目,為了防止數(shù)據(jù)表的管理混亂,一般我們都要設(shè)置前綴以便識別和管理。

B、當(dāng)數(shù)據(jù)表非常多的時候,使用前綴得于快速檢索,如一個數(shù)據(jù)庫里有多個項目,如有學(xué)生信息系統(tǒng),學(xué)生考試系統(tǒng),教師管理系統(tǒng),那么通過前綴就可以快速的檢索到數(shù)據(jù)表。

數(shù)據(jù)表名的規(guī)則也是要遵循標(biāo)識符的規(guī)則,這里不再多說。

那么我們再創(chuàng)建數(shù)據(jù)表,如果沒有選擇數(shù)據(jù)庫,我們可以這樣創(chuàng)建:

create table db_name.tb_name

mysql之DDL操作--數(shù)據(jù)表


我們上次說到創(chuàng)建數(shù)據(jù)庫時會在data目錄 下自動生動以數(shù)據(jù)庫名命名的目錄,那么我們在創(chuàng)建數(shù)據(jù)表的時候也會自動一些文件。


mysql之DDL操作--數(shù)據(jù)表

我們發(fā)現(xiàn)教師信息表生成了兩個后綴名.frm .ibd的文件,其實這兩個文件是數(shù)據(jù)表的結(jié)構(gòu)以及索引和數(shù)據(jù)的存儲文件,這是innodb存儲引擎默認(rèn)生成的文件,那么如果是myisam的話則會生成三個文件。

mysql之DDL操作--數(shù)據(jù)表



2、查看數(shù)據(jù)表 查看創(chuàng)建的數(shù)據(jù)表信息以及表的結(jié)構(gòu)

指令:show tables;  show create table tb_name;describle tb_name


show tables  是查看當(dāng)前數(shù)據(jù)庫下有哪些數(shù)據(jù)表,和查看庫一樣。

show create table tb_name 則是查看數(shù)據(jù)表的相關(guān)創(chuàng)建信息

describle tb_name 也支持簡寫 desc tb_name

mysql之DDL操作--數(shù)據(jù)表

同理,我們查看數(shù)據(jù)表時也支持show tables like 指令


這里就不測試了哈。


3、刪除數(shù)據(jù)表

針對不想要的表我們可以刪除,和刪除數(shù)據(jù)庫的方法是一樣的

刪除指令:drop table tb_name 或是drop table if exists tb_name

mysql之DDL操作--數(shù)據(jù)表


4、數(shù)據(jù)表的更新操作

A、可以更新表名

rename table old_tbname to new_tbname

同時該指令也支持跨數(shù)據(jù)庫命名

mysql之DDL操作--數(shù)據(jù)表

mysql之DDL操作--數(shù)據(jù)表

所以利用這個功能我們可以完成數(shù)據(jù)庫的復(fù)制和重命名功能。

1、首先我們先創(chuàng)建一個數(shù)據(jù)庫

2、利用rename指令將要復(fù)制的數(shù)據(jù)庫里的所有表全部復(fù)制到新的數(shù)據(jù)庫里

復(fù)制多張表可以這樣:rename table tb_name1 to db_name.tb_name,tb_name2 to db_name.tb_name2 ...

通過這兩步就可以完成數(shù)據(jù)庫的復(fù)制了。


B、可以更新表的結(jié)構(gòu)

更新表的結(jié)構(gòu)主要有添加新的列定義

修改列定義

重命名列定義

刪除列定義

alter table tb_name add 列定義

             modify 列名  列定義

             change 列名  新列名 列定義

             drop 列名

mysql之DDL操作--數(shù)據(jù)表

重命名一個列

mysql之DDL操作--數(shù)據(jù)表

更新一個列

mysql之DDL操作--數(shù)據(jù)表

關(guān)于列的刪除就非常簡單了,在這里就沒演示怎么操作了。


C、可以更新表的選項信息

更新表的字符編碼或是存儲引擎

alter table tb_name character set 編碼

alter table tb_name engine 存儲引擎

mysql之DDL操作--數(shù)據(jù)表

mysql之DDL操作--數(shù)據(jù)表


最后是數(shù)據(jù)表的刪除操作了,通過前面的知識我們已經(jīng)知道怎么刪除數(shù)據(jù)庫了,所以刪除表和刪除數(shù)據(jù)庫是一樣的道理。這里不演示了。


一般來說,數(shù)據(jù)表刪除后是不可以恢復(fù)的,最好慎用drop命令。



向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI