第6章 表_第1頁(yè)
已閱讀1頁(yè),還剩55頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第六章,表,課程目標(biāo),創(chuàng)建表修改表重命名表刪除表,1. CREATE TABLE創(chuàng)建新表,使用CREATE TABLE可以創(chuàng)建一個(gè)新表,這一語(yǔ)句可以分為兩種寫法:一種用于直接創(chuàng)建新表;另一種用于參照其它表的定義創(chuàng)建一個(gè)新表。,1. CREATE TABLE創(chuàng)建新表,以下寫法用于直接創(chuàng)建新表:CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 表名[(列定義1,列定義2,...,[

2、表級(jí)約束])][表選項(xiàng)][select表達(dá)式]其中列定義的基本寫法為:列名 列的類型,1. CREATE TABLE創(chuàng)建新表,以下代碼用于創(chuàng)建一個(gè)名為“student”的表,該表有兩列:ID:INT類型,用于存儲(chǔ)學(xué)生的編號(hào);NAME:CHAR(8)類型,用于存儲(chǔ)學(xué)生的姓名。表的創(chuàng)建代碼如下:mysql> create table student -> ( -> ID int, -

3、> NAME char(8) -> );Query OK, 0 rows affected (0.09 sec),1. CREATE TABLE創(chuàng)建新表,MySQL將每一個(gè)表都單獨(dú)保存在一個(gè)“.frm”格式的文件中,該文件存儲(chǔ)在相應(yīng)的數(shù)據(jù)庫(kù)目錄中。表的存儲(chǔ)引擎也可能會(huì)創(chuàng)建其它文件,如對(duì)于MyISAM類型的表,存儲(chǔ)引擎會(huì)自動(dòng)創(chuàng)建數(shù)據(jù)和索引文件。,1. CREATE TABLE創(chuàng)建新表,創(chuàng)建臨時(shí)表在創(chuàng)建表格時(shí),可

4、以使用TEMPORARY關(guān)鍵詞使當(dāng)前建立的表為臨時(shí)表。臨時(shí)表只能在當(dāng)前連接中使用,當(dāng)連接關(guān)閉時(shí),臨時(shí)表也被自動(dòng)刪除。這意味著兩個(gè)不同的連接可以創(chuàng)建兩個(gè)名稱相同的臨時(shí)表,這兩個(gè)臨時(shí)表不會(huì)互相沖突,也不與原有的同名的非臨時(shí)表沖突。,1. CREATE TABLE創(chuàng)建新表,創(chuàng)建臨時(shí)表如果臨時(shí)表的名稱與數(shù)據(jù)庫(kù)中現(xiàn)有的非臨時(shí)表名稱相同,則非臨時(shí)表會(huì)被隱藏,直到該臨時(shí)表被刪除為止。創(chuàng)建臨時(shí)表要求當(dāng)前帳戶擁有CREATE TEMPORARY T

5、ABLES權(quán)限。,1. CREATE TABLE創(chuàng)建新表,避免創(chuàng)建已經(jīng)存在的表如果表已存在,則使用關(guān)鍵詞IF NOT EXISTS可以防止發(fā)生錯(cuò)誤。注意,原有表的結(jié)構(gòu)與CREATE TABLE語(yǔ)句中表示的表的結(jié)構(gòu)是否相同,這一點(diǎn)沒(méi)有驗(yàn)證。注釋:如果在CREATE TABLE...SELECT語(yǔ)句中使用IF NOT EXISTS,則不論表是否已存在,由SELECT部分選擇的記錄都會(huì)被插入。,1. CREATE TABLE創(chuàng)建新表,是

6、否允許列為空值在列定義中,可以加入以下選項(xiàng)以指明某一列是否允許出現(xiàn)空值:NULL:允許出現(xiàn)空值;NOT NULL:不允許出現(xiàn)空值。,1. CREATE TABLE創(chuàng)建新表,以下代碼在創(chuàng)建“student”表時(shí),不允許學(xué)生的編號(hào)(ID)和姓名(NAME)為空,但允許住址(ADDR)為空。mysql> create table student -> ( -> ID int NOT NULL,

7、 -> NAME char(8) NOT NULL, -> ADDR char(60) NULL -> );Query OK, 0 rows affected (0.09 sec),1. CREATE TABLE創(chuàng)建新表,指定列的默認(rèn)值在列定義中,可以加入以下選項(xiàng)以指明某一列的默認(rèn)值:DEFAULT 默認(rèn)值,1. CREATE TABLE創(chuàng)建新表,默認(rèn)值必須為常數(shù),不能是函數(shù)或表達(dá)式,例如,一

