mysql數(shù)據(jù)庫實用教程 第二章 鄭阿奇主_第1頁
mysql數(shù)據(jù)庫實用教程 第二章 鄭阿奇主_第2頁
mysql數(shù)據(jù)庫實用教程 第二章 鄭阿奇主_第3頁
mysql數(shù)據(jù)庫實用教程 第二章 鄭阿奇主_第4頁
mysql數(shù)據(jù)庫實用教程 第二章 鄭阿奇主_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2.1 命令行方式創(chuàng)建數(shù)據(jù)庫和表命令行方式創(chuàng)建數(shù)據(jù)庫和表2.2 界面創(chuàng)建數(shù)據(jù)庫和表界面創(chuàng)建數(shù)據(jù)庫和表2.3 有關(guān)表結(jié)構(gòu)有關(guān)表結(jié)構(gòu) 2.1.1 創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫1. 創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫使用使用CREATE DATABASE或或CREATE SCHEMA命令可以創(chuàng)建數(shù)據(jù)庫。命令可以創(chuàng)建數(shù)據(jù)庫。語法格式:語法格式:CREATE DATABASE | SCHEMA IF NOT EXISTS db_namecreate_specification , create_specification .其中其中create_specification: DEFAULT CHARACTER SET cha

2、rset_name| DEFAULT COLLATE collation_name說明:語句中說明:語句中“ ”內(nèi)為可選項。內(nèi)為可選項。 db_name:數(shù)據(jù)庫名。在文件系統(tǒng)中,:數(shù)據(jù)庫名。在文件系統(tǒng)中,MySQL的數(shù)據(jù)存儲區(qū)將以目錄方式表示的數(shù)據(jù)存儲區(qū)將以目錄方式表示MySQL數(shù)據(jù)庫。因此,命令中的數(shù)據(jù)庫名字必數(shù)據(jù)庫。因此,命令中的數(shù)據(jù)庫名字必須符合操作系統(tǒng)文件夾命名規(guī)則。值得注意的是:須符合操作系統(tǒng)文件夾命名規(guī)則。值得注意的是:在在MySQL中是不區(qū)分大小寫的。中是不區(qū)分大小寫的。 IF NOT EXISTS:在建數(shù)據(jù)庫前進行判斷,:在建數(shù)據(jù)庫前進行判斷,只有該數(shù)據(jù)庫目前尚不存在時才執(zhí)行只

3、有該數(shù)據(jù)庫目前尚不存在時才執(zhí)行CREATE DATABASE操作。用此選項可以避免出現(xiàn)數(shù)據(jù)操作。用此選項可以避免出現(xiàn)數(shù)據(jù)庫已經(jīng)存在而再新建的錯誤。庫已經(jīng)存在而再新建的錯誤。 DEFAULT:指定默認值。:指定默認值。 CHARACTER SET:指定數(shù)據(jù)庫字符集:指定數(shù)據(jù)庫字符集(Charset),),charset_name為字符集名稱。為字符集名稱。 COLLATE:指定字符集的校對規(guī)則,:指定字符集的校對規(guī)則,collation_name為校對規(guī)則名稱(字符集和校對為校對規(guī)則名稱(字符集和校對規(guī)則的概念見附錄規(guī)則的概念見附錄D)。)?!纠?.1】 創(chuàng)建一個名為創(chuàng)建一個名為test1的數(shù)

4、據(jù)庫。的數(shù)據(jù)庫。MySQL不允許兩個數(shù)據(jù)庫使用相同的名字,使不允許兩個數(shù)據(jù)庫使用相同的名字,使用用IF NOT EXISTS從句可以不顯示錯誤信息,例從句可以不顯示錯誤信息,例如:如:為了表達問題簡單,在以后的示例中單獨描述命為了表達問題簡單,在以后的示例中單獨描述命令而不需要界面結(jié)果時,在命令前省略令而不需要界面結(jié)果時,在命令前省略“mysql”提示符。提示符。創(chuàng)建了數(shù)據(jù)庫之后使用創(chuàng)建了數(shù)據(jù)庫之后使用USE命令可指定當前數(shù)據(jù)命令可指定當前數(shù)據(jù)庫。庫。語法格式:語法格式:USE db_name;說明:這個語句也可以用來從一個數(shù)據(jù)庫說明:這個語句也可以用來從一個數(shù)據(jù)庫“跳轉(zhuǎn)跳轉(zhuǎn)”到另一個數(shù)據(jù)庫,

