版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
PHP+MySQL開發(fā)實例教程ISBN號:978-7-5083-7194-8作者:毛書朋聶慶鵬653工程指定教材第7章MYSQL數(shù)據(jù)庫與結(jié)構(gòu)化查詢語言(SQL)7.1MYSQL數(shù)據(jù)庫系統(tǒng)簡介7.2MYSQL的安裝與初始化設(shè)置7.3MYSQL中的數(shù)據(jù)類型7.4結(jié)構(gòu)化查詢語言(SQL)7.5MYSQL用戶管理7.6MYSQL可視化管理工具——PHPMyAdmin
7.7邊學(xué)邊做:MySQL安裝與使用綜合練習(xí)7.8本章小結(jié)7.9練習(xí)題7.1MYSQL數(shù)據(jù)庫系統(tǒng)簡介7.1.1Web開發(fā)與數(shù)據(jù)庫動態(tài)網(wǎng)站開發(fā)離不開數(shù)據(jù)存儲,數(shù)據(jù)存儲則離不開數(shù)據(jù)庫。在前面的章節(jié)中,我們曾做過一個例子,將注冊用戶的信息存儲在一個文本文件中,可以在以后取用。這使得網(wǎng)站可以增加很多交互性因素。但是文本文件并不是存儲數(shù)據(jù)的最理想方法。數(shù)據(jù)庫技術(shù)的引入是給網(wǎng)站開發(fā)帶來的巨大的飛躍。7.1MYSQL數(shù)據(jù)庫系統(tǒng)簡介7.1.1Web開發(fā)與數(shù)據(jù)庫所謂數(shù)據(jù)庫,可以理解為用來存儲信息的“倉庫”。而“信息”就是我們要存儲下來的一些數(shù)據(jù)。比如用戶的姓名、年齡,產(chǎn)品的價格、簡介,某一個日期時間甚至圖像等等??傊磺锌梢栽谟嬎銠C中存儲下來的數(shù)據(jù)都可以通過各種方法存儲到數(shù)據(jù)庫中。7.1MYSQL數(shù)據(jù)庫系統(tǒng)簡介7.1.1Web開發(fā)與數(shù)據(jù)庫信息并不是雜亂無章的直接放入數(shù)據(jù)庫,而是以二維表的形式組織起來,一條一條存儲于表中。這和我們?nèi)粘I钪薪?jīng)常用到的各種表格形式上是一致的。表中的每一條信息稱為一條“記錄”。一個數(shù)據(jù)庫中可以有若干張表,每張表中又可以存放若干條記錄。比如前面講到的用戶注冊程序,每一個用戶的信息,比如用戶名、密碼、頭像等,就可以作為一條記錄,存儲在一張表中。7.1MYSQL數(shù)據(jù)庫系統(tǒng)簡介7.1.1Web開發(fā)與數(shù)據(jù)庫學(xué)號姓名性別年齡001張三男18002李四女19003王五男20…………7.1MYSQL數(shù)據(jù)庫系統(tǒng)簡介7.1.1Web開發(fā)與數(shù)據(jù)庫那么把數(shù)據(jù)以這種形式存放在數(shù)據(jù)庫中能給我們帶來什么好處呢?采取數(shù)據(jù)庫技術(shù)可以給數(shù)據(jù)的存儲和檢索帶來巨大好處,主要可以歸納為以下四點:數(shù)據(jù)存儲集約化,最大限度節(jié)省存儲空間。數(shù)據(jù)庫專門的檢索引擎能夠極大提高數(shù)據(jù)檢索速度。數(shù)據(jù)庫結(jié)構(gòu)化查詢語言(SQL)給數(shù)據(jù)管理帶來了極大便利??梢苑奖愕貙?shù)據(jù)進(jìn)行查詢、增加、刪除、修改。7.1MYSQL數(shù)據(jù)庫系統(tǒng)簡介7.1.1Web開發(fā)與數(shù)據(jù)庫當(dāng)前市場上的數(shù)據(jù)庫有幾十種,其中有如Oracle、SQLServer等大型網(wǎng)絡(luò)數(shù)據(jù)庫,也有如Access、VFP等小型桌面數(shù)據(jù)庫。對于網(wǎng)站開發(fā)而言,一般來說中小型數(shù)據(jù)庫系統(tǒng)就能滿足要求。Mysql就是當(dāng)前Web開發(fā)中尤其是PHP開發(fā)中使用最為廣泛的數(shù)據(jù)庫。
7.1MYSQL數(shù)據(jù)庫系統(tǒng)簡介7.1.2Mysql數(shù)據(jù)庫簡介MySQL是MYSQLAB公司開的一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),MySQL數(shù)據(jù)庫系統(tǒng)使用最常用的數(shù)據(jù)庫管理語言——結(jié)構(gòu)化查詢語言(SQL)進(jìn)行數(shù)據(jù)庫管理。由于MySQL是開放源代碼的,因此任何人都可以在GeneralPublicLicense的許可下下載并根據(jù)個性化的需要對其進(jìn)行修改。MySQL因為其速度、可靠性和適應(yīng)性而備受關(guān)注。大多數(shù)人都認(rèn)為在不需要事務(wù)化處理的情況下,MySQL是管理內(nèi)容最好的選擇。7.1MYSQL數(shù)據(jù)庫系統(tǒng)簡介7.1.2Mysql數(shù)據(jù)庫簡介
MySQL關(guān)系型數(shù)據(jù)庫于1998年1月發(fā)行第一個版本。它使用系統(tǒng)核心提供的多線程機制提供完全的多線程運行模式,提供了面向C、C++、Eiffel、Java、Perl、PHP、Python等編程語言的編程接口,支持多種字段類型并且提供了完整的操作符。
7.1MYSQL數(shù)據(jù)庫系統(tǒng)簡介7.1.2Mysql數(shù)據(jù)庫簡介
2001年MySQL4.0版本發(fā)布。在這個版本中提供了新的特性:新的表定義文件格式、高性能的數(shù)據(jù)復(fù)制功能、更加強大的全文搜索功能等。目前,MySQL已經(jīng)發(fā)展到MySQL5.1,功能和效率方面都得到了更大的提升。
7.1MYSQL數(shù)據(jù)庫系統(tǒng)簡介7.1.2Mysql數(shù)據(jù)庫簡介大概是由于PHP開發(fā)者特別衷情于MySQL,因此才在PHP中建立了完美的MySQL支持。在PHP中,用來操作Mysql的函數(shù)一直是PHP的標(biāo)準(zhǔn)內(nèi)置函數(shù)。開發(fā)者只需要用PHP寫下短短幾行代碼,就可以輕松連接到Mysql數(shù)據(jù)庫。PHP還提供了大量的函數(shù)來對MySQL數(shù)據(jù)庫進(jìn)行操作,可以說,用PHP操作Mysql數(shù)據(jù)庫極為簡單和高效,這也使得PHP+MySQL成為當(dāng)今最為流行的Web開發(fā)語言與數(shù)據(jù)庫搭配之一。7.1MYSQL數(shù)據(jù)庫系統(tǒng)簡介7.1.2Mysql數(shù)據(jù)庫簡介當(dāng)然,PHP支持的數(shù)據(jù)庫遠(yuǎn)遠(yuǎn)不止MySQL一種。根據(jù)PHP官方提供的資料,PHP支持幾乎全部當(dāng)前主流的數(shù)據(jù)庫。但是PHP和Mysql的搭配無論從性能上還是到易用性上都毫無疑問的成為了開發(fā)者的首選。此外,還有一個重要原因就是PHP和MySQL都是免費和開放源代碼的,并且都有良好的跨平臺特性。這使得搭建Web服務(wù)器的成本幾乎為零,而且開發(fā)出來的程序具有可移植性,這些都是吸引開發(fā)者的重要原因。7.2MYSQL的安裝與初始化設(shè)置下載Mysql的安裝包http://
或http://
解壓縮,得到一個“setup.exe”的安裝文件雙擊此文件啟動安裝程序安裝配置驗證MySQL安裝是否成功“開始”->“運行”,輸入“cmd”開始”->“程序”->“附件”->“命令提示符”7.3MYSQL中的數(shù)據(jù)類型為了對不同性質(zhì)的數(shù)據(jù)進(jìn)行區(qū)分,以提高數(shù)據(jù)查詢和操作的效率,數(shù)據(jù)庫系統(tǒng)都將可存入的數(shù)據(jù)分為多種類型。如姓名、性別之類的信息為字符串型,年齡、價格、分?jǐn)?shù)之類的信息為數(shù)字型,日期等為日期時間型。這就有了數(shù)據(jù)類型的概念。就像編程語言一樣,每種數(shù)據(jù)庫都有自己支持的若干種數(shù)據(jù)類型。在數(shù)據(jù)庫中建立表時,我們首先要考慮的就是這個表需要設(shè)置多少字段以及每個字段的數(shù)據(jù)類型。7.3MYSQL中的數(shù)據(jù)類型Mysql數(shù)據(jù)庫中的數(shù)據(jù)類型分為三大類:數(shù)值類型、日期時間類型和字符串類型。各大類中包含的具體類型及其取值范圍見表7-27.4結(jié)構(gòu)化查詢語言(SQL)結(jié)構(gòu)化查詢語言(StructuredQueryLanguage),最早的是IBM的圣約瑟研究實驗室為其關(guān)系數(shù)據(jù)庫管理系統(tǒng)SYSTEMR開發(fā)的一種查詢語言。SQL結(jié)構(gòu)簡潔,功能強大,簡單易學(xué),所以自從IBM公司1981年推出以來,SQL得到了廣泛的應(yīng)用。如今無論是像Oracle、Sybase、SQLserver這些大型的數(shù)據(jù)庫管理系統(tǒng),還是像VisualFoxporo,PowerBuilder這些桌面數(shù)據(jù)庫開發(fā)系統(tǒng),都支持SQL語言作為查詢語言,Mysql同樣也不例外。7.4結(jié)構(gòu)化查詢語言(SQL)StructuredQueryLanguage包含4個部分:1、數(shù)據(jù)查詢語言:SELECT2、數(shù)據(jù)操縱語言:INSERT,UPDATE,DELETE3、數(shù)據(jù)定義語言:CREATE,ALTER,DROP4、數(shù)據(jù)控制語言:COMMITWORK,ROLLBACKWORK7.4結(jié)構(gòu)化查詢語言(SQL)SQL可用于所有用戶的數(shù)據(jù)庫活動模型,包括系統(tǒng)管理員、數(shù)據(jù)庫管理員、應(yīng)用程序員、決策支持系統(tǒng)人員及許多其它類型的終端用戶?;镜腟QL命令只需很少時間就能學(xué)會,高級的命令通過學(xué)習(xí)也不難掌握。SQL可以完成的功能包括:●查詢數(shù)據(jù)●在表中插入、修改和刪除記錄●建立、修改和刪除數(shù)據(jù)對象●控制對數(shù)據(jù)和數(shù)據(jù)對象的存取●保證數(shù)據(jù)庫一致性和完整性7.4結(jié)構(gòu)化查詢語言(SQL)7.4.2數(shù)據(jù)定義語言(Create/Alter/Drop)1、CREATE/SHOW/USE語句
CREATE語句可以用來創(chuàng)建新的數(shù)據(jù)庫和表。SHOW語句用來顯示當(dāng)前所有數(shù)據(jù)庫或當(dāng)前數(shù)據(jù)庫下的所有表。下面看一個例子。7.4結(jié)構(gòu)化查詢語言(SQL)7.4.2數(shù)據(jù)定義語言(Create/Alter/Drop)事例:mysql>CREATEDATABASEstudent;mysql>SHOWDATABASES;mysql>USEstudent;
mysql>CREATETABLEinfo(namechar(20),sex(2),agetinyint(2));mysql>SHOWTABLES;7.4結(jié)構(gòu)化查詢語言(SQL)7.4.2數(shù)據(jù)定義語言(Create/Alter/Drop)2、ALTER語句
Alter語句用來修改一個表的定義。也就是說修改表自身。如修改表的名字,修改表中某個字段的名字、屬性、類型等(也可以用于修改數(shù)據(jù)庫的部分屬性)。看下面的例子:mysql>ALTERTABLEinfoCHANGEnamexingmingCHAR(20);mysql>ALTERTABLEinfoADDaddr
CHAR(50);mysql>ALTERTABLEinfoDROPaddr;7.4結(jié)構(gòu)化查詢語言(SQL)7.4.2數(shù)據(jù)定義語言(Create/Alter/Drop)3、DROP語句DROP語句用來刪除一個數(shù)據(jù)庫或者一個表。如果是刪除一個數(shù)據(jù)庫,那么這個數(shù)據(jù)庫下的所有表也將被刪除。如以下語句:mysql>DROPDATABSED1;mysql>DROPTABLEtbl1;7.4結(jié)構(gòu)化查詢語言(SQL)7.4.3數(shù)據(jù)操作語言(Insert/Update/Delete)1、INSERT語句INSERT語句用來向表中插入新的數(shù)據(jù)記錄。每次插入一條。
mysql>INSERTINTOinfoVALUES(“張三”,”男”,20);7.4結(jié)構(gòu)化查詢語言(SQL)7.4.3數(shù)據(jù)操作語言(Insert/Update/Delete)2、UPDATE語句UPDATE語句可以對表中現(xiàn)有的記錄進(jìn)行修改。1)修改全部記錄的某個字段的值mysql>UPDATEinfoSETage=25;2)修改滿足某條件的記錄mysql>UPDATEinfoSETage=23WHEREname=”張三”;7.4結(jié)構(gòu)化查詢語言(SQL)7.4.3數(shù)據(jù)操作語言(Insert/Update/Delete)3、DELETE語句DELETE語句用來刪除表中的記錄??梢砸淮蝿h除全部記錄,也可以刪除滿足指定條件的記錄。1)刪除表中的全部記錄mysql>DELETEFROMinfo;2)刪除滿足條件的記錄mysql>DELETEFORMinfoWHEREsex=”女”;7.4結(jié)構(gòu)化查詢語言(SQL)7.4.4數(shù)據(jù)查詢語言(Select)1)查詢?nèi)坑涗浫孔侄?/p>
mysql>SELECT*FROMinfo;2)查詢?nèi)坑涗洸糠肿侄蝝ysql>SELECTname,ageFROMinfo;3)查詢滿足某個條件的記錄mysql>SELECT*FROMinfoWHEREage<19;4)查詢某些記錄,并對結(jié)果進(jìn)行排序
mysql>SELECT*FROMinfoWHEREsex=”女”O(jiān)RDERBYageASC;“ASC”改為“DESC”7.5MYSQL用戶管理前面我們進(jìn)入MYSQL控制臺,使用的是MYSQL的超級管理用戶。即用戶名為root的用戶。事實上在實際應(yīng)用中一臺數(shù)據(jù)庫服務(wù)器往往多人同時使用,這時如果只有一個用戶帳號顯然不夠用。而且root用戶擁有對數(shù)據(jù)庫的全部權(quán)限,可以對數(shù)據(jù)庫進(jìn)行任意操作,我們當(dāng)然不希望這個賬號被一個一般的管理員使用。因此就需要在MYSQL中分配帳號,每個帳號可以管理各自的數(shù)據(jù)庫,不能越權(quán)。這樣可以很好的提高數(shù)據(jù)庫的安全性。在MYSQL中,增加新用戶的方法主要有兩個:一是直接向MYSQL用戶表中插入新紀(jì)錄;二是使用grant授權(quán)命令。7.5MYSQL用戶管理MYSQL的用戶帳號和密碼以及權(quán)限等信息,都存儲在一個名為“mysql”的數(shù)據(jù)庫的“user”表中(MYSQL安裝完成后自動創(chuàng)建,可以在控制臺下查看)。分別執(zhí)行以下兩個命令:mysql>usemysql
mysql>select*fromuser;這時可以看到類似于下面樣式的返回結(jié)果(以下結(jié)果進(jìn)行過簡化)
+-----------+-------+------------------+-------------+-------------+------------|Host|User|Password……|%|root|1c8bc9fa64c40b82……+-----------+-------+------------------+-------------+-------------+------------1rowsinset(0.00sec)7.5MYSQL用戶管理新安裝的MYSQL,一般USER表中有兩個用戶,分別是root和匿名用戶。匿名用戶即不需要用戶名和密碼即可進(jìn)入系統(tǒng)的用戶。在user表中,前三個字段Host、User、Password分別表示登陸主機、用戶名和密碼。登陸主機表示此用戶允許登陸的主機地址,即IP地址?!?”表示任意主機。如果本用戶只能從本地登陸,不允許遠(yuǎn)程登錄,可以用“l(fā)ocalhost”或本機IP地址。用戶密碼用加密方式存儲,因此看到的密碼是一串無規(guī)則的字符串。從第四個字段以后的字段,表示權(quán)限狀態(tài)。即該用戶是否有某權(quán)限。這些權(quán)限包括查詢權(quán)限、修改權(quán)限、刪除權(quán)限等等。7.5MYSQL用戶管理創(chuàng)建新用戶以及為用戶分配權(quán)限的第二種方法是使用GRANT命令。GRANT命令功能強大,相比于直接插入用戶簡單的多,因此是采用比較多的方法。下面我們來介紹一下GRANT命令的語法結(jié)構(gòu):GRANTpriv_type[(column_list)][,priv_type[(column_list)]...]ON{tbl_name|*|*.*|db_name.*}TOuser_name[IDENTIFIEDBY'password'][,user_name[IDENTIFIEDBY'password']...][WITHGRANTOPTION]
這是完整的GRANT語句語法結(jié)構(gòu)??雌饋肀容^復(fù)雜。使用本命令可以一次創(chuàng)建多個MYSQL帳號。實際上我們在實際應(yīng)用中一般一次就創(chuàng)建一個用戶,這樣的話語法結(jié)構(gòu)就可以簡化為:GRANTpriv_type[(column_list)]]ON{tbl_name|*|*.*|db_name.*}TOuser_name[IDENTIFIEDBY'password']7.5MYSQL用戶管理而到了具體的語句中,還可以繼續(xù)簡化。如:mysql>GRANTALLONDB1.*to“Nie”IDENTIFIEDBY“123456”;此語句執(zhí)行之后創(chuàng)建用戶Nie,密碼123456,該用戶對數(shù)據(jù)庫DB1擁有全部權(quán)限。GRANT——關(guān)鍵字,表示授權(quán)語句開始。priv_type——權(quán)限類型??梢允莝elect/delete/update/create/drop/alter等任意一種。如果是全部權(quán)限,可以用allprivileges,并且可以簡寫為all。ON{tbl_name|*|*.*|db_name.*}——聲明此用戶可以操作哪些數(shù)據(jù)庫以及哪些表。聲明可以使用以下4種方法之一:
7.5MYSQL用戶管理tbl_name
:直接指定表名。如info。*:任意表*.*:任
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 自媒體短視頻制作(山西財貿(mào)職業(yè)技術(shù)學(xué)院)知到智慧樹答案
- 財務(wù)主管的領(lǐng)導(dǎo)能力提升計劃
- 人造崗石樹脂相關(guān)行業(yè)投資規(guī)劃報告
- 井下波速測量儀相關(guān)項目投資計劃書范本
- 秋季教育資源的優(yōu)化配置計劃
- 高中生素質(zhì)教育方案計劃
- 幼兒教師培訓(xùn)課件:幼兒素質(zhì)發(fā)展課程-美術(shù)活動中班
- 《小腸梗阻的診斷與治療中國專家共識(2023版)》解讀
- 博才中學(xué)《雨林的毀滅-世界性災(zāi)難》課件
- 《解破學(xué)生殖系統(tǒng)》課件
- 消防主機陸和新LH160調(diào)試
- 工商管理本 組織行為學(xué)作業(yè)4答案
- QC輸電線路新型防鳥害裝置的研制
- FMEA第五版培訓(xùn)(完整版)
- 畢業(yè)設(shè)計(論文)-履帶式微耕機的結(jié)構(gòu)設(shè)計
- 卓越績效評價準(zhǔn)則實施指南
- 電廠保潔技術(shù)方案
- 【小課題結(jié)題報告】《創(chuàng)設(shè)“生活化”情境 激發(fā)初中學(xué)生學(xué)習(xí)生物興趣的研究》結(jié)題報告
- 風(fēng)水立向與磁偏角的應(yīng)用
- (精選)質(zhì)量合理化建議100條 [水利工程建設(shè)質(zhì)量管理的措施和建議]
- [生物學(xué)]實驗室生物安全程序化文件及SOP
評論
0/150
提交評論