PHP基礎(chǔ)案例與項(xiàng)目開(kāi)發(fā)課件 項(xiàng)目5 制作員工檔案管理系統(tǒng)_第1頁(yè)
PHP基礎(chǔ)案例與項(xiàng)目開(kāi)發(fā)課件 項(xiàng)目5 制作員工檔案管理系統(tǒng)_第2頁(yè)
PHP基礎(chǔ)案例與項(xiàng)目開(kāi)發(fā)課件 項(xiàng)目5 制作員工檔案管理系統(tǒng)_第3頁(yè)
PHP基礎(chǔ)案例與項(xiàng)目開(kāi)發(fā)課件 項(xiàng)目5 制作員工檔案管理系統(tǒng)_第4頁(yè)
PHP基礎(chǔ)案例與項(xiàng)目開(kāi)發(fā)課件 項(xiàng)目5 制作員工檔案管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩81頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

項(xiàng)目5制作員工檔案管理系統(tǒng)項(xiàng)目導(dǎo)入云林科技為了更好地管理員工,將開(kāi)發(fā)一個(gè)員工檔案管理系統(tǒng),唐經(jīng)理把任務(wù)交給技術(shù)部周工程師(以下簡(jiǎn)稱(chēng)周工)來(lái)完成,并提出如下需求:第一,只有管理員用戶(hù)才可以登錄系統(tǒng)后臺(tái)進(jìn)行管理;第二,員工檔案管理系統(tǒng)能實(shí)現(xiàn)員工信息的查看、添加、刪除和修改等功能。員工檔案管理系統(tǒng)界面設(shè)計(jì)如圖5-1所示。圖5-1員工檔案管理系統(tǒng)界面設(shè)計(jì)【項(xiàng)目分析】本項(xiàng)目主要通過(guò)PHP對(duì)MySQL數(shù)據(jù)庫(kù)的操作來(lái)實(shí)現(xiàn)員工檔案管理系統(tǒng)。本項(xiàng)目將學(xué)習(xí)MySQL數(shù)據(jù)庫(kù)基礎(chǔ)、MySQL數(shù)據(jù)庫(kù)的操作和操作MySQL數(shù)據(jù)庫(kù)的常用函數(shù)等內(nèi)容。再綜合運(yùn)用這些知識(shí)來(lái)完成員工檔案管理系統(tǒng)的制作,全面提高綜合編程能力?!局R(shí)目標(biāo)】了解MySQL的特點(diǎn)。熟悉MySQL的操作方式。熟悉使用PHP操作MySQL數(shù)據(jù)庫(kù)的方法?!灸芰δ繕?biāo)】能夠通過(guò)命令操作MySQL數(shù)據(jù)庫(kù)。能夠熟練使用phpMyAdmin圖形化管理工具。能夠使用PHP函數(shù)來(lái)操作MySQL數(shù)據(jù)庫(kù)?!舅刭|(zhì)目標(biāo)】培養(yǎng)愛(ài)國(guó)情懷,增強(qiáng)文化自信。5.1MySQL概述

數(shù)據(jù)庫(kù)(Database)是按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù),每個(gè)數(shù)據(jù)庫(kù)都有一個(gè)或多個(gè)不同的應(yīng)用程序接口(Application

Program

Interface,API)用于創(chuàng)建、訪問(wèn)、管理、搜索和復(fù)制所保存的數(shù)據(jù),也可以將數(shù)據(jù)存儲(chǔ)在文件中,但是在文件中讀寫(xiě)數(shù)據(jù)的速度相對(duì)較慢。所以,通常使用關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(RelationalDatabaseManagementSystem,RDBMS)來(lái)存儲(chǔ)和管理數(shù)據(jù)。所謂的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),是建立在關(guān)系模型基礎(chǔ)上的數(shù)據(jù)庫(kù),借助于集合代數(shù)等數(shù)學(xué)概念和方法來(lái)處理數(shù)據(jù)庫(kù)中的數(shù)據(jù)。

關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的特點(diǎn)如下。(1)數(shù)據(jù)以表格的形式出現(xiàn)。(2)每行為各種記錄名稱(chēng)。(3)每列為記錄名稱(chēng)所對(duì)應(yīng)的數(shù)據(jù)域。(4)許多的行和列組成一張表單。(5)若干的表單組成數(shù)據(jù)庫(kù)。MySQL是一個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典的MySQLAB公司開(kāi)發(fā),目前屬于Oracle公司旗下產(chǎn)品。

MySQL是最流行的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)之一,在Web應(yīng)用方面,MySQL是最好的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)之一。MySQL所使用的結(jié)構(gòu)查詢(xún)語(yǔ)言(StructureQueryLanguage,SQL)是用于訪問(wèn)數(shù)據(jù)庫(kù)的常用標(biāo)準(zhǔn)化語(yǔ)言。由于MySQL具有體積小、速度快、總體成本低,尤其是開(kāi)放源代碼等特點(diǎn),一般中小型網(wǎng)站都選擇MySQL作為數(shù)據(jù)庫(kù)。5.1.1MySQL的特點(diǎn)