5、在用到另一個數(shù)據(jù)庫,在用CREATE DATABASE語句語句創(chuàng)建了數(shù)據(jù)庫之后,該數(shù)據(jù)庫不會自動成為當前數(shù)創(chuàng)建了數(shù)據(jù)庫之后,該數(shù)據(jù)庫不會自動成為當前數(shù)據(jù)庫,需要用這條據(jù)庫,需要用這條USE語句來指定。語句來指定。注意:在注意:在MySQL中,每一條中,每一條SQL語句都以語句都以“;”作為結(jié)束標志。作為結(jié)束標志。2. 修改數(shù)據(jù)庫修改數(shù)據(jù)庫數(shù)據(jù)庫創(chuàng)建后,如果需要修改數(shù)據(jù)庫的參數(shù),可數(shù)據(jù)庫創(chuàng)建后,如果需要修改數(shù)據(jù)庫的參數(shù),可以使用以使用ALTER DATABASE命令。命令。語法格式:語法格式:ALTER DATABASE | SCHEMA db_name alter_specification

6、, alter_specification .其中其中alter_specification:DEFAULT CHARACTER SET charset_name | DEFAULT COLLATE collation_name說明:說明:ALTER DATABASE用于更改數(shù)據(jù)庫的全局特用于更改數(shù)據(jù)庫的全局特性,這些特性儲存在數(shù)據(jù)庫目錄中的性,這些特性儲存在數(shù)據(jù)庫目錄中的db.opt文件中。文件中。用戶必須有對數(shù)據(jù)庫進行修改的權(quán)限,才可以使用用戶必須有對數(shù)據(jù)庫進行修改的權(quán)限,才可以使用 ALTER DATABASE。修改數(shù)據(jù)庫的選項與創(chuàng)建。修改數(shù)據(jù)庫的選項與創(chuàng)建數(shù)據(jù)庫相同,功能不再重復(fù)說明。

7、如果語句中數(shù)據(jù)數(shù)據(jù)庫相同,功能不再重復(fù)說明。如果語句中數(shù)據(jù)庫名稱忽略,則修改當前(默認)數(shù)據(jù)庫。庫名稱忽略,則修改當前(默認)數(shù)據(jù)庫?!纠?.2】 修改數(shù)據(jù)庫修改數(shù)據(jù)庫mydata(假設(shè)(假設(shè)mydata已經(jīng)創(chuàng)建)的默認字符集和校對規(guī)則。已經(jīng)創(chuàng)建)的默認字符集和校對規(guī)則。ALTER DATABASE mydataDEFAULT CHARACTER SET gb2312DEFAULT COLLATE gb2312_chinese_ci;3. 刪除數(shù)據(jù)庫刪除數(shù)據(jù)庫已經(jīng)創(chuàng)建的數(shù)據(jù)庫需要刪除,使用已經(jīng)創(chuàng)建的數(shù)據(jù)庫需要刪除,使用DROP DATABASE命令。命令。語法格式:語法格式:DROP DAT

8、ABASE IF EXISTS db_name其中,其中,db_name是要刪除的數(shù)據(jù)庫名。可以使是要刪除的數(shù)據(jù)庫名。可以使用用IF EXISTS子句以避免刪除不存在的數(shù)據(jù)庫時出子句以避免刪除不存在的數(shù)據(jù)庫時出現(xiàn)的現(xiàn)的MySQL錯誤信息。示例如下:錯誤信息。示例如下:注意:這個命令必須小心使用,因為它將刪除指定注意:這個命令必須小心使用,因為它將刪除指定的整個數(shù)據(jù)庫,該數(shù)據(jù)庫的所有表(包括其中的數(shù)據(jù))的整個數(shù)據(jù)庫,該數(shù)據(jù)庫的所有表(包括其中的數(shù)據(jù))也將永久刪除。也將永久刪除。創(chuàng)建表使用創(chuàng)建表使用CREATE TABLE命令。命令。語法格式:語法格式:CREATE TEMPORARY TABLE

