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

下載本文檔

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

文檔簡介

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

7.7邊學邊做:MySQL安裝與使用綜合練習7.8本章小結7.9練習題7.1MYSQL數據庫系統簡介7.1.1Web開發與數據庫動態網站開發離不開數據存儲,數據存儲則離不開數據庫。在前面的章節中,我們曾做過一個例子,將注冊用戶的信息存儲在一個文本文件中,可以在以后取用。這使得網站可以增加很多交互性因素。但是文本文件并不是存儲數據的最理想方法。數據庫技術的引入是給網站開發帶來的巨大的飛躍。7.1MYSQL數據庫系統簡介7.1.1Web開發與數據庫所謂數據庫,可以理解為用來存儲信息的“倉庫”。而“信息”就是我們要存儲下來的一些數據。比如用戶的姓名、年齡,產品的價格、簡介,某一個日期時間甚至圖像等等。總之一切可以在計算機中存儲下來的數據都可以通過各種方法存儲到數據庫中。7.1MYSQL數據庫系統簡介7.1.1Web開發與數據庫信息并不是雜亂無章的直接放入數據庫,而是以二維表的形式組織起來,一條一條存儲于表中。這和我們日常生活中經常用到的各種表格形式上是一致的。表中的每一條信息稱為一條“記錄”。一個數據庫中可以有若干張表,每張表中又可以存放若干條記錄。比如前面講到的用戶注冊程序,每一個用戶的信息,比如用戶名、密碼、頭像等,就可以作為一條記錄,存儲在一張表中。7.1MYSQL數據庫系統簡介7.1.1Web開發與數據庫學號姓名性別年齡001張三男18002李四女19003王五男20…………7.1MYSQL數據庫系統簡介7.1.1Web開發與數據庫那么把數據以這種形式存放在數據庫中能給我們帶來什么好處呢?采取數據庫技術可以給數據的存儲和檢索帶來巨大好處,主要可以歸納為以下四點:數據存儲集約化,最大限度節省存儲空間。數據庫專門的檢索引擎能夠極大提高數據檢索速度。數據庫結構化查詢語言(SQL)給數據管理帶來了極大便利。可以方便地對數據進行查詢、增加、刪除、修改。7.1MYSQL數據庫系統簡介7.1.1Web開發與數據庫當前市場上的數據庫有幾十種,其中有如Oracle、SQLServer等大型網絡數據庫,也有如Access、VFP等小型桌面數據庫。對于網站開發而言,一般來說中小型數據庫系統就能滿足要求。Mysql就是當前Web開發中尤其是PHP開發中使用最為廣泛的數據庫。

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

MySQL關系型數據庫于1998年1月發行第一個版本。它使用系統核心提供的多線程機制提供完全的多線程運行模式,提供了面向C、C++、Eiffel、Java、Perl、PHP、Python等編程語言的編程接口,支持多種字段類型并且提供了完整的操作符。

7.1MYSQL數據庫系統簡介7.1.2Mysql數據庫簡介

2001年MySQL4.0版本發布。在這個版本中提供了新的特性:新的表定義文件格式、高性能的數據復制功能、更加強大的全文搜索功能等。目前,MySQL已經發展到MySQL5.1,功能和效率方面都得到了更大的提升。

7.1MYSQL數據庫系統簡介7.1.2Mysql數據庫簡介大概是由于PHP開發者特別衷情于MySQL,因此才在PHP中建立了完美的MySQL支持。在PHP中,用來操作Mysql的函數一直是PHP的標準內置函數。開發者只需要用PHP寫下短短幾行代碼,就可以輕松連接到Mysql數據庫。PHP還提供了大量的函數來對MySQL數據庫進行操作,可以說,用PHP操作Mysql數據庫極為簡單和高效,這也使得PHP+MySQL成為當今最為流行的Web開發語言與數據庫搭配之一。7.1MYSQL數據庫系統簡介7.1.2Mysql數據庫簡介當然,PHP支持的數據庫遠遠不止MySQL一種。根據PHP官方提供的資料,PHP支持幾乎全部當前主流的數據庫。但是PHP和Mysql的搭配無論從性能上還是到易用性上都毫無疑問的成為了開發者的首選。此外,還有一個重要原因就是PHP和MySQL都是免費和開放源代碼的,并且都有良好的跨平臺特性。這使得搭建Web服務器的成本幾乎為零,而且開發出來的程序具有可移植性,這些都是吸引開發者的重要原因。7.2MYSQL的安裝與初始化設置下載Mysql的安裝包http://