總的來(lái)說(shuō),MySQL有如下特點(diǎn)。(1)MySQL是開(kāi)源的,不需要支付額外的費(fèi)用。(2)MySQL使用標(biāo)準(zhǔn)的SQL數(shù)據(jù)語(yǔ)言形式。(3)MySQL允許存在于多個(gè)系統(tǒng)上,并且支持多種編程語(yǔ)言。這些編程語(yǔ)言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和TCL等。(4)MySQL對(duì)PHP有很好的支持,PHP是目前流行的Web開(kāi)發(fā)語(yǔ)言。(5)MySQL支持大型數(shù)據(jù)庫(kù),支持擁有5

000萬(wàn)條記錄的數(shù)據(jù)倉(cāng)庫(kù),32位系統(tǒng)表文件最大可支持4GB,64位系統(tǒng)表文件最大可支持8TB。(6)MySQL是可以定制的,采用了通用公共許可證(GeneralPublicLicense,GPL)協(xié)議,可以修改源代碼來(lái)開(kāi)發(fā)自己的MySQL系統(tǒng)。數(shù)據(jù)類(lèi)型定義了可以對(duì)數(shù)據(jù)執(zhí)行的操作、數(shù)據(jù)的含義以及存儲(chǔ)該類(lèi)型值的方式,在MySQL數(shù)據(jù)庫(kù)中,數(shù)據(jù)類(lèi)型也稱(chēng)為字段類(lèi)型或列類(lèi)型。數(shù)據(jù)表中的每個(gè)字段都可以設(shè)置數(shù)據(jù)類(lèi)型。MySQL支持多種數(shù)據(jù)類(lèi)型,大致可以分為3類(lèi):數(shù)值類(lèi)型、日期/時(shí)間類(lèi)型和字符串(字符)類(lèi)型等。5.1.2MySQL數(shù)據(jù)類(lèi)型

1.?dāng)?shù)值類(lèi)型MySQL支持所有標(biāo)準(zhǔn)SQL數(shù)值類(lèi)型。這些類(lèi)型包括嚴(yán)格數(shù)值類(lèi)型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似數(shù)值類(lèi)型(FLOAT、REAL和DOUBLEPRECISION)。關(guān)鍵字INT是INTEGER的同義詞,關(guān)鍵字DEC是DECIMAL的同義詞。

作為標(biāo)準(zhǔn)SQL的擴(kuò)展,MySQL也支持?jǐn)?shù)值類(lèi)型TINYINT、MEDIUMINT和BIGINT。部分?jǐn)?shù)值類(lèi)型的存儲(chǔ)空間和取值范圍如表5-1所示。類(lèi)型存儲(chǔ)空間取值范圍(有符號(hào))取值范圍(無(wú)符號(hào))TINYINT1字節(jié)-128~1270~255SMALLINT2字節(jié)-32

768~32

7670~65

535MEDIUMINT3字節(jié)-8

388

608~8

388

6070~16

777

215INT4字節(jié)-2

147

483

648~2

147

483

6470~4

294

967

295BIGINT8字節(jié)-9

223

372

036

854

775

808~9

223

372

036

854

775

8070~18

446

744

073

709

551

615表5-1

部分?jǐn)?shù)值類(lèi)型的存儲(chǔ)空間和取值范圍2.日期/時(shí)間類(lèi)型日期/時(shí)間類(lèi)型包括DATETIME、DATE、TIMESTAMP、TIME和YEAR等。每個(gè)日期/時(shí)間類(lèi)型都有一個(gè)有效值范圍和一個(gè)“零”值,當(dāng)指定MySQL不能表示的值時(shí)使用“零”值。TIMESTAMP類(lèi)型有專(zhuān)有的自動(dòng)更新特性。日期/時(shí)間類(lèi)型的存儲(chǔ)空間、取值范圍和格式如表5-2所示。類(lèi)型存儲(chǔ)空間取值范圍格式DATE3字節(jié)1000-01-01—9999-12-31YYYY-MM-DDTIME3字節(jié)'-838:59:59'—'838:59:59'HH:MM:SSYEAR1字節(jié)1901—2155YYYYDATETIME8字節(jié)1000-01-0100:00:00—9999-12-3123:59:59YYYY-MM-DDHH:MM:SSTIMESTAMP4字節(jié)1970-01-0100:00:00—2037年某時(shí)YYYYMMDDHHMMSS表5-2

日期/時(shí)間類(lèi)型的存儲(chǔ)空間、取值范圍和格式3.字符串類(lèi)型字符串類(lèi)型包括CHAR、VARCHAR、TINYBLOB、TINYTEXT、BLOB、TEXT和MEDIUMBLOB等。字符串類(lèi)型的大小和用途如表5-3所示。類(lèi)型大小/字節(jié)用途CHAR0~255定長(zhǎng)字符串VARCHAR0~65