8、個(gè)日期列的默認(rèn)值不能被設(shè)置為一個(gè)函數(shù),如NOW()或CURRENT_DATE。這里有一個(gè)特例,可以對(duì)TIMESTAMP列指定CURRENT_TIMESTAMP為默認(rèn)值。BLOB和TEXT類型的列不能指定默認(rèn)值。,1. CREATE TABLE創(chuàng)建新表,使列值自動(dòng)增加如果一個(gè)列是整數(shù)類型,則可以使用“AUTO_INCREMENT”關(guān)鍵字指定該列的值自動(dòng)增加。使用自動(dòng)增加可以很方便的在表中的某一列上,為每一條記錄建立不同的列值,從而根

9、據(jù)該列的值可以唯一的確定表中的一條記錄。,1. CREATE TABLE創(chuàng)建新表,當(dāng)指定某一列為自動(dòng)增加時(shí),向該列插入一個(gè)NULL值(建議)或0時(shí),該列會(huì)被自動(dòng)設(shè)置為比上一次插入時(shí)更大的值,通常情況下依次增加1。也就是說(shuō),新增加的列值總是當(dāng)前表中該列的最大值。如果新增加的記錄是表中的第一條記錄,則該值為1。,1. CREATE TABLE創(chuàng)建新表,指定列的字符集如果某一列是字符列,則其定義可以包括一個(gè)CHARACTER SET屬性

10、,用來(lái)指定字符集和校對(duì)規(guī)則??梢詫HARACTER SET縮寫為CHARSET。,1. CREATE TABLE創(chuàng)建新表,為列添加注釋為了記錄表中某些列的作用,可以在建表時(shí)將這些列的用法添加列的注釋中,添加注釋使用COMMENT關(guān)鍵字??梢酝ㄟ^(guò)SHOW CREATE TABLE或SHOW FULL COLUMNS語(yǔ)句來(lái)查看列的注釋。,1. CREATE TABLE創(chuàng)建新表,設(shè)置主鍵主鍵就好比是表中每一條記錄的身份,一張表中不能

11、出現(xiàn)兩條主鍵相同的記錄,換言之,只要主鍵的值確定了,就唯一的確定了表中的一條記錄。被設(shè)置為主鍵的列同時(shí)會(huì)被強(qiáng)制設(shè)置為NOT NULL。一張表只能設(shè)置一個(gè)主鍵,主鍵可以是一個(gè)列,也可以是多個(gè)列的組合。,1. CREATE TABLE創(chuàng)建新表,設(shè)置主鍵將一個(gè)列設(shè)置為主鍵的方法是,在列的定義中使用“[PRIMARY] KEY”子句。以下代碼將“student”表的ID列設(shè)置為主鍵。Create table student(ID in

12、t KEY,NAME char(8)),1. CREATE TABLE創(chuàng)建新表,要將主鍵設(shè)置為多個(gè)列的組合,必須使用列級(jí)約束PRIMARY KEY子句。以下代碼演示了將表grade(成績(jī))的列SID(學(xué)號(hào)),CID(課程號(hào))設(shè)置為主鍵。create table grade(sid int,cid int,grade int,primary key (sid,cid)),1. CREATE TABLE創(chuàng)建新表,使列值

13、不重復(fù)在表中輸入數(shù)據(jù)時(shí),有時(shí)需要某一列的內(nèi)容不含重復(fù)內(nèi)容,如書藉的出版號(hào),此時(shí)可以使用UNIQUE [KEY]關(guān)鍵字來(lái)防止列值重復(fù)。如果在添加新行時(shí)插入的列值在表中已存在,則會(huì)出現(xiàn)錯(cuò)誤。例外情況是,如果索引中的一個(gè)列允許包含NULL值,NULL值可以重復(fù)出現(xiàn)。,1. CREATE TABLE創(chuàng)建新表,使用索引可以使用如下方法在表中指定索引:INDEX 索引名 索引類型 (索引列1,索引列2,…)索引用于加速表的查詢速度,有