9、 IF NOT EXISTS tbl_name ( column_definition , . | index_definition ) table_option select_statement; 說明:說明: TEMPORARY:該關(guān)鍵字表示用:該關(guān)鍵字表示用CREATE命令新建的表為臨時表。不加該關(guān)鍵字創(chuàng)建的表通常命令新建的表為臨時表。不加該關(guān)鍵字創(chuàng)建的表通常稱為持久表,在數(shù)據(jù)庫中持久表一旦創(chuàng)建將一直存在,稱為持久表,在數(shù)據(jù)庫中持久表一旦創(chuàng)建將一直存在,多個用戶或者多個應(yīng)用程序可以同時使用持久表。有多個用戶或者多個應(yīng)用程序可以同時使用持久表。有時候需要臨時存放數(shù)據(jù),例如,臨時存儲復(fù)雜的時

10、候需要臨時存放數(shù)據(jù),例如,臨時存儲復(fù)雜的SELECT語句的結(jié)果。此后,可能要重復(fù)地使用這語句的結(jié)果。此后,可能要重復(fù)地使用這個結(jié)果,但這個結(jié)果又不需要永久保存。這時,可以個結(jié)果,但這個結(jié)果又不需要永久保存。這時,可以使用臨時表。用戶可以像操作持久表一樣操作臨時表。使用臨時表。用戶可以像操作持久表一樣操作臨時表。只不過臨時表的生命周期較短,而且只能對創(chuàng)建它的只不過臨時表的生命周期較短,而且只能對創(chuàng)建它的用戶可見,當斷開與該數(shù)據(jù)庫的連接時,用戶可見,當斷開與該數(shù)據(jù)庫的連接時,MySQL會會自動刪除它們。自動刪除它們。 IF NOT EXISTS:在建表前加上一個判斷,:在建表前加上一個判斷,只有該

11、表目前尚不存在時才執(zhí)行只有該表目前尚不存在時才執(zhí)行CREATE TABLE操作。用此選項可以避免出現(xiàn)表已經(jīng)存在無法再新建操作。用此選項可以避免出現(xiàn)表已經(jīng)存在無法再新建的錯誤。的錯誤。 table_name:要創(chuàng)建的表的表名。該表名:要創(chuàng)建的表的表名。該表名必須符合標志符規(guī)則,如果有必須符合標志符規(guī)則,如果有MySQL保留字必須用保留字必須用單引號括起來。單引號括起來。 column_definition:列定義,包括列名、:列定義,包括列名、數(shù)據(jù)類型,可能還有一個空值聲明和一個完整性約束。數(shù)據(jù)類型,可能還有一個空值聲明和一個完整性約束。 index_definition:表索引項定義,主要定:

12、表索引項定義,主要定義表的索引、主鍵、外鍵等,具體定義將在第義表的索引、主鍵、外鍵等,具體定義將在第5章中章中討論。討論。 table_option:用于描述表的選項。:用于描述表的選項。 select_statement:可以在:可以在CREATE TABLE語句的末尾添加一個語句的末尾添加一個SELECT語句,在一語句,在一個表的基礎(chǔ)上創(chuàng)建表。個表的基礎(chǔ)上創(chuàng)建表。列定義列定義column_definition格式如下:格式如下:col_name type NOT NULL | NULL DEFAULT default_value AUTO_INCREMENT UNIQUE KEY | PR

13、IMARY KEY COMMENT string reference_definition說明說明: col_name:表中列的名字。列名必須符合標志:表中列的名字。列名必須符合標志符規(guī)則,長度不能超過符規(guī)則,長度不能超過64個字符,而且在表中要唯一。個字符,而且在表中要唯一。如果有如果有MySQL保留字必須用單引號括起來。保留字必須用單引號括起來。 type:列的數(shù)據(jù)類型,有的數(shù)據(jù)類型需要指明:列的數(shù)據(jù)類型,有的數(shù)據(jù)類型需要指明長度長度n,并用括號括起,并用括號括起,MySQL支持的數(shù)據(jù)類型在附支持的數(shù)據(jù)類型在附錄錄C中介紹。中介紹。 AUTO_INCREMENT:設(shè)置自增屬性,只有:設(shè)置自