535變長(zhǎng)字符串TINYBLOB0~255不超過(guò)255個(gè)字符的二進(jìn)制字符串TINYTEXT0~255短文本字符串BLOB0~65

535二進(jìn)制形式的長(zhǎng)文本數(shù)據(jù)TEXT0~65

535長(zhǎng)文本數(shù)據(jù)MEDIUMBLOB0~16

777

215二進(jìn)制形式的中等長(zhǎng)度文本數(shù)據(jù)MEDIUMTEXT0~16

777

215中等長(zhǎng)度文本數(shù)據(jù)LONGBLOB0~4

294

967

295二進(jìn)制形式的極大文本數(shù)據(jù)LONGTEXT0~4

294

967

295極大文本數(shù)據(jù)表5-3

字符串類(lèi)型的大小和用途BLOB是一個(gè)二進(jìn)制類(lèi)型的大對(duì)象,可以容納可變數(shù)量的數(shù)據(jù)。MySQL有4種BLOB類(lèi)型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它們只是可容納值的最大長(zhǎng)度不同。有4種TEXT類(lèi)型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT,分別對(duì)應(yīng)4種BLOB類(lèi)型,有相同的最大長(zhǎng)度和存儲(chǔ)需求。5.2.1啟動(dòng)和關(guān)閉MySQL服務(wù)器

進(jìn)行MySQL數(shù)據(jù)庫(kù)操作之前需要啟動(dòng)MySQL服務(wù)器,完成MySQL數(shù)據(jù)庫(kù)操作之后需要關(guān)閉MySQL服務(wù)器,以節(jié)約系統(tǒng)資源。1.啟動(dòng)MySQL服務(wù)器進(jìn)行MySQL數(shù)據(jù)庫(kù)操作之前需要啟動(dòng)MySQL服務(wù)器。5.2

使用命令行操作MySQL(1)從Windows命令行啟動(dòng)MySQL服務(wù)器

可以從命令行手動(dòng)啟動(dòng)MySQL服務(wù)器,這可以在任何版本的Windows中實(shí)現(xiàn)。具體操作是:依次單擊“開(kāi)始”→“附件”,右擊“命令提示符”,在彈出的快捷菜單中選擇“以管理員身份運(yùn)行”命令,在彈出的窗口中輸入“netstartmysql57”命令,按“Enter”鍵后會(huì)看到MySQL服務(wù)器的啟動(dòng)信息,如圖5-2所示。(2)以Windows服務(wù)方式啟動(dòng)MySQL服務(wù)器

在Windows系列版本中,一般都將MySQL服務(wù)器安裝為Windows服務(wù),當(dāng)Windows啟動(dòng)、停止時(shí),MySQL也自動(dòng)啟動(dòng)、停止。2.關(guān)閉MySQL服務(wù)器

完成MySQL數(shù)據(jù)庫(kù)操作之后需要關(guān)閉MySQL服務(wù)器,以節(jié)約系統(tǒng)資源。(1)從Windows命令行關(guān)閉MySQL服務(wù)器

可以從命令行手動(dòng)關(guān)閉MySQL服務(wù)器,這可以在任何版本的Windows中實(shí)現(xiàn)。

具體操作是:依次單擊“開(kāi)始”→“附件”,右擊“命令提示符”,從彈出的快捷菜單中選擇“以管理員身份運(yùn)行”命令,在彈出的窗口中輸入“netstopmysql57”,按“Enter”鍵后會(huì)看到MySQL服務(wù)器的關(guān)閉信息,如圖5-3所示。圖5-2

啟動(dòng)MySQL服務(wù)器

圖5-3關(guān)閉MySQL服務(wù)器(2)從Windows服務(wù)中關(guān)閉MySQL服務(wù)器單擊“開(kāi)始”→“控制面板”→“管理工具”,雙擊“服務(wù)”,選中“MySQL57”,再單擊左側(cè)的“停止”按鈕即可關(guān)閉MySQL服務(wù)器。

對(duì)MySQL數(shù)據(jù)庫(kù)的常用操作有連接MySQL服務(wù)器、創(chuàng)建數(shù)據(jù)庫(kù)、查看數(shù)據(jù)庫(kù)、選擇數(shù)據(jù)庫(kù)和刪除數(shù)據(jù)庫(kù)等。5.2.2操作MySQL數(shù)據(jù)庫(kù)

1.連接MySQL服務(wù)器

可用命令行方式連接MySQL服務(wù)器,命令的具體格式如下。mysql-u用戶(hù)名-p密碼-h服務(wù)器IP地址-PMySQL服務(wù)器端口號(hào)-D數(shù)據(jù)庫(kù)名

若MySQL服務(wù)器就是本機(jī),而且默認(rèn)端口為“3306”,那么命令可以簡(jiǎn)化為:mysql-u用戶(hù)名-p密碼要連接項(xiàng)目1中安裝好的MySQL服務(wù)器,具體方法是:依次單擊“開(kāi)始”→“附件”→“命令提示符”,從彈出的窗口中輸入“mysql-uroot-p”,按“Enter”鍵后會(huì)提示輸入密碼,輸入前面自己設(shè)置的密碼,即可連接MySQL服務(wù)器,如圖5-4所示。圖5-4