14、關(guān)索引的詳細(xì)信息可參考索引的管理。,1. CREATE TABLE創(chuàng)建新表,SERIAL實(shí)際使用中,經(jīng)常需要將一個(gè)列設(shè)置為“BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE”屬性,為便于進(jìn)行這一操作,可以使用關(guān)鍵字“SERIAL”來(lái)替代這段很長(zhǎng)的代碼。,1. CREATE TABLE創(chuàng)建新表,外鍵約束外鍵約束是指當(dāng)前表中的某些列與其它參考表中的某些列存在著參照關(guān)系,在當(dāng)前表中的列的值必

15、須已經(jīng)出現(xiàn)在參考表的對(duì)應(yīng)列中。在列定義和表級(jí)約束中都可以指定表的外鍵約束。,1. CREATE TABLE創(chuàng)建新表,外鍵定義服從下列情況: 所有tables必須是InnoDB型,它們不能是臨時(shí)表。 在引用表中,必須有一個(gè)索引,外鍵列以同樣的順序被列在其中作為第一列。這樣一個(gè)索引如果不存在,它必須在引用表里被自動(dòng)創(chuàng)建。 在引用表中,必須有一個(gè)索引,被引用的列以同樣的順序被列在其中作為第一列。 不支持對(duì)外鍵列的索引前綴。這樣的后果

16、之一是BLOB和TEXT列不被包括在一個(gè)外鍵中,這是因?yàn)閷?duì)這些列的索引必須總是包含一個(gè)前綴長(zhǎng)度。 如果CONSTRAINT symbol被給出,它在數(shù)據(jù)庫(kù)里必須是唯一的。如果它沒(méi)有被給出,InnoDB自動(dòng)創(chuàng)建這個(gè)名字。,1. CREATE TABLE創(chuàng)建新表,表選項(xiàng)表選項(xiàng)用于對(duì)表進(jìn)行優(yōu)化,以下介紹表選項(xiàng)的含義。ENGINE和TYPEENGINE和TYPE選項(xiàng)用于為表指定存儲(chǔ)引擎,ENGINE是首選的選項(xiàng)名稱。ENGINE和TY

17、PE選項(xiàng)可參考MySQL備份與恢復(fù)中相關(guān)內(nèi)容。,1. CREATE TABLE創(chuàng)建新表,表選項(xiàng)如果被指定的存儲(chǔ)引擎無(wú)法利用,則MySQL使用MyISAM代替。例如,一個(gè)表定義包括ENGINE=BDB選項(xiàng),但是MySQL服務(wù)器不支持BDB表,則表被創(chuàng)建為MyISAM表。這樣,如果在主機(jī)上有事務(wù)表,但在從屬機(jī)上創(chuàng)建的是非交互式表(以加快速度)時(shí),可以進(jìn)行復(fù)制設(shè)置。在MySQL 5.1中,如果沒(méi)有遵守存儲(chǔ)引擎規(guī)約,則會(huì)出現(xiàn)警告。,1.

18、CREATE TABLE創(chuàng)建新表,AUTO_INCREMENT 表的初始AUTO_INCREMENT值。在MySQL 5.1中,本選項(xiàng)只適用于MyISAM和MEMORY表。InnoDB也支持本選項(xiàng)。如果引擎不支持AUTO_INCREMENT表選項(xiàng),則要設(shè)置引擎的第一個(gè)auto-increment值,需插入一個(gè)“假”行。該行的值比創(chuàng)建表后的值小一,然后刪除該假行。,1. CREATE TABLE創(chuàng)建新表,AVG_ROW_LENGTH

19、表中平均行長(zhǎng)度的近似值。只需要對(duì)含尺寸可變的記錄的大型表進(jìn)行此項(xiàng)設(shè)置。[DEFAULT] CHARACTER SET 用于為表指定一個(gè)默認(rèn)字符集。CHARSET是CHARACTER SET的同義詞。COLLATE 用于為表指定一個(gè)默認(rèn)整序。,1. CREATE TABLE創(chuàng)建新表,CHECKSUM如果希望MySQL隨時(shí)對(duì)所有行進(jìn)行實(shí)時(shí)檢驗(yàn)求和(也就是,表變更后,MySQL自動(dòng)更新檢驗(yàn)求和),則應(yīng)把此項(xiàng)設(shè)置為1。這樣做,表的