或http://

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

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

Alter語句用來修改一個表的定義。也就是說修改表自身。如修改表的名字,修改表中某個字段的名字、屬性、類型等(也可以用于修改數據庫的部分屬性)。看下面的例子:mysql>ALTERTABLEinfoCHANGEnamexingmingCHAR(20);mysql>ALTERTABLEinfoADDaddr

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

mysql>INSERTINTOinfoVALUES(“張三”,”男”,20);7.4結構化查詢語言(SQL)7.4.3數據操作語言(Insert/Update/Delete)2、UPDATE語句UPDATE語句可以對表中現有的記錄進行修改。1)修改全部記錄的某個字段的值mysql>UPDATEinfoSETage=25;2)修改滿足某條件的記錄mysql>UPDATEinfoSETage=23WHEREname=”張三”;7.4結構化查詢語言(SQL)7.4.3數據操作語言(Insert/Update/Delete)3、DELETE語句DELETE語句用來刪除表中的記錄。可以一次刪除全部記錄,也可以刪除滿足指定條件的記錄。1)刪除表中的全部記錄mysql>DELETEFROMinfo;2)刪除滿足條件的記錄mysql>DELETEFORMinfoWHEREsex=”女”;7.4結構化查詢語言(SQL)7.4.4數據查詢語言(Select)1)查詢全部記錄全部字段

mysql>SELECT*FROMinfo;2)查詢全部記錄部分字段mysql>SELECTname,ageFROMinfo;3)查詢滿足某個條件的記錄mysql>SELECT*FROMinfoWHEREage<19;4)查詢某些記錄,并對結果進行排序

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

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

+-----------+-------+------------------+-------------+-------------+------------|Host|User|Password……|%|root|1c8bc9fa64c40b82……+-----------+-------+------------------+-------------+-------------+------------1rowsinset(0.00sec)7.5MYSQL用戶管理新安裝的MYSQL,一般USER表中有兩個用戶,分別是root和匿名用戶。匿名用戶即不需要用戶名和密碼即可進入系統的用戶。在user表中,前三個字段Host、User、Password分別表示登陸主機、用戶名和密碼。登陸主機表示此用戶允許登陸的主機地址,即IP地址。“%”表示任意主機。如果本用戶只能從本地登陸,不允許遠程登錄,可以用“localhost”或本機IP地址。用戶密碼用加密方式存儲,因此看到的密碼是一串無規則的字符串。從第四個字段以后的字段,表示權限狀態。即該用戶是否有某權限。這些權限包括查詢權限、修改權限、刪除權限等等。7.5MYSQL用戶管理創建新用戶以及為用戶分配權限的第二種方法是使用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語句語法結構。看起來比較復雜。使用本命令可以一次創建多個MYSQL帳號。實際上我們在實際應用中一般一次就創建一個用戶,這樣的話語法結構就可以簡化為:GRANTpriv_type[(column_list)]]ON{tbl_name|*|*.*|db_name.*}TOuser_name[IDENTIFIEDBY'password']7.5MYSQL用戶管理而到了具體的語句中,還可以繼續簡化。如:mysql>GRANTALLONDB1.*to“Nie”IDENTIFIEDBY“123456”;此語句執行之后創建用戶Nie,密碼123456,該用戶對數據庫DB1擁有全部權限。GRANT——關鍵字,表示授權語句開始。priv_type——權限類型。可以是select/delete/update/create/drop/alter等任意一種。如果是全部權限,可以用allprivileges,并且可以簡寫為all。ON{tbl_name|*|*.*|db_name.*}——聲明此用戶可以操作哪些數據庫以及哪些表。聲明可以使用以下4種方法之一:

7.5MYSQL用戶管理tbl_name

:直接指定表名。如info。*:任意表*.*:任

溫馨提示

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

評論

0/150

提交評論