日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

复制表

發(fā)布時(shí)間:2024/9/19 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 复制表 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
基于現(xiàn)有的表創(chuàng)建新表是一項(xiàng)很容易的任務(wù)。以下代碼將得到tb_test表的一個(gè)副本,名為tb_test2: ?mysql>?create?table?tb_test2?select?*?from?db_test.tb_test; ????Query?OK,?0?rows?affected?(0.03?sec)??????????????????????? ????Records:?0??Duplicates:?0??Warnings:?0?

將向數(shù)據(jù)庫(kù)增加一個(gè)相同的表tb_test2。而有的時(shí)候,可能希望只基于現(xiàn)有表的幾個(gè)列創(chuàng)建一個(gè)表。通過(guò)create?select語(yǔ)句中指定列就可以實(shí)現(xiàn):

mysql>?describe?tb_test;???????????????????????????????????????????????????????? +-----------+------------------+------+-----+---------+----------------+???????? |?Field?????|?Type?????????????|?Null?|?Key?|?Default?|?Extra??????????????????? +-----------+------------------+------+-----+---------+----------------+???????? |?id????????|?int(10)?unsigned?|?NO???|?PRI?|?NULL????|?auto_increment?|???????? |?firstname?|?varchar(25)??????|?NO???|?????|?NULL????|????????????????|???????? |?lastname??|?varchar(25)??????|?NO???|?????|?NULL????|????????????????|???????? |?email?????|?varchar(45)??????|?NO???|?????|?NULL????|????????????????|???????? |?phone?????|?varchar(10)??????|?NO???|?????|?NULL????|????????????????|???????? +-----------+------------------+------+-----+---------+----------------+???????? 5?rows?in?set?(0.01?sec)???????????????????????????????????????????????????????? mysql>?create?table?tb_test2?select?id,?firstname,?lastname,?email?from?tb_test; Query?OK,?0?rows?affected?(0.03?sec)???????????????????????????????????????????? Records:?0??Duplicates:?0??Warnings:?0?????????????????????????????????????????? mysql>?describe?tb_test2;??????????????????????????????????????????????????????? +-----------+------------------+------+-----+---------+-------+????????????????? |?Field?????|?Type?????????????|?Null?|?Key?|?Default?|?Extra?|????????????????? +-----------+------------------+------+-----+---------+-------+????????????????? |?id????????|?int(10)?unsigned?|?NO???|?????|?0???????|???????|????????????????? |?firstname?|?varchar(25)??????|?NO???|?????|?NULL????|???????|????????????????? |?lastname??|?varchar(25)??????|?NO???|?????|?NULL????|???????|????????????????? |?email?????|?varchar(45)??????|?NO???|?????|?NULL????|???????|????????????????? +-----------+------------------+------+-----+---------+-------+????????????????? 4?rows?in?set?(0.01?sec)? 創(chuàng)建臨時(shí)表有的時(shí)候,當(dāng)工作在非常大的表上 時(shí),可能偶爾需要運(yùn)行很多查詢(xún)獲得一個(gè)大量數(shù)據(jù)的小的子集,不是對(duì)整個(gè)表運(yùn)行這些查詢(xún),而是讓MySQL每次找出所需的少數(shù)記錄,將記錄保存到一個(gè)臨時(shí)表 可能更快一些,然后對(duì)這些臨時(shí)表進(jìn)行查詢(xún)操作。可以通過(guò)使用temporary關(guān)鍵字和create?table語(yǔ)句來(lái)實(shí)現(xiàn)。 ?mysql>?create?temporary?table?emp_temp?select?firstname,?lastname?from?tb_test; ????Query?OK,?0?rows?affected?(0.02?sec)??????????????????????????????????????????? ????Records:?0??Duplicates:?0??Warnings:?0?

臨時(shí)表的創(chuàng)建與其它表一樣,只是它們存儲(chǔ)在操作系統(tǒng)指定的臨時(shí)目錄中。臨時(shí)表將在你連接MySQL期間存在,當(dāng)你斷開(kāi)時(shí),MySQL將自動(dòng)刪除表并釋放所有的內(nèi)存空間;當(dāng)然了,你也可以手動(dòng)的使用drop?table命令刪除臨時(shí)表。