20、更新速度會(huì)略微慢些,但是更容易尋找到受損的表。CHECKSUM TABLE語(yǔ)句用于報(bào)告檢驗(yàn)求和(僅限于MyISAM)。COMMENT 表的注釋,最長(zhǎng)60個(gè)字符。,1. CREATE TABLE創(chuàng)建新表,CONNECTION FEDERATED表的連接字符串。( 注釋:較早版本的MySQL使用COMMENT選項(xiàng)用于連接字符串。MAX_ROWS 打算儲(chǔ)存在表中的行數(shù)目的最大值。這不是一個(gè)硬性限值,而更像一個(gè)指示語(yǔ)句,指示出表必須

21、能存儲(chǔ)至少這么多行。MIN_ROWS 打算存儲(chǔ)在表中的行數(shù)目的最小值。,1. CREATE TABLE創(chuàng)建新表,PACK_KEYS 如果希望索引更小,則把此選項(xiàng)設(shè)置為1。這樣做通常使更新速度變慢,同時(shí)閱讀速度加快。把選項(xiàng)設(shè)置為0可以取消所有的關(guān)鍵字壓縮。把此選項(xiàng)設(shè)置為DEFAULT時(shí),存儲(chǔ)引擎只壓縮長(zhǎng)的CHAR或VARCHAR列(僅限于MyISAM)。如果不使用PACK_KEYS,則默認(rèn)操作是只壓縮字符串,但不壓縮數(shù)字。如果使

22、用PACK_KEYS=1,則對(duì)數(shù)字也進(jìn)行壓縮。,1. CREATE TABLE創(chuàng)建新表,PASSWORD 使用密碼對(duì).frm文件加密。在標(biāo)準(zhǔn)MySQL版本中,本選項(xiàng)不起任何作用。DELAY_KEY_WRITE 如果想要延遲對(duì)關(guān)鍵字的更新,等到表關(guān)閉后再更新,則把此項(xiàng)設(shè)置為1(僅限于MyISAM)。,1. CREATE TABLE創(chuàng)建新表,ROW_FORMAT 定義各行應(yīng)如何儲(chǔ)存。當(dāng)前,此選項(xiàng)只適用于MyISAM表。對(duì)于靜態(tài)行

23、或長(zhǎng)度可變行,此選項(xiàng)值可以為FIXED或DYNAMIC。myisampack用于把類型設(shè)置為COMPRESSED。在默認(rèn)情況下,InnoDB記錄以壓縮格式存儲(chǔ)(ROW_FORMAT=COMPACT)。通過(guò)指定ROW_FORMAT=REDUNDANT,仍然可以申請(qǐng)用于較早版本的MySQL中的非壓縮格式。,1. CREATE TABLE創(chuàng)建新表,RAID_TYPE 在MySQL 5.0中,RAID支持被刪除了。 UNION 當(dāng)想要

24、把一組相同的表當(dāng)作一個(gè)表使用時(shí),采用UNION。UNION僅適用于MERGE表。對(duì)于映射到一個(gè)MERGE表上的表,必須擁有SELECT, UPDATE和DELETE權(quán)限。,1. CREATE TABLE創(chuàng)建新表,INSERT_METHOD 如果希望在MERGE表中插入數(shù)據(jù),必須用INSERT_METHOD指定應(yīng)插入行的表。INSERT_METHOD選項(xiàng)僅用于MERGE表。使用FIRST或LAST把行插入到第一個(gè)或最后一個(gè)表中;或者

25、使用NO,阻止插入行。DATA DIRECTORY, INDEX DIRECTORY 通過(guò)使用DATA DIRECTORY='directory'或INDEX DIRECTORY='directory',可以指定MyISAM存儲(chǔ)引擎放置表格數(shù)據(jù)文件和索引文件的位置。注意,目錄應(yīng)是通向目錄的完整路徑(不是相對(duì)路徑)。,1. CREATE TABLE創(chuàng)建新表,在一個(gè)表的基礎(chǔ)上創(chuàng)建表可以在CREATE

26、TABLE語(yǔ)句的末尾添加一個(gè)SELECT語(yǔ)句,在一個(gè)表的基礎(chǔ)上創(chuàng)建表。CREATE TABLE 新表名SELECT * FROM 老表名;MySQL會(huì)對(duì)SELECT中的所有項(xiàng)創(chuàng)建新列。,1. CREATE TABLE創(chuàng)建新表,參照其它表的定義創(chuàng)建一個(gè)新表以下寫法用于參照其它表的定義創(chuàng)建一個(gè)新表:CREATE [TEMPORARY] TABLE[IF NOT EXISTS] 表名LIKE 參照表的表名,2. ALTER T

27、ABLE修改表,ALTER [IGNORE] TABLE 表名修改項(xiàng)1 [, 修改項(xiàng)2] ... 其中,修改項(xiàng)寫法如下:ADD [COLUMN] 列定義 [FIRST | AFTER 列名] | ADD [COLUMN] (列定義1,列定義2) | ADD INDEX [索引名] [索引類型] (索引列名,...) | ADD [CONSTRAINT [約束名]] PRIMARY KEY [索引類型]

28、(索引列名,...) | ADD [CONSTRAINT [約束名]] UNIQUE [索引名] [索引類型] (索引列名,...),2. ALTER TABLE修改表,| ADD [FULLTEXT|SPATIAL] [索引名] (索引列名,...) | ADD [CONSTRAINT [約束名]] FOREIGN KEY [索引名] (索引列名,...) [外鍵約束定義]

29、 | ALTER [COLUMN] 列名 {SET DEFAULT literal | DROP DEFAULT} | CHANGE [COLUMN] 舊列名 列定義 [FIRST|AFTER 列名] | MODIFY [COLUMN] 列定義 [FIRST | AFTER 列名] | DROP [COLUMN] 列名 | DROP PRIMARY KEY | DROP INDEX 索引名,2.

30、ALTER TABLE修改表,| DROP FOREIGN KEY 外鍵約束名 | DISABLE KEYS | ENABLE KEYS | RENAME [TO] 新表名 | ORDER BY 列名 | CONVERT TO CHARACTER SET 字符集 [COLLATE 校對(duì)規(guī)則] | [DEFAULT] CHARACTER SET 字符集 [COLLATE 校對(duì)規(guī)則] | DISCARD TABL

31、ESPACE | IMPORT TABLESPACE | 表選項(xiàng),2. ALTER TABLE修改表,ALTER TABLE用于更改原有表的結(jié)構(gòu)。例如,可以增加或刪減列,創(chuàng)建或取消索引,更改原有列的類型,或重新命名列或表。還可以更改表的評(píng)注和表的類型。允許進(jìn)行的修改中,許多子句的語(yǔ)法與CREATE TABLE中的子句的語(yǔ)法相近。其中包括表選項(xiàng)修改,選項(xiàng)有ENGINE, AUTO_INCREMENT和AVG_ROW_LENGTH

32、等??梢詤⒖肌癈REATE TABLE語(yǔ)法”。,2. ALTER TABLE修改表,IGNOREIGNORE是MySQL相對(duì)于標(biāo)準(zhǔn)SQL的擴(kuò)展。如果在新表中有重復(fù)關(guān)鍵字,或者當(dāng)STRICT模式啟動(dòng)后出現(xiàn)警告,則使用IGNORE控制ALTER TABLE的運(yùn)行。如果沒(méi)有指定IGNORE,當(dāng)重復(fù)關(guān)鍵字錯(cuò)誤發(fā)生時(shí),復(fù)制操作被放棄,返回前一步驟。如果指定了IGNORE,則對(duì)于有重復(fù)關(guān)鍵字的行,只使用第一行,其它有沖突的行被刪除。并且,對(duì)錯(cuò)誤值

33、進(jìn)行修正,使之盡量接近正確值。,2. ALTER TABLE修改表,使用多個(gè)子句可以在一個(gè)ALTER TABLE語(yǔ)句里寫入多個(gè)ADD, ALTER, DROP和CHANGE子句,中間用逗號(hào)分開。這是MySQL相對(duì)于標(biāo)準(zhǔn)SQL的擴(kuò)展。在標(biāo)準(zhǔn)SQL中,每個(gè)ALTER TABLE語(yǔ)句中每個(gè)子句只允許使用一次。例如,在一個(gè)語(yǔ)句中取消多個(gè)列:mysql> ALTER TABLE t2 DROP COLUMN c, DROP COLUMN

34、 d;,2. ALTER TABLE修改表,CHANGE和MODIFY可以使用“CHANGE 舊列名 新列定義”子句對(duì)列進(jìn)行重命名。重命名時(shí),需給定舊的和新的列名稱和列當(dāng)前的類型。例如:要把一個(gè)INTEGER列的名稱從a變更到b,需要如下操作:mysql> ALTER TABLE t1 CHANGE a b INTEGER;,2. ALTER TABLE修改表,FIRST和AFTER可以使用“FIRST 列名”或“AFTER

35、 列名”在一個(gè)表行中的某個(gè)特定位置添加列。默認(rèn)把列添加到最后。也可以在CHANGE或MODIFY語(yǔ)句中使用FIRST和AFTER。修改缺省值“ALTER ... SET DEFAULT”或“ALTER ... DROP DEFAULT”用于指定列的新默認(rèn)值,或刪除舊的默認(rèn)值。如果舊的默認(rèn)值被刪除同時(shí)列值為NULL,則新的默認(rèn)值為NULL。如果列值不能為NULL,MySQL會(huì)指定一個(gè)默認(rèn)值。,2. ALTER TABLE修改表,修改索

36、引DROP INDEX用于取消索引。這是MySQL相對(duì)于標(biāo)準(zhǔn)SQL的擴(kuò)展。如果列從表中被取消了,則這些列也從相應(yīng)的索引中被取消。如果組成一個(gè)索引的所有列均被取消,則該索引也被取消。刪除列如果一個(gè)表只包含一列,則此列不能被取消。如果想要取消表,應(yīng)使用DROP TABLE。,2. ALTER TABLE修改表,DROP PRIMAY DEY刪除主鍵DROP PRIMAY DEY用于取消主索引。注釋:在MySQL較早的版本中,如果沒(méi)

37、有主索引,則DROP PRIMARY KEY會(huì)取消表中的第一個(gè)UNIQUE索引。在MySQL 5.1中不會(huì)出現(xiàn)這種情況。如果在MySQL 5.1中對(duì)沒(méi)有主鍵的表使用DROP PRIMARY KEY,則會(huì)出現(xiàn)錯(cuò)誤信息。,2. ALTER TABLE修改表,添加唯一約束和主鍵約束如果向表中添加UNIQUE KEY或PRIMARY KEY,則UNIQUE KEY或PRIMARY KEY會(huì)被儲(chǔ)存在非唯一索引之前,這樣MySQL就可以盡早地檢查

38、出重復(fù)關(guān)鍵字。ORDER BYORDER BY用于在創(chuàng)建新表時(shí),讓各行按一定的順序排列。注意,在插入和刪除后,表不會(huì)仍保持此順序。當(dāng)知道多數(shù)情況下會(huì)按照特定的順序查詢各行時(shí),可以使用這個(gè)選項(xiàng);在對(duì)表進(jìn)行了大的改動(dòng)后,通過(guò)使用此選項(xiàng),可以提高查詢效率。在有些情況下,如果表按列排序,對(duì)于MySQL來(lái)說(shuō),排序可能會(huì)更簡(jiǎn)單。,2. ALTER TABLE修改表,更改字符集如果想要把表默認(rèn)的字符集和所有字符列(CHAR, VARCHAR,

39、TEXT)改為新的字符集,應(yīng)使用如下語(yǔ)句:ALTER TABLE 表名 CONVERT TO CHARACTER SET 字符集;,3. RENAME TABLE重命名表,RENAME TABLE 表名TO 新表名[, 表名2 TO 新表名2] ...本語(yǔ)句用于對(duì)一個(gè)或多個(gè)表進(jìn)行重命名,當(dāng)對(duì)表進(jìn)行重命名時(shí),其它線程不能讀取任何表。,3. RENAME TABLE重命名表,如果此語(yǔ)句用于對(duì)多個(gè)表進(jìn)行重命名,則重命名操作從左至右進(jìn)行。

40、如果想要交換兩個(gè)表的名稱,可以這樣做(假設(shè)不存在名稱為tmp_table的表):RENAME TABLE old_table TO tmp_table , new_table TO old_table , tmp_table TO new_table;,3. RENAME TABLE重命名表,只要兩個(gè)數(shù)據(jù)庫(kù)位于同一文件系統(tǒng)中,還可以對(duì)表進(jìn)行重命名,把表從一個(gè)數(shù)據(jù)庫(kù)中移動(dòng)到另一個(gè)數(shù)據(jù)庫(kù)中:RENAME TABLE current_db

41、.tbl_name TO other_db.tbl_name;,4. DROP TABLE刪除表,DROP [TEMPORARY] TABLE[IF EXISTS]表名1 [, 表名2] ... [RESTRICT | CASCADE]DROP TABLE用于刪除一個(gè)或多個(gè)表。必須有每個(gè)表的DROP權(quán)限。所有的表數(shù)據(jù)和表定義會(huì)被取消,所以使用本語(yǔ)句要小心!,4. DROP TABLE刪除表,TEMPORARY關(guān)鍵詞具有以下作用:

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論