連接MySQL服務(wù)器2.創(chuàng)建數(shù)據(jù)庫(kù)在創(chuàng)建表之前,需要先創(chuàng)建數(shù)據(jù)庫(kù)。創(chuàng)建數(shù)據(jù)庫(kù)的語(yǔ)法格式如下。CREATEDATABASE數(shù)據(jù)庫(kù)名[[DEFAULT]CHARACTERSETcharset_name|[DEFAULT]COLLATEcollation_name];數(shù)據(jù)庫(kù)只需要?jiǎng)?chuàng)建一次,但是必須在每次啟動(dòng)MySQL會(huì)話時(shí)在使用前先選擇它。還可以在調(diào)用MySQL時(shí)通過(guò)命令行選擇數(shù)據(jù)庫(kù),只需要在提供連接參數(shù)之后指定數(shù)據(jù)庫(kù)名稱(chēng)。3.查看數(shù)據(jù)庫(kù)可以使用SHOWDATABASE命令查看服務(wù)器當(dāng)前存在什么數(shù)據(jù)庫(kù),不同MySQL服務(wù)器上的數(shù)據(jù)庫(kù)列表是不同的,但是很可能有mysql和test數(shù)據(jù)庫(kù)。mysql數(shù)據(jù)庫(kù)是必需的,因?yàn)樗枋隽擞脩?hù)訪問(wèn)權(quán)限,而test是安裝時(shí)創(chuàng)建的一個(gè)測(cè)試數(shù)據(jù)庫(kù),是空數(shù)據(jù)庫(kù),沒(méi)有任何表,也沒(méi)有實(shí)際用途,可將其刪除。請(qǐng)注意,如果沒(méi)有查看數(shù)據(jù)庫(kù)SHOWDATABASES權(quán)限,則不能看見(jiàn)所有數(shù)據(jù)庫(kù)。4.選擇數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)并不表示選定并使用它,所以你必須明確地操作連接它。為了使student成為當(dāng)前的數(shù)據(jù)庫(kù),使用“USE數(shù)據(jù)庫(kù)名”命令就可以切換不同的數(shù)據(jù)庫(kù)了。5.刪除數(shù)據(jù)庫(kù)刪除數(shù)據(jù)庫(kù)可以使用DROP語(yǔ)句,其語(yǔ)法格式如下。DROP{DATABASE|SCHEMA}[IFEXISTS]數(shù)據(jù)庫(kù)名;DROPDATABASE用于取消數(shù)據(jù)庫(kù)中的所用表和取消數(shù)據(jù)庫(kù)。使用此語(yǔ)句時(shí)要非常小心!如果要使用DROPDATABASE,則需要獲得數(shù)據(jù)庫(kù)DROP權(quán)限。IFEXISTS用于防止當(dāng)數(shù)據(jù)庫(kù)不存在時(shí)發(fā)生錯(cuò)誤。對(duì)MySQL數(shù)據(jù)表的常用操作有創(chuàng)建數(shù)據(jù)表、查看數(shù)據(jù)表、查看數(shù)據(jù)表結(jié)構(gòu)、修改數(shù)據(jù)表結(jié)構(gòu)和刪除數(shù)據(jù)表等。1.創(chuàng)建數(shù)據(jù)表數(shù)據(jù)表是存儲(chǔ)信息的容器,信息以二維表的形式存儲(chǔ)于數(shù)據(jù)表中。數(shù)據(jù)表由列和行組成,列也稱(chēng)為字段,每個(gè)字段用于存儲(chǔ)某種數(shù)據(jù)類(lèi)型的信息;行也稱(chēng)為記錄,每條記錄為數(shù)據(jù)表中的一條完整的信息。5.2.3操作MySQL數(shù)據(jù)表

