第2章 MySQL數(shù)據(jù)庫和表_第1頁
第2章 MySQL數(shù)據(jù)庫和表_第2頁
第2章 MySQL數(shù)據(jù)庫和表_第3頁
第2章 MySQL數(shù)據(jù)庫和表_第4頁
第2章 MySQL數(shù)據(jù)庫和表_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章MySQL數(shù)據(jù)庫和表——MySQL數(shù)據(jù)庫MySQL教程(第2版)01創(chuàng)建數(shù)據(jù)庫1.查看數(shù)據(jù)庫2.創(chuàng)建數(shù)據(jù)庫3.設(shè)置當(dāng)前數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫1.查看數(shù)據(jù)庫查看MySQL系統(tǒng)的已有的數(shù)據(jù)庫,輸入命令:showdatabases;系統(tǒng)會列出已有的數(shù)據(jù)庫。MySQL系統(tǒng)使用的數(shù)據(jù)庫3個:information_schema、mysql和performance_schema,它們都是MySQL安裝時系統(tǒng)自動創(chuàng)建的,MySQL把有關(guān)DBMS自身的管理信息都保存在這幾個數(shù)據(jù)庫中,如果刪除了它們,MySQL將不能正常工作。2.創(chuàng)建數(shù)據(jù)庫使用CREATEDATABASE或CREATESCHEMA命令可以創(chuàng)建數(shù)據(jù)庫。創(chuàng)建數(shù)據(jù)庫的語法格式如下:CREATE[IFNOTEXISTS]數(shù)據(jù)庫名[DEFAULT]CHARACTERSET字符集|[DEFAULT]COLLATE校對規(guī)則名創(chuàng)建數(shù)據(jù)庫【例2.1】創(chuàng)建學(xué)生成績數(shù)據(jù)庫,數(shù)據(jù)庫名稱xscj。mysql>createdatabasexscj如果已經(jīng)創(chuàng)建了數(shù)據(jù)庫(例如mytest),重復(fù)創(chuàng)建時系統(tǒng)會提示數(shù)據(jù)庫已經(jīng)存在,系統(tǒng)顯示錯誤信息。使用IFNOTEXISTS選項從句可不顯示錯誤信息,如圖。3.設(shè)置當(dāng)前數(shù)據(jù)庫USE命令的語法格式如下:USE數(shù)據(jù)庫名;例如:指定當(dāng)前數(shù)據(jù)庫為學(xué)生成績數(shù)據(jù)庫(xscj)。mysql>usexscj02修改數(shù)據(jù)庫修改數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫后,如果需要修改數(shù)據(jù)庫的參數(shù),可以使用ALTERDATABASE命令,其他格式與CREATEDATABASE相同?!纠?.2】修改學(xué)生成績數(shù)據(jù)庫(xscj)默認(rèn)字符集和校對規(guī)則。語句及結(jié)果如圖。03刪除數(shù)據(jù)庫刪除數(shù)據(jù)庫用戶已經(jīng)創(chuàng)建的數(shù)據(jù)庫需要刪除,可以使用DROPDATABASE命令。語法格式如下:DROPDATABASE[IFEXISTS]數(shù)據(jù)庫名這里,還可以使用IFEXISTS子句,避免刪除不存在的數(shù)據(jù)庫時出現(xiàn)MySQL錯誤信息。第2章MySQL數(shù)據(jù)庫和表——MySQL表01創(chuàng)

表1.全新創(chuàng)建2.復(fù)制已有表創(chuàng)建創(chuàng)

表1.全新創(chuàng)建語法格式如下:CREATETABLE[IFNOTEXISTS]表名([列定義]...|[表索引定義])[表選項][select語句];創(chuàng)

表【例2.3】在學(xué)生成績數(shù)據(jù)庫(xscj)中也創(chuàng)建一個學(xué)生情況表,表名xs。(1)輸入以下命令:usexscjcreatetablexs(

學(xué)號 char(6) notnullprimarykey,

姓名 char(8) notnull,

專業(yè)名 char(10) null,

性別 tinyint(1) notnulldefault1,

出生日期 date notnull,

總學(xué)分 tinyint(1) null,

照片 blob null,

備注 text null);創(chuàng)

