電力出版社《PHP+MySQL開發(fā)實例教程》全套課件(第7章)_第1頁
電力出版社《PHP+MySQL開發(fā)實例教程》全套課件(第7章)_第2頁
電力出版社《PHP+MySQL開發(fā)實例教程》全套課件(第7章)_第3頁
電力出版社《PHP+MySQL開發(fā)實例教程》全套課件(第7章)_第4頁
電力出版社《PHP+MySQL開發(fā)實例教程》全套課件(第7章)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PHP+MySQL開發(fā)實例教程ISBN號:978-7-5083-7194-8作者:毛書朋聶慶鵬653工程指定教材第7章MYSQL數(shù)據(jù)庫與結構化查詢語言(SQL)7.1MYSQL數(shù)據(jù)庫系統(tǒng)簡介7.2MYSQL的安裝與初始化設置7.3MYSQL中的數(shù)據(jù)類型7.4結構化查詢語言(SQL)7.5MYSQL用戶管理7.6MYSQL可視化管理工具——PHPMyAdmin

7.7邊學邊做:MySQL安裝與使用綜合練習7.8本章小結7.9練習題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ù)庫技術的引入是給網(wǎng)站開發(fā)帶來的巨大的飛躍。7.1MYSQL數(shù)據(jù)庫系統(tǒng)簡介7.1.1Web開發(fā)與數(shù)據(jù)庫所謂數(shù)據(jù)庫,可以理解為用來存儲信息的“倉庫”。而“信息”就是我們要存儲下來的一些數(shù)據(jù)。比如用戶的姓名、年齡,產(chǎn)品的價格、簡介,某一個日期時間甚至圖像等等。總之一切可以在計算機中存儲下來的數(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ù)庫學號姓名性別年齡001張三男18002李四女19003王五男20…………7.1MYSQL數(shù)據(jù)庫系統(tǒng)簡介7.1.1Web開發(fā)與數(shù)據(jù)庫那么把數(shù)據(jù)以這種形式存放在數(shù)據(jù)庫中能給我們帶來什么好處呢?采取數(shù)據(jù)庫技術可以給數(shù)據(jù)的存儲和檢索帶來巨大好處,主要可以歸納為以下四點:數(shù)據(jù)存儲集約化,最大限度節(jié)省存儲空間。數(shù)據(jù)庫專門的檢索引擎能夠極大提高數(shù)據(jù)檢索速度。數(shù)據(jù)庫結構化查詢語言(SQL)給數(shù)據(jù)管理帶來了極大便利。可以方便地對數(shù)據(jù)進行查詢、增加、刪除、修改。7.1MYSQL數(shù)據(jù)庫系統(tǒng)簡介7.1.1Web開發(fā)與數(shù)據(jù)庫當前市場上的數(shù)據(jù)庫有幾十種,其中有如Oracle、SQLServer等大型網(wǎng)絡數(shù)據(jù)庫,也有如Access、VFP等小型桌面數(shù)據(jù)庫。對于網(wǎng)站開發(fā)而言,一般來說中小型數(shù)據(jù)庫系統(tǒng)就能滿足要求。Mysql就是當前Web開發(fā)中尤其是PHP開發(fā)中使用最為廣泛的數(shù)據(jù)庫。

7.1MYSQL數(shù)據(jù)庫系統(tǒng)簡介7.1.2Mysql數(shù)據(jù)庫簡介MySQL是MYSQLAB公司開的一種開放源代碼的關系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),MySQL數(shù)據(jù)庫系統(tǒng)使用最常用的數(shù)據(jù)庫管理語言——結構化查詢語言(SQL)進行數(shù)據(jù)庫管理。由于MySQL是開放源代碼的,因此任何人都可以在GeneralPublicLicense的許可下下載并根據(jù)個性化的需要對其進行修改。MySQL因為其速度、可靠性和適應性而備受關注。大多數(shù)人都認為在不需要事務化處理的情況下,MySQL是管理內(nèi)容最好的選擇。7.1MYSQL數(shù)據(jù)庫系統(tǒng)簡介7.1.2Mysql數(shù)據(jù)庫簡介

MySQL關系型數(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ù)復制功能、更加強大的全文搜索功能等。目前,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的標準內(nèi)置函數(shù)。開發(fā)者只需要用PHP寫下短短幾行代碼,就可以輕松連接到Mysql數(shù)據(jù)庫。PHP還提供了大量的函數(shù)來對MySQL數(shù)據(jù)庫進行操作,可以說,用PHP操作Mysql數(shù)據(jù)庫極為簡單和高效,這也使得PHP+MySQL成為當今最為流行的Web開發(fā)語言與數(shù)據(jù)庫搭配之一。7.1MYSQL數(shù)據(jù)庫系統(tǒng)簡介7.1.2Mysql數(shù)據(jù)庫簡介當然,PHP支持的數(shù)據(jù)庫遠遠不止MySQL一種。根據(jù)PHP官方提供的資料,PHP支持幾乎全部當前主流的數(shù)據(jù)庫。但是PHP和Mysql的搭配無論從性能上還是到易用性上都毫無疑問的成為了開發(fā)者的首選。此外,還有一個重要原因就是PHP和MySQL都是免費和開放源代碼的,并且都有良好的跨平臺特性。這使得搭建Web服務器的成本幾乎為零,而且開發(fā)出來的程序具有可移植性,這些都是吸引開發(fā)者的重要原因。7.2MYSQL的安裝與初始化設置下載Mysql的安裝包http://