14、增屬性,只有整型列才能設(shè)置此屬性。當插入整型列才能設(shè)置此屬性。當插入NULL值或值或0到一個到一個AUTO_INCREMENT列中時,列被設(shè)置為列中時,列被設(shè)置為value+1,在這里在這里value是此前表中該列的最大值。是此前表中該列的最大值。AUTO_INCREMENT順序從順序從1開始。每個表只能有一開始。每個表只能有一個個AUTO_INCREMENT列,并且它必須被索引。列,并且它必須被索引。 NOT NULL | NULL:指定該列是否允許:指定該列是否允許為空。如果不指定,則默認為為空。如果不指定,則默認為NULL。 DEFAULT default_value:為列指定默:為列指

15、定默認值,默認值必須為一個常數(shù)。其中,認值,默認值必須為一個常數(shù)。其中,BLOB和和TEXT列不能被賦予默認值。如果沒有為列指定默列不能被賦予默認值。如果沒有為列指定默認值,認值,MySQL自動地分配一個。如果列可以取自動地分配一個。如果列可以取NULL值,默認值就是值,默認值就是NULL。如果列被聲明為。如果列被聲明為NOT NULL,默認值取決于列類型:,默認值取決于列類型:(1)對于沒有聲明)對于沒有聲明AUTO_INCREMENT屬性屬性的數(shù)字類型,默認值是的數(shù)字類型,默認值是0。對于一個。對于一個AUTO_INCREMENT列,默認值是在順序中的下列,默認值是在順序中的下一個一個值。

16、值。(2)對于除)對于除TIMESTAMP以外的日期和時間類型,以外的日期和時間類型,默認值是該類型適當?shù)哪J值是該類型適當?shù)摹傲懔恪敝怠τ诒碇械谝粋€值。對于表中第一個TIMESTAMP列,默認值是當前的日期和時間。列,默認值是當前的日期和時間。(3)對于除)對于除ENUM的字符串類型,默認值是空字符的字符串類型,默認值是空字符串。對于串。對于ENUM,默認值是第一個枚舉值。,默認值是第一個枚舉值。 UNIQUE KEY | PRIMARY KEY:PRIMARY KEY和和UNIQUE KEY都表示字段中的值都表示字段中的值是唯一的。是唯一的。PRIMARY KEY表示設(shè)置為主鍵,一個表表

17、示設(shè)置為主鍵,一個表只能定義一個主鍵,主鍵一定要為只能定義一個主鍵,主鍵一定要為NOT NULL。 COMMENT string:對于列的描述,:對于列的描述,string是描述的內(nèi)容。是描述的內(nèi)容。 reference_definition:指定參照的表和列,:指定參照的表和列,具體定義在第具體定義在第5章參照完整性中介紹。章參照完整性中介紹。type定義定義如下:如下:說明:以上是各種數(shù)據(jù)類型的定義格式,值得注意的說明:以上是各種數(shù)據(jù)類型的定義格式,值得注意的是,在字符數(shù)據(jù)類型和數(shù)值數(shù)據(jù)類型之后,是,在字符數(shù)據(jù)類型和數(shù)值數(shù)據(jù)類型之后,MySQL允允許指定一個數(shù)據(jù)類型選項用來改變數(shù)據(jù)類型的屬

18、性和功許指定一個數(shù)據(jù)類型選項用來改變數(shù)據(jù)類型的屬性和功能。能。對于字符數(shù)據(jù)類型,對于字符數(shù)據(jù)類型,MySQL支持兩種數(shù)據(jù)類型選項:支持兩種數(shù)據(jù)類型選項:CHARACTER SET和和COLLATE。如果要區(qū)分字符的。如果要區(qū)分字符的大小寫情況,可以在字符類型后面加上大小寫情況,可以在字符類型后面加上BINGARY。對于除對于除BIT以外的數(shù)值數(shù)據(jù)類型,以外的數(shù)值數(shù)據(jù)類型,MySQL允許添加允許添加一個或多個數(shù)據(jù)類型選項。一個或多個數(shù)據(jù)類型選項。UNSIGNED:不允許負值。:不允許負值。ZEROFILL:當插入的值長度小于字段設(shè)定的長度時,:當插入的值長度小于字段設(shè)定的長度時,剩余部分用剩余部