創(chuàng)建并選定數(shù)據(jù)庫(kù)后就可以創(chuàng)建數(shù)據(jù)表,創(chuàng)建數(shù)據(jù)表的語(yǔ)法格式如下。CREATE[TEMPORARY]TABLE[IFNOTEXISTS]tbl_name[(create_definition,...)][table_options][select_statement]CREATETABLE用于創(chuàng)建帶給定名稱(chēng)的表,前提是必須擁有表的CREATE權(quán)限。默認(rèn)的情況是,表被創(chuàng)建到當(dāng)前的數(shù)據(jù)庫(kù)中。如果表已存在,或者如果沒(méi)有當(dāng)前數(shù)據(jù)庫(kù),則會(huì)出現(xiàn)錯(cuò)誤。表名稱(chēng)被指定為db_name.tbl_name,以便在特定的數(shù)據(jù)庫(kù)中創(chuàng)建表。不論是否有當(dāng)前數(shù)據(jù)庫(kù),都可以通過(guò)這種方式創(chuàng)建表。如果使用加引號(hào)的識(shí)別名,則應(yīng)對(duì)數(shù)據(jù)庫(kù)和表名稱(chēng)分別加引號(hào)。例如,'mydb'.'mytbl'是合法的,但'mydb.mytbl'是不合法的。2.查看數(shù)據(jù)表每個(gè)數(shù)據(jù)庫(kù)都可以有多個(gè)數(shù)據(jù)表,查看數(shù)據(jù)表的語(yǔ)法格式如下。SHOW[FULL]TABLES[FROMdb_name][LIKE'pattern']SHOWTABLES列舉了給定數(shù)據(jù)庫(kù)中的非TEMPORARY表。SHOW命令也支持FULL修飾符,這樣SHOWFULLTABLES就可以顯示第二個(gè)輸出列。對(duì)于一個(gè)表,第二列的值為BASETABLE;對(duì)于一個(gè)視圖,第二列的值為VIEW。如果對(duì)一個(gè)表沒(méi)有權(quán)限,則該表不會(huì)在來(lái)自SHOWTABLES的輸出中顯示。3.查看數(shù)據(jù)表結(jié)構(gòu)查看數(shù)據(jù)表結(jié)構(gòu)有兩種方法:DESCRIBE表名;SHOWFIELDSFROM表名;4.修改數(shù)據(jù)表結(jié)構(gòu)若用戶(hù)對(duì)數(shù)據(jù)表的結(jié)構(gòu)不滿意,則可以使用ALTERTABLE命令進(jìn)行修改,ALTERTABLE命令用于修改原有表的結(jié)構(gòu)。例如,可以增加或刪除列、創(chuàng)建或取消索引、修改原有列的類(lèi)型、重新命名列或表,還可以修改表的備注和表的類(lèi)型。修改數(shù)據(jù)表結(jié)構(gòu)的常用用法如下。(1)刪除列ALTERTABLE表名DROP列名稱(chēng)(2)增加列ALTERTABLE表名ADD列名稱(chēng)INTNOTNULL

COMMENT'注釋說(shuō)明'(3)修改列的類(lèi)型信息ALTERTABLE表名CHANGE列名稱(chēng)

新列名稱(chēng)BIGINTNOTNULL

COMMENT'注釋說(shuō)明'(4)重命名列ALTERTABLE表名CHANGE列名稱(chēng)

新列名稱(chēng)BIGINTNOTNULL

COMMENT'注釋說(shuō)明'(5)重命名表ALTERTABLE表名RENAME新表名

(6)刪除表中的主鍵ALTERTABLE表名DROPprimarykey(7)添加主鍵ALTERTABLEsj_resource_chargesADDCONSTRAINTPK_SJ_RESOURCE_CHARGESPRIMARYKEY(resid,resfromid)(8)添加索引ALTERTABLE

sj_resource_chargesaddindexINDEX_NAME(name);(9)添加唯一限制條件索引ALTERTABLEsj_resource_chargesadduniqueemp_name(cardnumber);(10)刪除索引altertabletablenamedropindexemp_name;5.刪除數(shù)據(jù)表刪除數(shù)據(jù)表的語(yǔ)法格式如下。DROP[TEMPORARY]TABLE[IFEXISTS]tbl_name[,tbl_name]...[RESTRICT|CASCADE]DROPTABLE用于取消一個(gè)或多個(gè)表,但必須有每個(gè)表的DROP權(quán)限才可以實(shí)現(xiàn)。使用此語(yǔ)句后,所有的表數(shù)據(jù)和表定義都會(huì)被取消,所以要小心!對(duì)于不存在的表,使用IFEXISTS可防止發(fā)生錯(cuò)誤。當(dāng)使用IFEXISTS時(shí),對(duì)于每個(gè)不存在的表,會(huì)生成一個(gè)警告信息。對(duì)MySQL數(shù)據(jù)表中數(shù)據(jù)常用的操作有添加表數(shù)據(jù)、更新表數(shù)據(jù)、查詢(xún)表數(shù)據(jù)和刪除表數(shù)據(jù)。1.添加表數(shù)據(jù)INSERT語(yǔ)句用于向一個(gè)已有的表中添加新行,其語(yǔ)法格式如下。INSERT[LOW_PRIORITY|DELAYED|HIGH_PRIORITY][IGNORE][INTO]tbl_name[(col_name,...)]VALUES({expr|DEFAULT},...),(...),...[ONDUPLICATEKEYUPDATEcol_name=expr,...]5.2.4操作MySQL數(shù)據(jù)