查看數(shù)據(jù)庫(kù)中可用的表

可以使用show?tables命令完成。例如:

?mysql>?show?tables;?????+-------------------+???|?Tables_in_db_test?|???+-------------------+???|?tb_test???????????|???|?tb_test2??????????|???+-------------------+???2?rows?in?set?(0.00?sec)


查看表結(jié)構(gòu)

可以使用describe語(yǔ)句查看表結(jié)構(gòu),例如:

mysql>?describe?tb_test;???????????????????????????????????????????????? +-----------+------------------+------+-----+---------+----------------+ |?Field?????|?Type?????????????|?Null?|?Key?|?Default?|?Extra??????????| +-----------+------------------+------+-----+---------+----------------+ |?id????????|?int(10)?unsigned?|?NO???|?PRI?|?NULL????|?auto_increment?| |?firstname?|?varchar(25)??????|?NO???|?????|?NULL????|????????????????| |?lastname??|?varchar(25)??????|?NO???|?????|?NULL????|????????????????| |?email?????|?varchar(45)??????|?NO???|?????|?NULL????|????????????????| |?phone?????|?varchar(10)??????|?NO???|?????|?NULL????|????????????????| +-----------+------------------+------+-----+---------+----------------+ 5?rows?in?set?(0.00?sec)?

另外,使用show命令也能得到相同的結(jié)果,例如:

mysql>?show?columns?in?tb_test;????????????????????????????????????????? +-----------+------------------+------+-----+---------+----------------+ |?Field?????|?Type?????????????|?Null?|?Key?|?Default?|?Extra??????????| +-----------+------------------+------+-----+---------+----------------+ |?id????????|?int(10)?unsigned?|?NO???|?PRI?|?NULL????|?auto_increment?| |?firstname?|?varchar(25)??????|?NO???|?????|?NULL????|????????????????| |?lastname??|?varchar(25)??????|?NO???|?????|?NULL????|????????????????| |?email?????|?varchar(45)??????|?NO???|?????|?NULL????|????????????????| |?phone?????|?varchar(10)??????|?NO???|?????|?NULL????|????????????????| +-----------+------------------+------+-----+---------+----------------+ 5?rows?in?set?(0.00?sec)?

刪除表

刪除表是使用drop?table語(yǔ)句實(shí)現(xiàn)的,其語(yǔ)法如下:

?drop?[temporary]?table?[if?exists]?tbl_name?[,?tbl_name,?...]

更改表結(jié)構(gòu)

我 們會(huì)發(fā)現(xiàn),我們會(huì)經(jīng)常修改和改進(jìn)表結(jié)構(gòu),特別是在開(kāi)發(fā)初期;但是,每次進(jìn)行修改時(shí)不必都先刪除再重新創(chuàng)建表。相反,可以使用alter語(yǔ)句修改表的結(jié)構(gòu)。 利用這個(gè)語(yǔ)句,可以再必要時(shí)刪除、修改和增加列。和create?table一樣,alter?table提供了很多子句、關(guān)鍵字和選項(xiàng)。這里只是會(huì)說(shuō)一 些簡(jiǎn)單的使用,比如在表tb_demo表中插入一列,表示email,代碼如下:

?mysql>?alter?table?tb_demo?add?column?email?varchar(45);Query?OK,?0?rows?affected?(0.14?sec)????????????????????Records:?0??Duplicates:?0??Warnings:?0?

新的列放在表的最后位置。不過(guò),還可以使用適當(dāng)?shù)年P(guān)鍵字(包括first、after和last)來(lái)控制新列的位置。如果想修改表,比如,剛剛加的email,我想加入一個(gè)not?null控制,代碼可以是這樣的:

?mysql>?alter?table?tb_demo?change?email?email?varchar(45)?not?null;Query?OK,?0?rows?affected?(0.11?sec)???????????????????????????????Records:?0??Duplicates:?0??Warnings:?0?

如果覺(jué)的這個(gè)email這列沒(méi)有存在的必要了,可以使用下面的代碼刪除它,例如:

?mysql>?alter?table?tb_demo?drop?email;??Query?OK,?0?rows?affected?(0.09?sec)????Records:?0??Duplicates:?0??Warnings:?0?

?

與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的复制表的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。