或http://

解壓縮,得到一個“setup.exe”的安裝文件雙擊此文件啟動安裝程序安裝配置驗證MySQL安裝是否成功“開始”->“運行”,輸入“cmd”開始”->“程序”->“附件”->“命令提示符”7.3MYSQL中的數(shù)據(jù)類型為了對不同性質(zhì)的數(shù)據(jù)進行區(qū)分,以提高數(shù)據(jù)查詢和操作的效率,數(shù)據(jù)庫系統(tǒng)都將可存入的數(shù)據(jù)分為多種類型。如姓名、性別之類的信息為字符串型,年齡、價格、分數(shù)之類的信息為數(shù)字型,日期等為日期時間型。這就有了數(shù)據(jù)類型的概念。就像編程語言一樣,每種數(shù)據(jù)庫都有自己支持的若干種數(shù)據(jù)類型。在數(shù)據(jù)庫中建立表時,我們首先要考慮的就是這個表需要設置多少字段以及每個字段的數(shù)據(jù)類型。7.3MYSQL中的數(shù)據(jù)類型Mysql數(shù)據(jù)庫中的數(shù)據(jù)類型分為三大類:數(shù)值類型、日期時間類型和字符串類型。各大類中包含的具體類型及其取值范圍見表7-27.4結構化查詢語言(SQL)結構化查詢語言(StructuredQueryLanguage),最早的是IBM的圣約瑟研究實驗室為其關系數(shù)據(jù)庫管理系統(tǒng)SYSTEMR開發(fā)的一種查詢語言。SQL結構簡潔,功能強大,簡單易學,所以自從IBM公司1981年推出以來,SQL得到了廣泛的應用。如今無論是像Oracle、Sybase、SQLserver這些大型的數(shù)據(jù)庫管理系統(tǒng),還是像VisualFoxporo,PowerBuilder這些桌面數(shù)據(jù)庫開發(fā)系統(tǒng),都支持SQL語言作為查詢語言,Mysql同樣也不例外。7.4結構化查詢語言(SQL)StructuredQueryLanguage包含4個部分:1、數(shù)據(jù)查詢語言:SELECT2、數(shù)據(jù)操縱語言:INSERT,UPDATE,DELETE3、數(shù)據(jù)定義語言:CREATE,ALTER,DROP4、數(shù)據(jù)控制語言:COMMITWORK,ROLLBACKWORK7.4結構化查詢語言(SQL)SQL可用于所有用戶的數(shù)據(jù)庫活動模型,包括系統(tǒng)管理員、數(shù)據(jù)庫管理員、應用程序員、決策支持系統(tǒng)人員及許多其它類型的終端用戶?;镜腟QL命令只需很少時間就能學會,高級的命令通過學習也不難掌握。SQL可以完成的功能包括:●查詢數(shù)據(jù)●在表中插入、修改和刪除記錄●建立、修改和刪除數(shù)據(jù)對象●控制對數(shù)據(jù)和數(shù)據(jù)對象的存取●保證數(shù)據(jù)庫一致性和完整性7.4結構化查詢語言(SQL)7.4.2數(shù)據(jù)定義語言(Create/Alter/Drop)1、CREATE/SHOW/USE語句

