PHP與MySQL程序設(shè)計:013-Mysql基礎(chǔ)教程_第1頁
PHP與MySQL程序設(shè)計:013-Mysql基礎(chǔ)教程_第2頁
PHP與MySQL程序設(shè)計:013-Mysql基礎(chǔ)教程_第3頁
PHP與MySQL程序設(shè)計:013-Mysql基礎(chǔ)教程_第4頁
PHP與MySQL程序設(shè)計:013-Mysql基礎(chǔ)教程_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Mysql基礎(chǔ)教程昭宏<401032639@>2015-11MySQL相關(guān)概念介紹MySQL是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),在WEB應(yīng)用方面MySQL是最好的關(guān)系數(shù)據(jù)庫管理系統(tǒng)應(yīng)用軟件之一。搭配PHP和Apache可組成良好的開發(fā)環(huán)境。因此用的很廣泛。名詞解釋RDBMS:(RelationalDatabaseManagementSystem),關(guān)系型數(shù)據(jù)庫管理系統(tǒng)SQL:(StructuredQueryLanguage

),結(jié)構(gòu)化查詢語言DDL:

(DataDefinitionLanguage),數(shù)據(jù)定義語言,用在定義或改變表的結(jié)構(gòu),數(shù)據(jù)類型等,主要的命令有CREATE、ALTER、DROP等DML:

(DataManipulationLanguage),數(shù)據(jù)操作語言,用來對數(shù)據(jù)庫里的數(shù)據(jù)進(jìn)行操作,命令有SELECT、UPDATE、INSERT、DELETEDCL:

(DataControlLanguage),數(shù)據(jù)控制語言,用于數(shù)據(jù)庫授權(quán)、角色控制等管理工作,主要包括grant、revoke等語句。TCL:

(TransactionControlLanguage),事務(wù)控制語言,用于數(shù)據(jù)庫的事務(wù)管理。Window下MySQL的安裝和配置MySQL目前最新的版本為MySQL5.7。官方網(wǎng)站下載地址:/downloads/mysql/Window下MySQL的安裝和配置步驟1:雙擊MySQL安裝程序彈出用戶許可證協(xié)議窗口,如圖所示:Window下MySQL的安裝和配置步驟2:選中“Iacceptthelicenseterms”的選擇框,然后點(diǎn)擊【Next】按鈕,會進(jìn)入安裝類型設(shè)置界面,如圖所示:Window下MySQL的安裝和配置步驟3:選擇“Custom”選項(xiàng),可修改安裝路徑或保持默認(rèn)值,然后單擊【Next】按鈕,彈出功能選擇界面,如圖所示:步驟4:單擊【Next】按鈕,彈出安裝條件檢查界面,如圖所示:Window下MySQL的安裝和配置步驟5:單擊【Execute】按鈕,開始安裝程序。當(dāng)安裝完成后安裝向?qū)н^程中所做的設(shè)置將在安裝完成之后生效,如圖所示:步驟6:單擊【Next】按鈕,會進(jìn)入服務(wù)器配置頁面,如圖所示:Window下MySQL的安裝和配置步驟7:單擊【Next】按鈕,如圖所示:步驟8:單擊【Next】按鈕,設(shè)置root用戶的密碼,如圖所示:Window下MySQL的安裝和配置步驟9:單擊【Next】按鈕,設(shè)置WindowsServiceName<可默認(rèn)>,此名為啟動數(shù)據(jù)庫服務(wù)名,要記住,如圖所示:步驟10:單擊【Next】按鈕,打開配置信息顯示頁面,如圖所示:Window下MySQL的安裝和配置步驟11:單擊【Execute】按鈕,即可完成整個安裝配置過程,如圖所示:使用免安裝的MySQL解壓軟件包創(chuàng)建my.ini文件修改my.ini文件設(shè)置MySQL服務(wù)配置系統(tǒng)Path變量啟動和關(guān)閉服務(wù)練習(xí)使用圖形化方式安裝MySQL數(shù)據(jù)庫使用配置向?qū)渲肕ySQL數(shù)據(jù)庫通過手工修改my.ini文件的方式更改配置MySQL數(shù)據(jù)庫管理MySQL服務(wù)的啟動、停止在Windows命令提示符下運(yùn)行:啟動:netstartMySQL停止:netstopMySQL使用mysqladmin方式修改root用戶密碼mysqladmin-uroot-ppassword新密碼登錄到MySQLmysql-h主機(jī)名[–P3310]