表(2)用showtables命令顯示xscj數(shù)據(jù)庫中產(chǎn)生的學(xué)生(xs)表,用describexs命令可以顯示xs表的結(jié)構(gòu),如圖。創(chuàng)

表2.復(fù)制已有表創(chuàng)建如果創(chuàng)建的表與已有表相似,用戶也可直接復(fù)制數(shù)據(jù)庫中已有表的結(jié)構(gòu)和數(shù)據(jù),然后對表進行修改。語法格式如下:CREATETABLE[IFNOTEXISTS]表名[LIKE已有表名]|[AS(復(fù)制表記錄)];【例2.4】在mytest數(shù)據(jù)庫中,用復(fù)制的方式創(chuàng)建一個名為user_copy1的表,表結(jié)構(gòu)直接取自user表;另再創(chuàng)建一個名為user_copy2的表,其結(jié)構(gòu)和內(nèi)容(數(shù)據(jù))都取自user表。(1)用user表創(chuàng)建新表。USEmytestcreatetableuser_copy1likeuser;CREATETABLEuser_copy2AS(SELECT*FROMuser);創(chuàng)

表執(zhí)行過程及結(jié)果,如圖。創(chuàng)

表(2)查詢發(fā)現(xiàn)user_copy1表中沒有記錄,而user_copy2表中包含user表中所有記錄,如圖。02修改

表1.修改表結(jié)構(gòu)2.更改表名修

表1.修改表結(jié)構(gòu)語法格式如下:ALTERTABLE表名 ADD列定義[FIRST|AFTER列名] MODIFY列定義 ALTER列名{SETDEFAULT值|DROPDEFAULT} CHANGE列名原列名 DROP列名 RENAME[TO]新表名【例2.5】在xscj數(shù)據(jù)庫的xs表中,增加“獎學(xué)金等級”一列,并將表中的“姓名”列刪除。USExscjALTERTABLExs ADD獎學(xué)金等級tinyintNULL, DROPCOLUMN姓名;修

表2.更改表名除了上面的ALTERTABLE命令,還可以直接用RENAMETABLE語句來更改表的名字。RENAMETABLE的語法格式如下:RENAMETABLE老表名TO新表名...【例2.6】將mytest數(shù)據(jù)庫中的user_copy1表重命名為user1,user_copy2表重命名為user2,再將user2表更名為userb。RENAMETABLEuser_copy1TOuser1,user_copy2TOuser2;ALTERTABLEuser2RENAMETOuserb;03刪除

表1.修改表結(jié)構(gòu)2.更改表名刪

表語法格式如下:DROPTABLE[IFEXISTS]表名...使用這個命令將表的描述、表的完整性約束、索引及和表相關(guān)的權(quán)限等一并刪除?!纠?.7】刪除表uesrb。DROPTABLEIFEXISTSuserb;第2章MySQL數(shù)據(jù)庫和表——表記錄的操作01插入記錄1.插入新記錄2.已有表中插入新記錄3.插入圖片插入記錄1.插入新記錄語法格式如下:INSERT[INTO]表名 [(列名,...)]VALUES({expr|DEFAULT},...) |SET列名={EXPR|DEFAULT},...【例2.8】向?qū)W生成績數(shù)據(jù)庫(xscj)的表xs(表中列包括學(xué)號、姓名、專業(yè)名、性別、出生日期、總學(xué)分、照片、備注)中插入如下一行:221101,王林,計算機,1,2004-02-10,15,NULL,NULL使用下列語句:USExscjINSERTINTOxs VALUES('221101','王林','計算機',1,'2004-02-10',15,NULL,NULL);插入記錄若表xs中專業(yè)列的默認(rèn)值為“計算機”,照片、備注列的默認(rèn)值為NULL,插入例中那行數(shù)據(jù)也可以使用如下命令:INSERTINTOxs(學(xué)號,姓名,性別,出生日期,總學(xué)分) VALUES('221101','王林',1,'2004-02-10',15);與下面這個命令的效果相同:INSERTINTOxs VALUES('221101','王林',default,1,'2004-02-10',15,NULL,NULL);當(dāng)然,也可以使用SET子句來實現(xiàn):INSERTINTOxs SET學(xué)號='221101',姓名='王林',專業(yè)名=default,性別=1,出生日期='2004-02-10',總學(xué)分=15;執(zhí)行結(jié)果如圖。插入記錄2.已有表中插入新記錄語法格式如下:INSERT[INTO]表名[(列名,...)]SELECT語句【例2.9】將mytest數(shù)據(jù)庫中的user表記錄插入user1表中。USEmytestINSERTINTOuser1SELECT*FROMuser;命令執(zhí)行前后的效果如圖。