2.更新表數(shù)據(jù)UPDATE語(yǔ)句用于對(duì)數(shù)據(jù)庫(kù)中單個(gè)表的數(shù)據(jù)進(jìn)行修改,其語(yǔ)法格式如下。UPDATE[LOW_PRIORITY][IGNORE]tbl_nameSETcol_name1=expr1[,col_name2=expr2,...][WHEREwhere_definition][ORDERBY...][LIMITrow_count]3.查詢(xún)表數(shù)據(jù)SELECT語(yǔ)句用來(lái)從數(shù)據(jù)表中檢索信息,其語(yǔ)法格式如下。SELECTwhat_to_selectFROMwhich_tableWHEREconditions_to_satisfy;what_to_select表示想要看到的內(nèi)容,可以是列的列表,或用*表示所有列”。which_table指定想要從中檢索數(shù)據(jù)的表。WHERE子句是可選項(xiàng),如果選擇該項(xiàng),則conditions_to_satisfy指定行必須滿足的檢索條件。(1)選擇所有數(shù)據(jù)SELECT最簡(jiǎn)單的形式是從一個(gè)表中檢索所有數(shù)據(jù),其語(yǔ)法格式如下。SELECT*FROM表名;(2)選擇特殊行檢索整個(gè)表是容易的,只需要從SELECT語(yǔ)句中刪掉WHERE子句。但是一般不想看到整個(gè)表,特別是當(dāng)表變得很大時(shí)。相反,通常對(duì)回答一個(gè)具體的問(wèn)題更感興趣,在這種情況下在想要的信息上進(jìn)行一些限制,可以從表中只選擇特定的行,語(yǔ)法格式如下。SELECT*FROM表名WHERE字段名='要查詢(xún)的值';(3)選擇特殊列如果不想看到表中的所有列,就選擇感興趣的列,用逗號(hào)分開(kāi),語(yǔ)法格式如下。SELECT字段1,字段2FROM表名;(4)排序行可以使用ORDERBY子句將行按某種方式排序,使檢查查詢(xún)輸出更容易,其語(yǔ)法格式如下。SELECT字段1,字段2FROM表名ORDERBY字段;默認(rèn)排序是升序,最小的值在第一位。想要以降序排列,在排序的列名上增加DESC(降序)關(guān)鍵字即可??梢詫?duì)多列進(jìn)行排序,并且可以按不同的方向?qū)Σ煌牧羞M(jìn)行排序。(5)日期計(jì)算MySQL提供了幾個(gè)用來(lái)計(jì)算日期的函數(shù),如計(jì)算年齡或提取日期部分。想要確定每個(gè)人的年齡,可以計(jì)算當(dāng)前日期和出生日期之間的差。如果當(dāng)前日期的日歷年比出生日期的早,則減去一年。以下查詢(xún)顯示了每個(gè)人的出生日期、當(dāng)前日期和年齡,按age排序輸出。SELECTname,birth,CURDATE(),(YEAR(CURDATE())-YEAR(birth))-(RIGHT(CURDATE(),5)<RIGHT(birth,5))ASageFROMstu_tableORDERBYage;(6)NULL值操作NULL值是一種不屬于任何類(lèi)型的值。它通常用來(lái)表示“沒(méi)有數(shù)據(jù)”“數(shù)據(jù)未知”“數(shù)據(jù)缺失”“數(shù)據(jù)超出取值范圍”“與本數(shù)據(jù)列無(wú)關(guān)”“與本數(shù)據(jù)列的其他值不同”等多種含義。在許多情況下,NULL值是非常有用的。可以使用ISNULL和ISNOTNULL運(yùn)算符來(lái)判斷列是否為NULL值。SELECT1ISNULL,1ISNOTNULL;(7)模式匹配在有些情況下,模糊查詢(xún)是很有必要的,MySQL提供標(biāo)準(zhǔn)的SQL模式匹配,以及一種基于類(lèi)UNIX的實(shí)用程序如vi、grep和sed的擴(kuò)展正則表達(dá)式模式匹配的格式。SQL模式匹配使用“_”匹配任何單個(gè)字符,使用“%”匹配任意數(shù)目字符。在MySQL中,SQL的模式默認(rèn)是忽略大小寫(xiě)的,使用LIKE或NOTLIKE運(yùn)算符來(lái)實(shí)現(xiàn)是否忽略大小寫(xiě)地區(qū)匹配字符串。(8)計(jì)算行數(shù)在有些情況下,需要計(jì)算有多少符合條件的行。COUNT(*)函數(shù)用于計(jì)算行數(shù)。其語(yǔ)法格式如下。SELECTCOUNT(*)FROM表名;4.刪除表數(shù)據(jù)DELETE語(yǔ)句用于對(duì)數(shù)據(jù)庫(kù)中單個(gè)表的數(shù)據(jù)進(jìn)行刪除,其語(yǔ)法格式如下。DELETE[LOW_PRIORITY][QUICK][IGNORE]FROMtbl_name[WHEREwhere_definition][ORDERBY...][LIMITrow_count]若編寫(xiě)的DELETE語(yǔ)句中沒(méi)有WHERE子句,則所有行都被刪除。若不想知道被刪除的行的數(shù)目,有一個(gè)更快的方法,即使用TRUNCATETABLE。使用MySQL命令行的方式操作數(shù)據(jù)庫(kù)需要對(duì)MySQL和SQL知識(shí)非常熟悉,對(duì)使用者的要求較高,而且如果數(shù)據(jù)庫(kù)的訪問(wèn)量很大,列表中的數(shù)據(jù)讀取就會(huì)相當(dāng)困難。如果使用合適的圖形化工具,MySQL數(shù)據(jù)庫(kù)的管理就會(huì)變得相當(dāng)簡(jiǎn)單。幾乎每個(gè)開(kāi)發(fā)人員都有自己鐘愛(ài)的MySQL管理工具?,F(xiàn)在也有很多圖形化的MySQL管理工具,常用的有MyDBStudio、DBToolsManager、SQLwave和MyWebSQL等,其中最為常用的就是基于Web的phpMyAdmin圖形化管理工具。5.3