-u用戶名–p-h:

指定客戶端所要登錄的MySQL主機(jī)名,登錄當(dāng)前機(jī)器該參數(shù)可以省略;-u:

登錄的用戶名;-p:

使用一個密碼來登錄,如果登錄的用戶名密碼為空,可以忽略此選項(xiàng)。-P:

指定當(dāng)前登錄數(shù)據(jù)庫的端口,字母一定得大寫,否則會出錯輸入exit或quit退出登錄MySQL數(shù)據(jù)庫管理列出所有數(shù)據(jù)庫:mysql>showdatabases;切換數(shù)據(jù)庫:mysql>use數(shù)據(jù)庫名;列出所有表:mysql>showtables;列出所有數(shù)據(jù)庫:mysql>describe表名;MySQL數(shù)據(jù)庫管理添加用戶:mysql>CREATEuser'wzh'@'%‘IDENTIFIEDBY'abcd1234';或mysql>INSERTINTOuser(host,user,password)VALUES('%','wzh',password('abcd1234'));添加用戶的同時并授權(quán)mysql>INSERTINTOuser(host,user,password,select_priv,insert_priv,update_priv)VALUES('%','wzh',password('abcd1234'),'Y','Y','Y');通過GRANT命令mysql>CREATEDATABASEtestDb;mysql>GRANTselect,update,insertontestDb.*to'wzh'@'%'IDENTIFIEDBY'abcd1234';格式:grant權(quán)限1,權(quán)限2,...權(quán)限non數(shù)據(jù)庫名稱.表名稱to用戶名@用戶地址identifiedby‘密碼';最后mysql>flushprivileges;MySQL數(shù)據(jù)庫管理刪除用戶:mysql>DELETEFROMuserWHEREuser='wzh'andhost='%';或mysql>DROPuserwzh@'%';最后mysql>flushprivileges;刪除數(shù)據(jù)庫和數(shù)據(jù)表:mysql>dropdatabase數(shù)據(jù)庫名;mysql>droptable數(shù)據(jù)表名練習(xí)通過客戶端登錄到MySQL創(chuàng)建一個數(shù)據(jù)庫創(chuàng)建一個用戶,并授權(quán)該用戶擁有剛才創(chuàng)建數(shù)據(jù)庫的所有權(quán)限刪除數(shù)據(jù)庫和用戶MySQL數(shù)據(jù)類型數(shù)據(jù)類型是數(shù)據(jù)的一種屬性,其可以決定數(shù)據(jù)的存儲格式、有效范圍和相應(yīng)的限制。MySQL的數(shù)據(jù)類型包括:整數(shù)類型、浮點(diǎn)數(shù)類型和定點(diǎn)數(shù)類型日期與時間類型字符串類型二進(jìn)制類型MySQL數(shù)據(jù)類型1、整型類型含義(有符號)tinyint1個字節(jié)

范圍(-128~127)smallint2個字節(jié)

范圍(-32768~32767)mediumint3個字節(jié)

范圍(-8388608~8388607)int4個字節(jié)

范圍(-2147483648~2147483647)bigint8個字節(jié)

范圍(+-9.22*10的18次方)取值范圍如果加了unsigned,則最大值翻倍,如tinyintunsigned的取值范圍為(0~256)。

MySQL數(shù)據(jù)類型2、浮點(diǎn)型(float和double)設(shè)一個字段定義為float(5,3),如果插入一個數(shù)123.45678,實(shí)際數(shù)據(jù)庫里存的是多少?類型含義float(m,d)單精度浮點(diǎn)型

8位精度(4字節(jié))

m總個數(shù),d小數(shù)位double(m,d)雙精度浮點(diǎn)型

16位精度(8字節(jié))

m總個數(shù),d小數(shù)位MySQL數(shù)據(jù)類型3、定點(diǎn)數(shù)浮點(diǎn)型在數(shù)據(jù)庫中存放的是近似值,而定點(diǎn)類型在數(shù)據(jù)庫中存放的是精確值。