插入記錄3.插入圖片MySQL還支持圖片的插入,圖片一般可以以路徑的形式來存儲。當(dāng)然也可以直接插入圖片本身,只要用LOAD_FILE()函數(shù)即可?!纠?.10】向xs表中插入如下一行記錄:221102,程明,計算機,1,2005-02-01,15,picture.jpg,NULL其中,圖片路徑為D:\IMAGE\picture.jpg,可使用如下語句:INSERTINTOxs VALUES('221102','程明','計算機',1,'2005-02-01',15,'D:\IMAGE\picture.jpg',NULL);也可使用這個語句直接存儲圖片本身:INSERTINTOxs VALUES('221102','程明','計算機',1,'2005-02-01',15,load_file('D:\IMAGE\picture.jpg'),NULL);執(zhí)行結(jié)果如圖。02修改記錄1.替換舊記錄2.修改單個表3.修改多個表修改記錄1.替換舊記錄使用REPLACE語句除了可以插入表中不存在的記錄,同時可以替換已經(jīng)存在的舊記錄。REPLACE語句格式與INSERT的相同?!纠?.11】若例2.10中的記錄行已經(jīng)被插入,其中學(xué)號為主鍵(PRIMARYKEY),現(xiàn)在想再插入下列一行記錄:221101,劉華,通信工程,1,2004-06-10,13,NULL,NULL若直接使用INSERT語句,會產(chǎn)生圖所示錯誤。使用REPLACE語句,則可以成功插入,如圖。修改記錄2.修改單個表語法格式如下:UPDATE[LOW_PRIORITY][IGNORE]表名 SET列名1=expr1[,列名2=expr2...] [WHERE條件]【例2.12】將學(xué)生成績數(shù)據(jù)庫(xscj)的學(xué)生(xs)表中的所有學(xué)生的總學(xué)分都增加10。將姓名為“劉華”的學(xué)生的備注填寫為“輔修計算機專業(yè)”,學(xué)號改為“221201”。UPDATExs SET總學(xué)分=總學(xué)分+10;UPDATExs SET學(xué)號='221201',備注='輔修計算機專業(yè)’ WHERE姓名='劉華';SELECT學(xué)號,姓名,總學(xué)分,備注FROMxs;執(zhí)行結(jié)果如圖。修改記錄3.修改多個表語法格式如下:UPDATE表名,表名... SET列名1=expr1[,列名2=expr2...] [WHERE條件]【例2.13】mytest數(shù)據(jù)庫的表user和表userb中都有兩列idint(11)、passwordchar(8),其中id為主鍵。當(dāng)表user中id值與userb中id值相同時,將表user中對應(yīng)的password值修改為“11111111”,將表userb中對應(yīng)的password值改為“22222222”。USEmytestUPDATEuser,userbSETuser.password='11111111',userb.password='22222222’ WHEREuser.id=userb.id;修改后的結(jié)果如圖。

03刪除記錄1.從單個表中刪除記錄2.從多個表中刪除記錄3.清除表數(shù)據(jù)刪除記錄1.從單個表中刪除記錄語法格式如下:DELETEFROM

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論