19、分用0填補。填補。spatial_type是空間類型數(shù)據(jù),本書不討論。是空間類型數(shù)據(jù),本書不討論。表選項表選項table_option定義如下:定義如下:ENGINE | TYPE = engine_name/*存儲引擎存儲引擎*/| AUTO_INCREMENT = value/*初始值初始值*/| AVG_ROW_LENGTH = value /*表的平均行長度表的平均行長度*/| DEFAULT CHARACTER SET charset_name COLLATE collation_name/*默認字符集和校對默認字符集和校對*/| CHECKSUM = 0 | 1/*設(shè)置為設(shè)置為1表

20、示求校驗和表示求校驗和*/| COMMENT = string/*注釋注釋*/| CONNECTION = connect_string/*連接字符串連接字符串*/| MAX_ROWS = value/*行的最大數(shù)行的最大數(shù)*/| MIN_ROWS = value/*列的最小數(shù)列的最小數(shù)*/| PACK_KEYS = 0 | 1 | DEFAULT| PASSWORD = string/*對對.frm文件加密文件加密*/| DELAY_KEY_WRITE = 0 | 1/*對關(guān)鍵字的更新對關(guān)鍵字的更新*/| ROW_FORMAT = DEFAULT|DYNAMIC|FIXED|COMPRESS

21、ED|REDUNDANT|COMPACT/*定義各行應(yīng)如何儲存定義各行應(yīng)如何儲存*/| UNION = (tbl_name,tbl_name.)/*表示哪個表應(yīng)該合并表示哪個表應(yīng)該合并*/| INSERT_METHOD = NO | FIRST | LAST /*是否執(zhí)行是否執(zhí)行INSERT語句語句*/| DATA DIRECTORY = absolute path to directory/*數(shù)據(jù)文件的路徑數(shù)據(jù)文件的路徑*/| INDEX DIRECTORY = absolute path to directory/*索引的路徑索引的路徑*/說明:表中大多數(shù)的選項涉及的是表數(shù)據(jù)如何存儲及存儲

22、在說明:表中大多數(shù)的選項涉及的是表數(shù)據(jù)如何存儲及存儲在何處。多數(shù)情況下,不必指定表選項。何處。多數(shù)情況下,不必指定表選項。ENGINE選項是定義表選項是定義表的存儲引擎,具體在附錄的存儲引擎,具體在附錄E中介紹。中介紹?!纠?.3】 設(shè)已經(jīng)創(chuàng)建了數(shù)據(jù)庫設(shè)已經(jīng)創(chuàng)建了數(shù)據(jù)庫XSCJ,在該數(shù)據(jù)庫中創(chuàng)建,在該數(shù)據(jù)庫中創(chuàng)建學(xué)生情況表學(xué)生情況表XS。USE XSCJCREATE TABLE XS( 學(xué)學(xué)號號 char(6) NOT NULL PRIMARY KEY, 姓名姓名 char(8) NOT NULL , 專業(yè)名專業(yè)名 char(10) NOT NULL , 性別性別 tinyint(1) NO

23、T NULL DEFAULT 1 , 出生日期出生日期date NOT NULL , 總學(xué)分總學(xué)分 tinyint NULL , 照片照片 blob NULL, 備注備注 text NULL ) ENGINE=InnoDB;在在上面的例子里,每個字段都包含附加約束或修飾符,這些上面的例子里,每個字段都包含附加約束或修飾符,這些可以用來增加對所輸入數(shù)據(jù)的約束??梢杂脕碓黾訉λ斎霐?shù)據(jù)的約束?!癙RIMARY KEY”表示表示將將“學(xué)號學(xué)號”字段定義為主鍵。字段定義為主鍵?!癉EFAULT 1”表示表示“性別性別”的默認值為的默認值為1。“ENGINE=InnoDB”表示采用的存儲引擎表示采用的存

24、儲引擎是是InnoDB,InnoDB是是MySQL在在Windows平臺默認的存平臺默認的存儲引擎,所以儲引擎,所以“ENGINE=InnoDB”可以省略??梢允÷?。2. 修改表ALTER TABLE用于更改原有表的結(jié)構(gòu)。例如,可以增加或刪減列,創(chuàng)建或取消索引,更改原有列的類型,重新命名列或表,還可以更改表的評注和表的類型。語法格式:ALTER IGNORE TABLE tbl_name alter_specification , alter_specification .alter_specification: ADD COLUMN column_definition FIRST | AFT

25、ER col_name /*添加列*/ | ALTER COLUMN col_name SET DEFAULT literal | DROP DEFAULT/*修改默認值*/ | CHANGE COLUMN old_col_name column_definition /*對列重命名*/ FIRST|AFTER col_name | MODIFY COLUMN column_definition FIRST | AFTER col_name /*修改列類型*/ | DROP COLUMN col_name/*刪除列*/ | RENAME TO new_tbl_name/*重命名該表*/ | O