decimal(m,d)參數(shù)m<65是總個數(shù),d<30且d<m是小數(shù)位。4、ENUM類型1.ENUM類型(枚舉類型),在定義時指定取值范圍。屬性名ENUM('值1','值2','值3'...'值n')2.ENUM有NOTNULL屬性,其默認(rèn)值為取值列表的第一個元素;3.ENUM無NOTNULL,則ENUM類型將允許插入NULL,并且NULL為默認(rèn)值;1.MySQL數(shù)據(jù)類型5、字符串(char,varchar,_text)類型含義char(n)固定長度,最多255個字符varchar(n)可變長度,最多65535個字符tinytext可變長度,最多255個字符text可變長度,最多65535個字符mediumtext可變長度,最多2的24次方-1個字符longtext可變長度,最多2的32次方-1個字符MySQL數(shù)據(jù)類型char和varchar:1.char(n)若存入字符數(shù)小于n,則以空格補(bǔ)于其后,查詢之時再將空格去掉。所以char類型存儲的字符串末尾不能有空格,varchar不限于此。2.char(n)固定長度,char(4)不管是存入幾個字符,都將占用4個字節(jié),varchar是存入的實(shí)際字符數(shù)+1個字節(jié)(n<=255)或2個字節(jié)(n>255),所以varchar(4),存入3個字符將占用4個字節(jié)。3.char類型的字符串檢索速度要比varchar類型的快。varchar和text:1.varchar可指定n,text不能指定,內(nèi)部存儲varchar是存入的實(shí)際字符數(shù)+1個字節(jié)(n<=255)或2個字節(jié)(n>255),text是實(shí)際字符數(shù)+2個字節(jié)。2.text類型不能有默認(rèn)值。3.varchar可直接創(chuàng)建索引,text創(chuàng)建索引要指定前多少個字符。varchar查詢速度快于text,在都創(chuàng)建索引的情況下,text的索引似乎不起作用。MySQL數(shù)據(jù)類型5、二進(jìn)制類型二進(jìn)制類型是在數(shù)據(jù)庫中存儲二進(jìn)制數(shù)據(jù)的數(shù)據(jù)類型。二進(jìn)制類型包括BINARY、VARBINARY、BIT、TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB。類型取值范圍BINARY(M)字節(jié)數(shù)為M,允許長度為0~M的定長二進(jìn)制字符串VARBINARY(M)允許長度為0~M的變長二進(jìn)制字符串,字節(jié)數(shù)為值的長度加1BIT(M)M位二進(jìn)制數(shù)據(jù),M最大值為64TINYBLOB可變長二進(jìn)制數(shù)據(jù),最多255個字節(jié)BLOB可變長二進(jìn)制數(shù)據(jù),最多2的16次方-1個字節(jié)MEDIUMBLOB可變長二進(jìn)制數(shù)據(jù),最多2的24次方-1個字節(jié)LONGBLOB可變長二進(jìn)制數(shù)據(jù),最多2的32次方-1個字節(jié)BLOB類型是一種特殊的二進(jìn)制類型。BLOB可以存儲數(shù)據(jù)量很大的二進(jìn)制數(shù)據(jù),如圖片,視頻等。BLOB類型包括TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它們之間的區(qū)別也只是最大長度不同。MySQL數(shù)據(jù)類型7、日期時間類型若定義一個字段為timestamp,這個字段里的時間數(shù)據(jù)會隨其他字段修改的時候自動刷新,所以這個數(shù)據(jù)類型的字段可以存放這條記錄最后被修改的時間。類型含義date日期'2008-12-2'time時間'12:25:36'datetime日期時間'2008-12-222:06:44'timestamp自動存儲記錄修改時間MySQL數(shù)據(jù)類型數(shù)據(jù)類型的屬性MySQL關(guān)鍵字含義NULL數(shù)據(jù)列可包含NULL值NOTNULL數(shù)據(jù)列不允許包含NULL值DEFAULT默認(rèn)值PRIMARYKEY主鍵,用于確保指定行的唯一性AUTO_INCREMENT自動遞增,適用于整數(shù)類型UNSIGNED無符號CHARACTERSETname指定一個字符集練習(xí)練習(xí)使用時間和日期類型練習(xí)使用字符串類型存儲一篇新聞文章MySQL數(shù)據(jù)庫操作創(chuàng)建數(shù)據(jù)庫表:語法:CREATETABLE表名稱(列聲明);mysql>createtablestudents(->idintunsignednotnullauto_increment,->namechar(8)notnull,->sexchar(4)notnull,->agetinyintunsignednotnull,->telchar(13)nulldefault“-”,->primarykey(id)->);MySQL數(shù)據(jù)庫操作向表中插入數(shù)據(jù):語法:INSERT[INTO]表名[(列名1,列名2,列名3,...)]VALUES(值1,值2,值3,...);其中[]內(nèi)的內(nèi)容是可選的mysql>insertintostudentsvalues(NULL,"小明","男",20,);或mysql>insertintostudents(name,sex,age)values("小明","男",20);查詢表中的數(shù)據(jù):語法:SELECT列名稱FROM表名[查詢條件];其中[]內(nèi)的內(nèi)容是可選的mysql>selectname,agefromstudents;MySQL數(shù)據(jù)庫操作查詢語句里的where子句:語法:SELECT列名稱FROM表名WHERE條件;即“WHERE列名=值”的形式,對一般的比較運(yùn)算符都是支持的,例如=、>、<、>=、<、!=以及一些擴(kuò)展運(yùn)算符is[not]null、in、like等等。還可以對查詢條件使用or和and進(jìn)行組合查詢mysql>select*fromstudentswhereage>20;排序:語法:SELECT列名稱FROM表名ORDERBY列名[ASC[DESC]];mysql>select*fromstudentsorderbyagedesc;MySQL數(shù)據(jù)庫操作刪除表中的數(shù)據(jù):語法:DELETEFROM表名WHERE刪除條件;mysql>delete