CREATE語句可以用來創(chuàng)建新的數(shù)據(jù)庫和表。SHOW語句用來顯示當前所有數(shù)據(jù)庫或當前數(shù)據(jù)庫下的所有表。下面看一個例子。7.4結構化查詢語言(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結構化查詢語言(SQL)7.4.2數(shù)據(jù)定義語言(Create/Alter/Drop)2、ALTER語句

Alter語句用來修改一個表的定義。也就是說修改表自身。如修改表的名字,修改表中某個字段的名字、屬性、類型等(也可以用于修改數(shù)據(jù)庫的部分屬性)??聪旅娴睦樱簃ysql>ALTERTABLEinfoCHANGEnamexingmingCHAR(20);mysql>ALTERTABLEinfoADDaddr

CHAR(50);mysql>ALTERTABLEinfoDROPaddr;7.4結構化查詢語言(SQL)7.4.2數(shù)據(jù)定義語言(Create/Alter/Drop)3、DROP語句DROP語句用來刪除一個數(shù)據(jù)庫或者一個表。如果是刪除一個數(shù)據(jù)庫,那么這個數(shù)據(jù)庫下的所有表也將被刪除。如以下語句:mysql>DROPDATABSED1;mysql>DROPTABLEtbl1;7.4結構化查詢語言(SQL)7.4.3數(shù)據(jù)操作語言(Insert/Update/Delete)1、INSERT語句INSERT語句用來向表中插入新的數(shù)據(jù)記錄。每次插入一條。

mysql>INSERTINTOinfoVALUES(“張三”,”男”,20);7.4結構化查詢語言(SQL)7.4.3數(shù)據(jù)操作語言(Insert/Update/Delete)2、UPDATE語句UPDATE語句可以對表中現(xiàn)有的記錄進行修改。1)修改全部記錄的某個字段的值mysql>UPDATEinfoSETage=25;2)修改滿足某條件的記錄mysql>UPDATEinfoSETage=23WHEREname=”張三”;7.4結構化查詢語言(SQL)7.4.3數(shù)據(jù)操作語言(Insert/Update/Delete)3、DELETE語句DELETE語句用來刪除表中的記錄??梢砸淮蝿h除全部記錄,也可以刪除滿足指定條件的記錄。1)刪除表中的全部記錄mysql>DELETEFROMinfo;2)刪除滿足條件的記錄mysql>DELETEFORMinfoWHEREsex=”女”;7.4結構化查詢語言(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)查詢某些記錄,并對結果進行排序

mysql>SELECT*FROMinfoWHEREsex=”女”O(jiān)RDERBYageASC;“ASC”改為“DESC”7.5MYSQL用戶管理前面我們進入MYSQL控制臺,使用的是MYSQL的超級管理用戶。即用戶名為root的用戶。事實上在實際應用中一臺數(shù)據(jù)庫服務器往往多人同時使用,這時如果只有一個用戶帳號顯然不夠用。而且root用戶擁有對數(shù)據(jù)庫的全部權限,可以對數(shù)據(jù)庫進行任意操作,我們當然不希望這個賬號被一個一般的管理員使用。因此就需要在MYSQL中分配帳號,每個帳號可以管理各自的數(shù)據(jù)庫,不能越權。這樣可以很好的提高數(shù)據(jù)庫的安全性。在MYSQL中,增加新用戶的方法主要有兩個:一是直接向MYSQL用戶表中插入新紀錄;二是使用grant授權命令。7.5MYSQL用戶管理MYSQL的用戶帳號和密碼以及權限等信息,都存儲在一個名為“mysql”的數(shù)據(jù)庫的“user”表中(MYSQL安裝完成后自動創(chuàng)建,可以在控制臺下查看)。分別執(zhí)行以下兩個命令:mysql>usemysql

mysql>select*fromuser;這時可以看到類似于下面樣式的返回結果(以下結果進行過簡化)

+-----------+-------+------------------+-------------+-------------+------------|Host|User|Password……|%|root|1c8bc9fa64c40b82……+-----------+-------+------------------+-------------+-------------+------------1rowsinset(0.00sec)7.5MYSQL用戶管理新安裝的MYSQL,一般USER表中有兩個用戶,分別是root和匿名用戶。匿名用戶即不需要用戶名和密碼即可進入系統(tǒng)的用戶。在user表中,前三個字段Host、User、Password分別表示登陸主機、用戶名和密碼。登陸主機表示此用戶允許登陸的主機地址,即IP地址?!?”表示任意主機。如果本用戶只能從本地登陸,不允許遠程登錄,可以用“l(fā)ocalhost”或本機IP地址。用戶密碼用加密方式存儲,因此看到的密碼是一串無規(guī)則的字符串。從第四個字段以后的字段,表示權限狀態(tài)。即該用戶是否有某權限。這些權限包括查詢權限、修改權限、刪除權限等等。7.5MYSQL用戶管理創(chuàng)建新用戶以及為用戶分配權限的第二種方法是使用GRANT命令。GRANT命令功能強大,相比于直接插入用戶簡單的多,因此是采用比較多的方法。下面我們來介紹一下GRANT命令的語法結構:GRANTpriv_type[(column_list)][,priv_type[(column_list)]...]ON{tbl_name|*|*.*|db_name.*}TOuser_name[IDENTIFIEDBY'password'][,user_name[IDENTIFIEDBY'password']...][WITHGRANTOPTION]

這是完整的GRANT語句語法結構??雌饋肀容^復雜。使用本命令可以一次創(chuàng)建多個MYSQL帳號。實際上我們在實際應用中一般一次就創(chuàng)建一個用戶,這樣的話語法結構就可以簡化為: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擁有全部權限。GRANT——關鍵字,表示授權語句開始。priv_type——權限類型??梢允莝elect/delete/update/create/drop/alter等任意一種。如果是全部權限,可以用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)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150