phpMyAdmin圖形化管理工具phpMyAdmin是一款使用PHP語(yǔ)言開(kāi)發(fā)的MySQL管理工具,該工具是基于Web跨平臺(tái)的管理程序,并且支持簡(jiǎn)體中文,用戶(hù)可以在官網(wǎng)下載最新版本。phpMyAdmin必須安裝在Web服務(wù)器上才可以使用。在項(xiàng)目1中搭建PHP運(yùn)行環(huán)境時(shí)已經(jīng)安裝好了phpMyAdmin,現(xiàn)在就可以直接使用了。PHP支持與大部分?jǐn)?shù)據(jù)庫(kù)(如SQLServer、Oracle、MySQL等)的交互操作,但與MySQL結(jié)合最好。使用PHP操作MySQL數(shù)據(jù)庫(kù)一般有以下4個(gè)步驟。(1)連接MySQL數(shù)據(jù)庫(kù)。(2)執(zhí)行SQL語(yǔ)句。(3)關(guān)閉結(jié)果集。(4)斷開(kāi)與MySQL數(shù)據(jù)庫(kù)的連接。5.4

使用PHP操作MySQL數(shù)據(jù)庫(kù)要訪問(wèn)并處理數(shù)據(jù)庫(kù),必須先創(chuàng)建到達(dá)數(shù)據(jù)庫(kù)的連接。在PHP中可以使用MySQLI或PDO_MySQL擴(kuò)展兩種方式,使用MySQLI可以很方便地連接并操作MySQL數(shù)據(jù)庫(kù),MySQLI是一種連接和操作數(shù)據(jù)庫(kù)的函數(shù)集合。mysqli_connect()函數(shù)用于打開(kāi)一個(gè)到MySQL數(shù)據(jù)庫(kù)的新連接,返回一個(gè)代表到MySQL數(shù)據(jù)庫(kù)的連接的對(duì)象。語(yǔ)法格式如下。mysqli_connect(host,username,password,dbname,port,socket);參數(shù)說(shuō)明如表5-6所示。5.4.1連接數(shù)據(jù)庫(kù)

參數(shù)說(shuō)明host可選。規(guī)定主機(jī)名或IP地址username可選。規(guī)定MySQL用戶(hù)名password可選。規(guī)定MySQL密碼dbname可選。規(guī)定默認(rèn)使用的數(shù)據(jù)庫(kù)port可選。規(guī)定嘗試連接到MySQL服務(wù)器的端口號(hào)socket可選。規(guī)定Socket或要使用的已命名Pipe表5-6

mysqli_connect()函數(shù)的參數(shù)說(shuō)明PHP連接上MySQL數(shù)據(jù)庫(kù)后就可以進(jìn)行各種操作了,包括添加記錄、修改記錄、刪除記錄、查詢(xún)記錄等,相關(guān)的函數(shù)如下。1.對(duì)數(shù)據(jù)庫(kù)執(zhí)行一次查詢(xún)mysqli_query()函數(shù)執(zhí)行某個(gè)針對(duì)數(shù)據(jù)庫(kù)的查詢(xún),如果執(zhí)行的是查詢(xún)語(yǔ)句,則成功返回資源類(lèi)型(結(jié)果集),失敗返回false;如果執(zhí)行的是操作語(yǔ)句,則成功返回true,失敗返回false。5.4.2數(shù)據(jù)庫(kù)基本操作

語(yǔ)法格式如下。mysqli_query(connection,query,resultmode);參數(shù)說(shuō)明如表5-7所示。參數(shù)說(shuō)明connection必需。規(guī)定要使用的MySQL連接query必需。規(guī)定查詢(xún)字符串resultmode可選。一個(gè)常量,可以是下列值中的任意一個(gè):MYSQLI_USE_RESULT(如果需要檢索大量數(shù)據(jù));MYSQLI_STORE_RESULT(默認(rèn))表5-7