fromstudentswhereage>20;更新表中的數(shù)據(jù):語法:UPDATE表名稱SET列名1=新值1,列名2=新值2,...WHERE更新條件;mysql>update

studentssetname="wzh"whereid=1;MySQL數(shù)據(jù)庫操作修改表字段:語法1:ALERTTABLE表名CHANGE列名新列名新數(shù)據(jù)類型;語法2:ALERTTABLE表名MODIFY列名新數(shù)據(jù)類型;mysql>altertablestudentschangeteltelphonechar(13)default"-";添加表字段:語法:ALERTTABLE表名ADD列名

數(shù)據(jù)類型[after插入位置];mysql>altertablestudentsaddaddresschar(60);mysql>altertablestudentsaddbirthdaydateafterage;MySQL數(shù)據(jù)庫操作重命名表:語法:ALERTTABLE表名RENAME新表名;mysql>altertablestudentsrenameworkmates;刪除表字段:語法:ALERTTABLE表名DROP列名;mysql>altertablestudentsdropbirthday;MySQL可視化管理工具介紹常用的MySQL可視化管理工具:MySQLWorkbench下載地址:/downloads/workbench/Navicat下載地址:/downloadSQLyog下載地址:/product/sqlyogPHP連接MySQL數(shù)據(jù)庫PHP5及以上版本建議使用以下方式連接MySQL:MySQLiextension("i"意為improved)PDO(PHPDataObjects)在PHP早期版本中我們使用MySQL擴(kuò)展。但該擴(kuò)展在2012年開始不建議使用。MySQLi和PDO對比:1、PDO應(yīng)用在12種不同數(shù)據(jù)庫中,MySQLi只針對MySQL數(shù)據(jù)庫。所以,如果你的項(xiàng)目需要在多種數(shù)據(jù)庫中切換,建議使用PDO,這樣你只需要修改連接字符串和部門查詢語句即可。使用MySQLi,如果不同數(shù)據(jù)庫,你需要重新所有代碼,包括查詢。2、兩者都是面向?qū)ο蟆?、兩者都支持預(yù)處理語句。預(yù)處理語句可以防止SQL注入,對于web項(xiàng)目的安全性是非常重要的。PHP連接MySQL數(shù)據(jù)庫連接MySQL:<?php//實(shí)例(MySQLi-面向?qū)ο?$servername="localhost";$username="username";$password="password";//創(chuàng)建連接$conn=newmysqli($servername,$username,$password);//檢測連接if($conn->connect_error){die(

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論