26、RDER BY col_name/*排序*/ | CONVERT TO CHARACTER SET charset_name COLLATE collation_name /*將字符集轉(zhuǎn)換為 二進制*/ | DEFAULT CHARACTER SET charset_name COLLATE collation_name/*修改默認字符集*/ | table_options | 列或表中索引項的增、刪、改(見第5章索引部分)說明: tb1_name:表名。 col_name:指定的列名。 IGNORE:是MySQL相對于標準SQL的擴展。若在修改后的新表中存在重復(fù)關(guān)鍵字,如果沒有指定IGNOR

27、E,當重復(fù)關(guān)鍵字錯誤發(fā)生時操作失敗。如果指定了IGNORE,則對于有重復(fù)關(guān)鍵字的行只使用第一行,其他有沖突的行被刪除。 column_definition:定義列的數(shù)據(jù)類型和屬性,具體內(nèi)容在CREATE TABLE的語法中已做說明。 ADDCOLUMN子句:向表中增加新列。例如,在表t1中增加新的一列a:ALTER TABLE t1 ADD COLUMN a TINYINT NULL ; FIRST | AFTER col_name:表示在某列的前或后添加,不指定則添加到最后。 ALTER COLUMN子句:修改表中指定列的默認值。 CHANGE COLUMN子句:修改列的名稱。重命名時,需給

28、定舊的和新的列名稱和列當前的類型,old_col_name表示舊的列名。column_definition中定義新的列名和當前數(shù)據(jù)類型。例如,要把一個INTEGER列的名稱從a變更到b:ALTER TABLE t1 CHANGE a b INTEGER; MODIFY COLUMN子句:修改指定列的類型。例如,要把一個列的數(shù)據(jù)類型改為BIGINT:ALTER TABLE t1 MODIFY b BIGINT NOT NULL;注意,若表中該列所存數(shù)據(jù)的數(shù)據(jù)類型與將要修改的列的類型沖突,則發(fā)生錯誤。例如,原來CHAR類型的列要修改成INT類型,而原來列值中有字符型數(shù)據(jù)“a”,則無法修改。 DRO

29、P子句:從表中刪除列或約束。 RENAME子句:修改該表的表名,new_tbl_name是新表名。例如,將表a改名為b:ALTER TABLE a RENAME TO b ; ORDER BY子句:用于在創(chuàng)建新表時,讓各行按一定的順序排列。注意,在插入和刪除后,表不會仍保持此順序。在對表進行了大的改動后,通過使用此選項,可以提高查詢效率。在有些情況下,如果表按列排序,對于MySQL來說,排序可能會更簡單。ORDER BY子句會在第4章中具體介紹。 table_options:修改表選項,具體定義與CREATE TABLE語句中一樣??梢栽谝粋€ALTER TABLE語句里寫入多個ADD、ALTE

30、R、DROP和CHANGE子句,中間用逗號分開。這是MySQL相對于標準SQL的擴展。在標準SQL中,每個ALTER TABLE語句中每個子句只允許使用一次?!纠?.4】 假設(shè)已經(jīng)在數(shù)據(jù)庫XSCJ中創(chuàng)建了表XS,表中存在“姓名”列。在表XS中增加“獎學(xué)金等級”列并將表中的“姓名”列刪除。USE XSCJALTER TABLE XS ADD 獎學(xué)金等級 tinyint NULL , DROP COLUMN 姓名 ;3. 修改表名除了上面的ALTER TABLE命令,還可以直接用RENAME TABLE語句來更改表的名字。語法格式:RENAME TABLE tbl_name TO new_tbl_

