版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Web應(yīng)用系統(tǒng)安全開發(fā)5
.
1
M
y
S
Q
L
數(shù)據(jù)庫的使用5.1.1
MySQL數(shù)據(jù)庫概述1.
MySQL數(shù)據(jù)庫簡介?數(shù)據(jù)庫(Database)是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲(chǔ)和管理數(shù)據(jù)的倉庫。?關(guān)系型數(shù)據(jù)庫是建立在關(guān)系模型基礎(chǔ)上的數(shù)據(jù)庫,借助于集合代數(shù)等數(shù)學(xué)概念和方法來處理數(shù)據(jù)庫中的數(shù)據(jù)。?MySQL是目前最為流行的數(shù)據(jù)庫管理系統(tǒng),它是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),由瑞典MySQL
AB公司開發(fā)。?目前MySQL被廣泛應(yīng)用于互聯(lián)網(wǎng)上的中小型網(wǎng)站中。?MySQL官方網(wǎng)站的網(wǎng)址是“www.mysql.com”。(1)支持跨平臺(tái):MySQL支持Windows、Linux、MacOS、FreeBSD、OpenBSD、OS/2Wrap、Solaris和SunOS等多種操作系統(tǒng)平臺(tái)。(2)支持多種開發(fā)語言:MySQL為多種開發(fā)語言提供了API支持。這些開發(fā)語言包括C、C++、C#、Delphi、
Java、Perl、PHP、Python、Ruby等。(3)運(yùn)行速度快:使用優(yōu)化的SQL查詢算法,有效地提高查詢速度。(4)數(shù)據(jù)庫存儲(chǔ)容量大:MySQL數(shù)據(jù)庫的最大有效表容量通常由操作系統(tǒng)對文件大小的限制決定,而不是由MySQL內(nèi)部限制決定。
(5)安全性高:靈活安全的權(quán)限和密碼系統(tǒng)允許主機(jī)的基本驗(yàn)證。連接到服務(wù)器時(shí),所有密碼傳輸均采用加密的形式。(6)成本低:MySQL數(shù)據(jù)庫是一個(gè)完全免費(fèi)的產(chǎn)品,用戶可以直接從網(wǎng)上下載。2.
MySQL的特點(diǎn)基于MySQL以上特點(diǎn),再結(jié)合PHP優(yōu)勢,因此運(yùn)用PHP和MySQL聯(lián)合開發(fā)Web應(yīng)用系統(tǒng)具有很好的優(yōu)勢。(1)與其他開發(fā)Web應(yīng)用系統(tǒng)的組合相比,PHP與MySQL的組合更加安全,運(yùn)行速度更快。(2)MySQL數(shù)據(jù)庫是一個(gè)快速、健壯、多用戶的SQL數(shù)據(jù)庫服務(wù)器,它支持多線程、關(guān)鍵任務(wù)以及重負(fù)載生產(chǎn)系統(tǒng)的使用,可以將它嵌入到一個(gè)大型的軟件中去。 (3)二者都為免費(fèi)資源,且都簡單易用,安全效率比ASP+MSSQL等開發(fā)組合要好很多。(4)跟PHP一樣,MySQL的入門門檻也較低,絕大多數(shù)學(xué)了標(biāo)準(zhǔn)SQL語句的程序員都很容易轉(zhuǎn)型為MySOL程序員?;谝陨系锰飒?dú)厚的特點(diǎn),使用以PHP為核心的PHP+MySQL經(jīng)典組合來開發(fā)Web應(yīng)用,將大大提高程序員的工作效率,且花費(fèi)也較少。3.
PHP與MySQL的完美結(jié)合5.1.2
MySQL數(shù)據(jù)庫的數(shù)據(jù)類型1.
數(shù)值類型MySQL支持所有標(biāo)準(zhǔn)SQL數(shù)值數(shù)據(jù)類型。這些類型包括嚴(yán)格數(shù)值數(shù)據(jù)類型(INTEGER、SMALLINT、DECIMAL和
NUMERIC),以及近似數(shù)值數(shù)據(jù)類型(FLOAT、REAL和DOUBLEPRECISION)。作為SQL標(biāo)準(zhǔn)的擴(kuò)展,MySQL也支持整數(shù)類型TINYINT、MEDIUMINT和BIGINT。每個(gè)整數(shù)類型的存儲(chǔ)和范圍
見表所示。2.日期/時(shí)間類型表示時(shí)間值的DATE和時(shí)間類型為DATETIME、DATE、TIMESTAMP、TIME和YEAR。每個(gè)時(shí)間類型有一個(gè)有效
值范圍和一個(gè)“零”值,當(dāng)指定不合法的MySQL不能表示的值時(shí)使用“零”值。TIMESTAMP類型有專有的自動(dòng)更新特性。日期/時(shí)間類型的存儲(chǔ)和范圍見表6-2所示。3.字符串類型字符串類型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。字符串類型的存儲(chǔ)
和范圍見表6-3所示。5.1.3
MySQL服務(wù)器的基本操作1.
啟動(dòng)MySQL服務(wù)器啟動(dòng)MySQL服務(wù)器常用的方法有兩種:命令提示符啟動(dòng)和系統(tǒng)服務(wù)器啟動(dòng)。(1)采用命令提示符啟動(dòng)具體操作是:右擊“開始”→“運(yùn)行”菜單,在彈出的“運(yùn)行”對話框中輸入“cmd”,按“Enter”鍵進(jìn)
入DOS窗口。在命令提示符下輸入“net
start
mysql80”,按“Enter”鍵即可啟動(dòng)MySQL服務(wù)器。1.
啟動(dòng)MySQL服務(wù)器(2)采用系統(tǒng)服務(wù)器啟動(dòng)將MySQL設(shè)置為Windows服務(wù)后,可以通過系統(tǒng)服務(wù)器直接啟動(dòng)MySQL服務(wù)器。具體操作是:右擊桌面上的“計(jì)算機(jī)”圖標(biāo),在彈出的快捷菜單中選擇“管理”,打開“計(jì)算機(jī)管理”對話框。在左側(cè)列表中選擇“服務(wù)和應(yīng)用程序”→“服務(wù)”,在右側(cè)打開“服務(wù)”窗格,右擊服務(wù)列表中的“MySQL”,
在彈出的快捷菜單中選擇“啟動(dòng)”。2.
連接和斷開MySQL服務(wù)器(1)連接MySQL服務(wù)器通過mysql命令可以輕松連接MySQL服務(wù)器。在啟動(dòng)MySQL服務(wù)器后,打開命令提示符窗口,在命令提示符下輸入“mysql-u
root-p”后按“Enter”鍵,顯示提示信息“Enterpassword:”,輸入之前安裝MySQL時(shí)設(shè)置的密碼“123456”,回車。2.
連接和斷開MySQL服務(wù)器(2)斷開MySQL服務(wù)器如果要斷開與MySQL服務(wù)器的連接,可以在mysql提示符下輸入“exit”或“quit”命令斷開MySQL連接。3.
停止MySQL服務(wù)器(1)采用命令提示符具體操作是:右擊“開始”→“運(yùn)行”菜單,在彈出的“運(yùn)行”對話框中輸入“cmd”,按“Enter”鍵進(jìn)
入DOS窗口。在命令提示符下輸入“netstop
MySQL80”,按回車鍵后會(huì)看到MySQL的關(guān)閉信息。3.
停止MySQL服務(wù)器(2)采用系統(tǒng)服務(wù)器具體操作是:右擊桌面上的“計(jì)算機(jī)”圖標(biāo),在彈出的快捷菜單中選擇“管理”,打開“計(jì)算機(jī)管理”對話框。在左側(cè)列表中選擇“服務(wù)和應(yīng)用程序”→“服務(wù)”,在右側(cè)打開“服務(wù)”窗格,右擊服務(wù)列表中的“MySQL80”,在彈出的快捷菜單中選擇“停止”。5.1.4
MySQL數(shù)據(jù)庫的基本操作1.
創(chuàng)建數(shù)據(jù)庫使用createdatabase語句可以輕松創(chuàng)建MySQL數(shù)據(jù)庫。其語法格式如下:createdatabase
database_name;其中,參數(shù)database_name表示所要?jiǎng)?chuàng)建的數(shù)據(jù)庫名。例如,通過createdatabase語句創(chuàng)建一個(gè)名稱為“db_college”的數(shù)據(jù)庫,如圖所示。1.
創(chuàng)建數(shù)據(jù)庫數(shù)據(jù)庫的命名遵循以下規(guī)則: (1)數(shù)據(jù)庫名可以由字母、數(shù)字、下畫線、@、#和$字符組成,其中,字母可以是小寫或大寫的英文字母,也可以是其他語言的字母字符。(2)首字母不能是數(shù)字或$字符。(3)不能使用MySQL關(guān)鍵字作為數(shù)據(jù)庫名或表名。(4)數(shù)據(jù)庫名中不能有空格。(5)數(shù)據(jù)庫名最長可為64個(gè)字符,而別名最多可達(dá)256個(gè)字符。(6)默認(rèn)情況下,Windows下數(shù)據(jù)庫名和表名的大小寫是不敏感的,而在Linux下數(shù)據(jù)庫名和表名的大小寫是敏感的。為便于數(shù)據(jù)庫在平臺(tái)間移植,建議采用小寫形式來定義數(shù)據(jù)庫名和表名。2.
查看數(shù)據(jù)庫使用show命令可以查看MySQL服務(wù)器中現(xiàn)有的數(shù)據(jù)庫信息。其語法格式如下:showdatabases;例如,下面使用show命令查看此時(shí)MySQL服務(wù)器中的數(shù)據(jù)庫信息,如圖所示。2.
查看數(shù)據(jù)庫MySQL中的數(shù)據(jù)庫可以分為系統(tǒng)數(shù)據(jù)庫和用戶數(shù)據(jù)庫兩大類。
(1)系統(tǒng)數(shù)據(jù)庫是指,安裝完MySQL服務(wù)器后附帶的一些數(shù)據(jù)庫。如圖中的information_schema、mysql、performance_schema和sys。系統(tǒng)數(shù)據(jù)庫會(huì)記錄一些必需的信息,用戶不能直接修改這些數(shù)據(jù)庫。(2)用戶數(shù)據(jù)庫是用戶根據(jù)實(shí)際需求創(chuàng)建的數(shù)據(jù)庫,如前面創(chuàng)建的db_college。3.
選擇數(shù)據(jù)庫在創(chuàng)建數(shù)據(jù)庫后,并不能直接操作該數(shù)據(jù)庫,還要選擇該數(shù)據(jù)庫,使其成為當(dāng)前數(shù)據(jù)庫。使用use語句可以選擇一個(gè)數(shù)據(jù)庫。其語法格式如下:usedatabase_name;例如,選擇前面創(chuàng)建的“db_college”數(shù)據(jù)庫,使其成為當(dāng)前數(shù)據(jù)庫,如圖所示。4.
刪除數(shù)據(jù)庫使用dropdatabase語句可以刪除數(shù)據(jù)庫。其語法格式如下:dropdatabase
database_name;例如,使用dropdatabase語句刪除前面創(chuàng)建的“db_college”數(shù)據(jù)庫,如圖所示。5.1.5
MySQL數(shù)據(jù)表的基本操作1.
創(chuàng)建數(shù)據(jù)表創(chuàng)建表就是在數(shù)據(jù)庫中創(chuàng)建新表,該操作是進(jìn)行其他表操作的基礎(chǔ)。在MySQL數(shù)據(jù)庫管理系統(tǒng)中創(chuàng)建表可以使用create
table語句來實(shí)現(xiàn)。其語法格式如下。create
table
table_name(屬性名數(shù)據(jù)類型,屬性名數(shù)據(jù)類型,...屬性名數(shù)據(jù)類型)其中,table_name表示要?jiǎng)?chuàng)建的表名,表名緊跟在關(guān)鍵字create
table后面。表的具體內(nèi)容定義在圓括號中,各列之間用逗號分隔。其中,“屬性名”表示表字段名稱,“數(shù)據(jù)類型”指定字段的數(shù)據(jù)類型。1.
創(chuàng)建數(shù)據(jù)庫例如,執(zhí)行SQL語句創(chuàng)建數(shù)據(jù)庫“db_school”,并在數(shù)據(jù)庫中創(chuàng)建表“tb_admin”。輸入以下語句,結(jié)果如圖所示。繼續(xù)輸入以下createtable語句,創(chuàng)建表“tb_admin”,輸入以下語句,結(jié)果如圖所示。2.
查看表結(jié)構(gòu)如需要查看數(shù)據(jù)庫中表的結(jié)構(gòu),可以使用SQL語句describe來實(shí)現(xiàn)。
其語法格式如下:describe
table_name;其中的table_name表示所要查看的表名稱。例如,查看表“tb_admin”的數(shù)據(jù)結(jié)構(gòu),輸入以下語句,結(jié)果如圖所示。3.
修改表結(jié)構(gòu)修改表結(jié)構(gòu)是指增加或刪除字段、修改字段名或字段類型,設(shè)置或取消主鍵外鍵等。如要修改數(shù)據(jù)庫中表的結(jié)構(gòu),可以使用SQL語句alter
table來實(shí)現(xiàn)。其語法格式如下:alter
table
table_name
alter_spec[,alter_spec]…;其中的table_name表示所要修改的表名,alter_spec子句定義要修改的內(nèi)容,其語法格式如下:alter[column]col_name{set
default
literal|drop
default}modify[column]create_definitionadd[column]create_definition[first|after
column_name]add
index[index_name](index_col_name,…)add
primary
key(index_col_name,…)add
unique[index_name](index_col_name,…)drop[column]col_namedrop
primary
keydrop
index
index_name//修改字段名稱//修改字段類型//添加新字段
//添加索引名稱//添加主鍵名稱//添加唯一索引//刪除字段名
//刪除主鍵名//刪除索引名其中,alter
table語句允許指定多個(gè)alter_spec子句,子句之間使用逗號分隔,每個(gè)子句表示對表的一個(gè)修改。3.
修改表結(jié)構(gòu)例如,執(zhí)行SQL語句,在表“tb_admin”中添加一個(gè)新字段tel,類型為varchar(30),not
null,將字段name的類型由varchar(50)修改為varchar(40)。輸入以下語句,結(jié)果如圖所示。接著輸入以下語句,并按“Enter”鍵,查看修改后的表結(jié)構(gòu)。輸入以下語句,結(jié)果如圖所示。4.
重命名表數(shù)據(jù)庫中的表名是唯一的,不能重復(fù)。重命名表可以使用SQL語句alter
table來實(shí)現(xiàn)。其語法格式如下:alter
table
old_table_namerename[to]new_table_name;其中的old_table_name表示所要修改的表名,new_table_name表示修改后的表名。需要注意的是,所要操作
的表對象必須在數(shù)據(jù)庫中已經(jīng)存在。例如,執(zhí)行SQL語句,將數(shù)據(jù)庫“db_school”中的“tb_admin”表的名稱修改為“t_admin”。輸入以下語句,結(jié)果如圖所示。為檢驗(yàn)數(shù)據(jù)庫“db_school”中是否已經(jīng)將表“tb_admin”的名稱修改為“t_admin”,輸入以下語句,結(jié)果如圖所示。4.
重命名表5.
刪除表刪除表是指刪除數(shù)據(jù)庫中已經(jīng)存在的表。在刪除表時(shí)會(huì)同時(shí)刪除表中所保存的所有數(shù)據(jù),所以刪除時(shí)要特別小心。刪除表可以使用SQL語句drop
table來實(shí)現(xiàn)。其語法格式如下:droptable
table_name;其中的table_name表示所要?jiǎng)h除的表名稱,所要?jiǎng)h除的表必須是數(shù)據(jù)庫中已經(jīng)存在的表。5.
刪除表例如,執(zhí)行SQL語句,將數(shù)據(jù)庫“db_school”中的“t_admin”表刪除。輸入以下語句,結(jié)果如圖所示。為檢驗(yàn)數(shù)據(jù)庫“db_school”中是否還存在表“t_admin”,輸入以下語句,結(jié)果如圖所示。5.1.6
MySQL表記錄的基本操作1.
插入記錄在創(chuàng)建好數(shù)據(jù)庫和數(shù)據(jù)表后,就可以向數(shù)據(jù)表中添加記錄了,該操作可以使用insert語句來實(shí)現(xiàn)。
其語法格式如下:insert
into
table_name(column_name,column_name2,…)values(value1,value2,…);在MySQL中,一次可以同時(shí)插入多行記錄,各行記錄的值清單在values關(guān)鍵字后以逗號“,”分隔,而標(biāo)準(zhǔn)的SQL語句一次只能插入一行記錄。例如,執(zhí)行SQL語句,向數(shù)據(jù)庫“db_school”中的“tb_admin”表中插入一條數(shù)據(jù)信息。輸入以下語句,結(jié)果如圖所示。其語法格式如下:selectfieldfrom
table_namewhere
conditionorderby
fileldm1[ASC|DESC]
limitrow_countgroupbyfield2.
查詢數(shù)據(jù)庫記錄使用數(shù)據(jù)查詢語句select,可以在數(shù)據(jù)庫中查詢指定的數(shù)據(jù)。//要查詢的內(nèi)容,選擇哪些列//指定數(shù)據(jù)表//查詢時(shí)需要滿足的條件//對查詢結(jié)果進(jìn)行排序的條件//限定輸出的查詢結(jié)果//對查詢結(jié)果進(jìn)行分組的條件2.
查詢數(shù)據(jù)庫記錄(1)查詢單個(gè)數(shù)據(jù)表在使用select語句時(shí),首先需要確定所要查詢的列。當(dāng)要查詢整個(gè)數(shù)據(jù)表的數(shù)據(jù)時(shí),可以使用“*”代表所有列。語法格式如下:select*from
table_name;(2)查詢表中的一列或多列記錄要針對表中的一列或多列進(jìn)行查詢,只需在select后面指定要查詢的列名即可,多列之間用“,”分隔。語法如下:select
column_name1,column_name2,…fromtable_namewherecondition;2.
查詢數(shù)據(jù)庫記錄(3)多表查詢當(dāng)針對多個(gè)數(shù)據(jù)表進(jìn)行查詢時(shí),關(guān)鍵是where子句中查詢條件的設(shè)置,要查找的字段名最好用“表名.字段名”的形式表示,這樣可以防止因表之間字段名重復(fù)而產(chǎn)生的錯(cuò)誤。在where子句中多個(gè)表之間所形成的聯(lián)動(dòng)關(guān)系應(yīng)按如下形式書寫:table1.column=table2.columnandothercondition;多表查詢的SQL語句格式如下:select
column_namefromtable1,table2…wheretable1.column=table2.columnandothercondition;3.
修改記錄要修改某條記錄,可以使用update語句。其語法格式如下:update
table_name
set
column_name=new_value1,column_name2=new_value2,…[wherecondition]其中,set子句給出要修改的列及其值;where子句可選,一般用于指定記錄中哪行應(yīng)該被更新,否則,所有記
錄行都將被更新。3.
修改記錄例如,執(zhí)行SQL語句,將數(shù)據(jù)庫“db_school”中“tb_admin”表中id值為1001的用戶密碼123456修改為654321。輸入以下語句,結(jié)果如圖所示。為驗(yàn)證修改結(jié)果,可以輸入以下語句并按“Enter”鍵,來查看修改后的記錄信息,結(jié)果如圖所示。4.
刪除記錄對于數(shù)據(jù)庫中已失去意義或者錯(cuò)誤的數(shù)據(jù),可以將它們刪除。使用delete語句可以實(shí)現(xiàn)該功能。
其語法格式如下:delete
from
table_name
where
condition;該語句在執(zhí)行過程中,如果指定了where條件,將按照指定條件進(jìn)行刪除;如果未指定where條件,將刪除所有記錄。例如,執(zhí)行SQL語句,刪除數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版美容院美容院品牌保護(hù)與侵權(quán)處理協(xié)議4篇
- 2025版協(xié)議離婚詳細(xì)流程與婚姻調(diào)解服務(wù)合同3篇
- 二零二五年度購房合同書樣本:智能家居配置3篇
- 二零二五版苗木種植基地病蟲害防治合作協(xié)議樣本4篇
- 2025年度醫(yī)療設(shè)施租賃合同合法經(jīng)營保障醫(yī)療服務(wù)質(zhì)量4篇
- 2025年度美容院美容院消防安全檢查與整改合同4篇
- 二零二五版智能電網(wǎng)建設(shè)項(xiàng)目施工協(xié)議3篇
- 浙江中醫(yī)藥大學(xué)《導(dǎo)游服務(wù)英語》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025版汽車專用輪胎批發(fā)代理合作協(xié)議范本4篇
- 租賃合同(二零二五年度):魚池場地租賃、養(yǎng)殖技術(shù)指導(dǎo)及分成6篇
- 四川省成都市武侯區(qū)2023-2024學(xué)年九年級上學(xué)期期末考試化學(xué)試題
- 初一到初三英語單詞表2182個(gè)帶音標(biāo)打印版
- 2024年秋季人教版七年級上冊生物全冊教學(xué)課件(2024年秋季新版教材)
- 2024年共青團(tuán)入團(tuán)積極分子考試題庫(含答案)
- 碎屑巖油藏注水水質(zhì)指標(biāo)及分析方法
- 【S洲際酒店婚禮策劃方案設(shè)計(jì)6800字(論文)】
- 鐵路項(xiàng)目征地拆遷工作體會(huì)課件
- 醫(yī)院死亡報(bào)告年終分析報(bào)告
- 中國教育史(第四版)全套教學(xué)課件
- 2023年11月英語二級筆譯真題及答案(筆譯實(shí)務(wù))
- 上海民辦楊浦實(shí)驗(yàn)學(xué)校初一新生分班(摸底)語文考試模擬試卷(10套試卷帶答案解析)
評論
0/150
提交評論