上2節課學習了如何使用PHP語言和數據文件來實現完整的一個信息管理功能網頁。
這節課開始學習關系數據庫的概念,以及如何安裝和使用MySQL數據庫。
關系數據庫的概念
數據庫就是對數據進行結構化存儲和管理的倉庫。
關系數據庫就是數據庫中的表采用二維表格來存儲數據,是一種按行與列排列的具有相關信息的邏輯組,它類似于Excle工作表。
表和表之間可以通過數據關系進行關聯。
關系數據庫有以下關鍵名詞:
數據庫服務程序:實現數據庫機制并對外提供數據訪問和存儲服務的程序。
數據庫客戶端程序:用來訪問和管理數據庫結構和數據的程序。可以和服務器不在一臺機器上,可以遠程訪問數據庫服務器程序和數據。
數據庫:一個數據庫可以包含多個表。數據庫有屬性數據庫名來區分不同的數據庫。
表:二維表格,按行與列進行存儲數據。表有屬性表名用來區分不同的表。
字段:表格的每一個列定義為一個字段,字段有字段名,字段數據類型,存儲長度等屬性。
記錄:表中的一行數據稱之為一個記錄。
記錄數據值:記錄的某一個字段的具體的值就是一個記錄的數據值。該值數據屬性符合字段的屬性定義。
主鍵:表示記錄唯一性的某些字段定義為主鍵。也就是相同的主鍵值不能在記錄中重復出現。
常見的關系數據庫產品
SQL Server數據庫:微軟公司的數據庫產品。
Sql Server是一種高性能的關系型數據庫管理系統,以Cliient / Server 為設計結構、支持多個不同的開發平臺、支持企業級的應用程序、支持XML等,能夠滿足不同類型的數據庫解決方案。
Oracle數據庫:Oracle(甲骨文)公司的數據庫產品。
Oracle是目前世界上使用最為廣泛的關系數據庫,它具有完整的數據庫管理功能,包括數據的大量性、數據保存的持久性、數據的共享性、數據的可靠性。
MySQL數據庫:
MySQL是一個小型關系型數據庫管理系統,開發者為瑞典MySQL AB公司。目前屬于 Oracle 旗下產品。MySQL被廣泛地應用在Internet上的中小型網站中。
MySQL數據庫介紹
MySQL是一種關系數據庫管理系統,關系數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度并提高了靈活性。
MySQL所使用的 SQL 語言是用于訪問數據庫的最常用標準化語言。MySQL 軟件采用了雙授權政策,分為社區版和商業版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇 MySQL 作為網站數據庫。
和其他的大型數據庫,例如 Oracle、SQL Server等相比,MySQL 相對而言有一定的不足之處,但是絲毫沒有減少它受歡迎的程度。對于一般的個人使用者和中小型企業來說,MySQL提供的功能已經綽綽有余,而且由于 MySQL是開放源碼軟件,因此可以大大降低總體擁有成本。
Linux作為操作系統,Apache 或Nginx作為 Web 服務器,MySQL 作為數據庫,PHP/Perl/Python作為服務器端腳本解釋器。由于這四個軟件都是免費或開放源碼軟件(FLOSS),因此使用這種方式不用花一分錢(除開人工成本)就可以建立起一個穩定、免費的網站系統,被業界稱為“LAMP“或“LNMP”組合。
安裝MySQL數據庫服務軟件
Window7系統下安裝MySQL數據庫服務軟件
在之前的第2章的2.11這一節當中,介紹了Web服務程序phpStudy,由于phpStudy里面已經包含了MySQL數據庫服務軟件,因此繼續使用這個Web服務程序就可以使用MySQL數據庫了。
進入目錄c:\phpStudy,運行程序phpStudy.exe。然后點擊按鈕“啟動”,啟動服務程序。
樹莓派系統下安裝MySQL數據庫服務軟件
打開“LX終端”程序,運行以下命令:
sudo apt-get install mysql-server mysql-client
當中需要輸入root用戶的密碼。
為了讓PHP支持MySQL數據庫,需要運行以下命令:
sudo apt-get install php5-mysql
然后重啟樹莓派系統。
Ubuntu系統下安裝MySQL數據庫服務軟件
Ubuntu系統下的安裝方式和樹莓派系統完全一樣。
后面就不再特別介紹關于Ubuntu操作系統的安裝和配置了,參考樹莓派系統即可。
安裝數據庫客戶端軟件
為了通過圖形化界面訪問和管理MySQL數據庫,可以安裝數據庫客戶端軟件。
數據庫客戶端軟件有很多種,有PC端軟件形式,也有Web網頁形式,還有命令行軟件形式。
這里為了簡單起見,只介紹Window7下面的PC端軟件Navicat for MySQL。
大家可以去網上尋找免費版本,學哥使用的是比較老的版本:8.2.19。
下載后解壓縮后文件如下:
雙擊navicat8_mysql_cs.exe程序,運行安裝程序:
點擊“下一步”:
選擇“我同意”,點擊“下一步”:
點擊“下一步”:
點擊“下一步”:
點擊“下一步”:
點擊“安裝”:
點擊“完成”,結束安裝,然后在桌面找到“Navicat for MySQL”圖標,雙擊打開程序:
連接到數據庫服務器
打開數據庫客戶端軟件之后,第一件事就是要連接到數據庫服務器。
能連接上的前提是數據庫服務程序已經開啟,例如啟動之前的phpStudy程序。
打開“Navicat for MySQL”程序,點擊“連接”菜單圖標:
在彈出窗口中的“連接名”后面輸入“localdb”,“密碼”輸入“root”,點擊“確定”按鈕:
可以看到左側“連接”里面出現了一個數據庫連接,名字是“localdb”,雙擊它:
如果可以連接成功,則在“localdb”下面會出現幾個數據庫,例如:information_schema、mysql、performance_schema等。
如果要連接某個數據庫,就可以雙擊數據庫名字,就可以打開這個數據庫。
例如雙擊mysql數據庫:
可以看到,顯示了mysql數據庫下面的很多表,例如columns_priv、db、event等。
如果雙擊某個表名,就可以打開這個表。
例如雙擊db表:
可以看到新打開了一個窗口,顯示的是表db的里面的記錄和數據。
然后點擊窗口右上角的關閉按鈕,關閉查看數據窗口。
然后在數據庫mysql上點擊右鍵,彈出右鍵菜單:
點擊關閉數據庫,就可以關閉mysql數據庫了。
接下來,我們自己創建一個單獨的數據庫,然后在里面進行實驗。
手工新建一個數據庫
在數據庫連接“localdb”上點擊右鍵,彈出右鍵菜單:
點擊“創建數據庫...”菜單:
鍵入數據庫名:student,字符集選擇“utf8 -- UTF-8 Unicode”,整理選擇“utf8_general_ci”:
點擊“確定”按鈕,可以看到左側數據庫列表中多了一個數據庫“student”,雙擊打開數據庫:
可以看到右側的表一個都沒有。
手工新建一個表
接下來,在數據庫student里面創建一個表,就是前面2節課的學生分數信息的存儲數據的表。
在數據庫“student”的里面的菜單“表”上面點擊右鍵,彈出右鍵菜單:
點擊菜單“創建表(N)”,彈出表設計窗口界面:
然后在表格當中填寫字段信息,首先來創建id字段。
“名”這欄輸入“id”;
“類型”這欄選擇“int”;
“長度”這欄輸入“11”;
“十進位”這欄不輸入;
“允許空值”這欄的勾選去掉;
最右側的主鍵,點擊后出現主鍵圖標。
如下圖:
然后點擊鍵盤上的向下箭頭,會在這一行的下面出現新的一行,在第2行里面填寫name字段。
“名”這欄輸入“name”;
“類型”這欄選擇“varchar”;
“長度”這欄輸入“30”;
“十進位”這欄不輸入;
“允許空值”這欄的勾選不用去掉;
最右側的主鍵,不要點擊,不出現主鍵圖標。
如下圖:
繼續創建sex,subject,score這3個字段如下圖:
然后點擊工具欄按鈕“保存”:
鍵入表名“studentscore”,點擊“確定”按鈕,然后關閉這個表設計窗口:
可以看到,多出來了一個表“studentscore”,這個表就是安裝剛才的字段定義出來的表。
如果發現字段定義不合適,需要重新進行表結構修改的話,可以在表“studentscore”點擊右鍵,彈出右鍵菜單:
點擊菜單“設計表(E)”,再次進入表設計窗口,進行修改后保存即可。
手工插入一條記錄
雙擊表“studentscore”,打開表,進入表數據管理窗口:
默認會顯示一條空的記錄,5個字段都顯示的值為(Null)。
在這個表格里面填入這5個字段的數據值如下:
然后點擊下面工具欄的提交按鈕,就可以將這條數據保存到表當中存儲起來了。
可以看到最下方的狀態欄里面出現了一條INSERT INTO語句,并且右下角顯示了“記錄1/1”的信息,就表示數據已經保存成功了。
關閉表數據管理窗口,然后重新雙擊表“studentscore”,打開表,如果看到了這條記錄數據,就表示數據已經存儲到數據庫了。
即使將數據庫客戶端程序關閉,將數據庫服務程序關閉,也沒有關系,這個數據已經被存儲起來。
只要重新打開數據庫服務程序,重新打開數據庫客戶端程序,重新打開這個數據庫連接,重新打開數據庫student,重新打開表studentscore,就仍然可以看到這條記錄數據存在著,可以訪問的。