mysqli_query()函數(shù)的參數(shù)說(shuō)明2.以數(shù)組方式返回一行查詢(xún)結(jié)果mysqli_fetch_array()函數(shù)從結(jié)果集中取得一行,并作為關(guān)聯(lián)數(shù)組或索引數(shù)組返回,或二者兼有。該函數(shù)返回的字段名是區(qū)分大小寫(xiě)的。語(yǔ)法格式如下。mysqli_fetch_array(result,resulttype);參數(shù)說(shuō)明如表5-8所示。參數(shù)說(shuō)明result必需。規(guī)定由

mysqli_query()、mysqli_store_result()或

mysqli_use_result()返回的結(jié)果集標(biāo)識(shí)符resulttype可選。resulttype為結(jié)果類(lèi)型,一般為“MYSQLI_ASSOC”“MYSQLI_NUM”“MYSQLI_BOTH”表5-8

mysqli_fetch_array()函數(shù)的參數(shù)說(shuō)明mysqli_fetch_assoc()函數(shù)返回一個(gè)字符串關(guān)聯(lián)數(shù)組,該字符串表示結(jié)果集中提取的行,其中數(shù)組中的每個(gè)鍵代表結(jié)果集某一列的名稱(chēng);如果結(jié)果集中沒(méi)有更多的行,則返回NULL。語(yǔ)法格式如下。mysqli_fetch_assoc(result);參數(shù)說(shuō)明如表5-8中的參數(shù)result所示。mysqli_fetch_row()函數(shù)從結(jié)果集中取得一行,并作為索引數(shù)組返回;如果結(jié)果集中沒(méi)有更多的行,則返回NULL。語(yǔ)法格式如下。mysqli_fetch_row(result);參數(shù)說(shuō)明也如表5-8中的參數(shù)result所示。3.獲取結(jié)果集中行的數(shù)量mysqli_num_rows()函數(shù)用于返回結(jié)果集中行的數(shù)量,語(yǔ)法格式如下。mysqli_num_rows(result);參數(shù)說(shuō)明也如表5-8中的參數(shù)result所示。4.設(shè)置默認(rèn)字符集mysqli_set_charset()函數(shù)規(guī)定當(dāng)與數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行數(shù)據(jù)傳送時(shí)要使用的默認(rèn)字符集,如果成功,則返回true,失敗則返回false。mysqli_set_charset()函數(shù)針對(duì)中文字符非常有用,很多數(shù)據(jù)庫(kù)查詢(xún)亂碼的情況都是字符集的問(wèn)題。語(yǔ)法格式如下。mysqli_set_charset(connection,charset);參數(shù)說(shuō)明如表5-9所示。參數(shù)說(shuō)明connection必需。規(guī)定要使用的

MySQL連接charset必需。規(guī)定默認(rèn)字符集表5-9

mysqli_set_charset()函數(shù)的參數(shù)說(shuō)明5.關(guān)閉數(shù)據(jù)庫(kù)連接每一次的數(shù)據(jù)庫(kù)操作都會(huì)占用服務(wù)器的系統(tǒng)資源,因此數(shù)據(jù)庫(kù)操作完成后應(yīng)該及時(shí)關(guān)閉數(shù)據(jù)庫(kù)連接。使用mysqli_close()函數(shù)可以關(guān)閉數(shù)據(jù)庫(kù)連接,語(yǔ)法格式如下。mysqli_close(connection);參數(shù)說(shuō)明如表5-10所示。參數(shù)說(shuō)明connection必需。規(guī)定要關(guān)閉的MySQL連接表5-10

mysqli_close()函數(shù)的參數(shù)說(shuō)明接到項(xiàng)目后,周工分析了員工檔案管理系統(tǒng)的要求,按照一般項(xiàng)目的開(kāi)發(fā)流程把此項(xiàng)目分成以下4個(gè)任務(wù)來(lái)實(shí)現(xiàn):數(shù)據(jù)庫(kù)設(shè)計(jì)、主界面設(shè)計(jì)、添加員工檔案功能和刪除員工檔案功能?!卷?xiàng)目實(shí)現(xiàn)】制作員工檔案管理系統(tǒng)1.任務(wù)分析數(shù)據(jù)庫(kù)的設(shè)計(jì)對(duì)員工檔案管理系統(tǒng)的實(shí)現(xiàn)起著至關(guān)重要的作用,設(shè)計(jì)合理的數(shù)據(jù)表結(jié)構(gòu)不僅有利于員工檔案管理系統(tǒng)的開(kāi)發(fā),而且有利于提高員工檔案管理系統(tǒng)的性能。根據(jù)員工檔案管理系統(tǒng)的要求,創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)employedb,然后設(shè)計(jì)如下兩個(gè)數(shù)據(jù)表。(1)員工信息表employe員工信息表用于保存員工的基本檔案信息,其結(jié)構(gòu)如表5-11所示。任務(wù)一數(shù)據(jù)庫(kù)設(shè)計(jì)

字段名數(shù)據(jù)類(lèi)型描述idint(4)主鍵ID,自動(dòng)增長(zhǎng)namevarchar(20)員工姓名sexenum('男','女')員工性別entrydate(3)員工入職時(shí)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論