31、name , tbl_name2 TO new_tbl_name2 .說明: tbl_name:修改之前的表名。 new_tbl_name:修改之后的表名?!纠?.5】 假設(shè)數(shù)據(jù)庫XSCJ中已經(jīng)存在table1表和table2表,將table1表重命名為student,table2表重命名為course。USE XSCJRENAME TABLE table1 TO student, table2 TO course;4. 復(fù)制表語法格式:CREATE TEMPORARY TABLE IF NOT EXISTS tbl_name ( ) LIKE old_tbl_name | AS (selec

32、t_statement);說明:使用LIKE關(guān)鍵字創(chuàng)建一個與old_table_name表相同結(jié)構(gòu)的新表,列名、數(shù)據(jù)類型、空指定和索引也將復(fù)制,但是表的內(nèi)容不會復(fù)制,因此創(chuàng)建的新表是一個空表。使用AS關(guān)鍵字可以復(fù)制表的內(nèi)容,但索引和完整性約束是不會復(fù)制的。select_statement表示一個表達式,例如,可以是一條SELECT語句?!纠?.6】 假設(shè)數(shù)據(jù)庫XSCJ中有一個表test,創(chuàng)建test表的一個名為test_copy1的拷貝。CREATE TABLE test_copy1 LIKE test;【例2.7】 創(chuàng)建表test的一個名為test_copy2的拷貝,并且復(fù)制其內(nèi)容。CREA

33、TE TABLE test_copy2 AS (SELECT * FROM test);5. 刪除表需要刪除一個表時可以使用DROP TABLE語句。語法格式:DROP TEMPORARY TABLE IF EXISTS tbl_name , tbl_name .其中,tb1_name:要被刪除的表名。IF EXISTS:避免要刪除的表不存在時出現(xiàn)錯誤信息。這個命令將表的描述、表的完整性約束、索引及和表相關(guān)的權(quán)限等都全部刪除?!纠?.8】 刪除表test。USE XSCJDROP TABLE IF EXISTS test ;2.2.1 創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫的必須是系統(tǒng)管理員,或者擁有

34、用戶級別的CREATE權(quán)限。在安裝MySQL的過程中已經(jīng)創(chuàng)建了系統(tǒng)管理員,名為root,假設(shè)密碼為123456?!纠?.9】 創(chuàng)建一個學(xué)生成績數(shù)據(jù)庫XSCJ(假設(shè)在這之前已經(jīng)將XSCJ數(shù)據(jù)庫刪除)。創(chuàng)建XSCJ數(shù)據(jù)庫步驟如下:(1)“開始”“程序”“MySQL”“MySQLAdministrator”,如圖2.1所示,Server host為“l(fā)ocalhost”,Username為“root”,輸入密碼,單擊“OK”按鈕。 主機名 用戶名 密碼 圖2.1 登錄MySQL Administrator(2)在MySQL Administrator窗口中展開“Catalogs”選項欄,出現(xiàn)如圖2.

35、2所示的數(shù)據(jù)庫列表,在任意一個數(shù)據(jù)庫名上右擊鼠標,選擇“Create New Schema”子選項。 Catalogs 選項欄 數(shù)據(jù)庫列表 創(chuàng)建新表 圖2.2 選擇創(chuàng)建數(shù)據(jù)庫選項(3)出現(xiàn)如圖2.3所示的界面,輸入需要創(chuàng)建的數(shù)據(jù)庫名XSCJ,單擊“OK”按鈕。這樣數(shù)據(jù)庫XSCJ就創(chuàng)建成功了。圖2.3 輸入數(shù)據(jù)庫名 在數(shù)據(jù)庫中創(chuàng)建表,步驟如下:(1)在MySQL Administrator窗口中展開Catalogs選項欄,鼠標單擊指定數(shù)據(jù)庫,在右方的快捷選單上選擇“Create New Table”子菜單,或者直接單擊“Create Table”按鈕。(2)在彈出的“MySQL Table Editor”窗口中填寫表名(這里以KC表為例),在“Columns and Indices”子選框中填寫表的各列及數(shù)據(jù)類型,如圖2.4所示,單擊“Apply Changes”按鈕。在彈出的“Confirm Table Editor”對話框中單擊“Execute”按鈕,即可成功創(chuàng)建表KC。說明:創(chuàng)建完KC表之后,使用相同的方法創(chuàng)建附錄A中的其他兩個表,這里不再重復(fù)說明。 輸入表名 列名 列類型 圖2.4 創(chuàng)建表的各列及數(shù)據(jù)類型 如果要在數(shù)據(jù)庫中刪除表,步驟如下:(1)MySQL Administrator窗口中展開“Catalogs”欄,選擇數(shù)據(jù)庫(如XSCJ),在右方的快捷選單上右擊KC表,選

溫馨提示

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

評論

0/150

提交評論