html5全棧開發全套教程之MySQL資料庫開發

一、 MySQL 

1. 簡介

MySQL原本是一個開放原始碼的關聯式資料庫管理系統,原開發者為瑞典的MySQL AB公司,該公司於2008年被昇陽微系統(Sun
Microsystems)收購。2009年,甲骨文公司(Oracle)收購昇陽微系統公司,MySQL成為Oracle旗下產品。

MySQL在過去由於效能高、成本低、可靠性好,已經成為最流行的開源資料庫,因此被廣泛地應用在Internet上的中小型網站中。隨著MySQL的不斷成熟,它也逐漸用於更多大規模網站和應用,比如維基百科、Google和Facebook等網站。非常流行的開源軟體組合LAMP中的“M”指的就是MySQL。

2. 特性

•使用C和C 編寫,並使用了多種編譯器進行測試,保證原始碼的可移植性。

•支援Linux、Mac OS、Novell
NetWare、NetBSD、OpenBSD、OS/2
Wrap、Solaris、Windows等多種作業系統。

•為多種程式語言提供了API。這些程式語言包括C、C 、C#、VB.NET、Delphi、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。

•支援多執行緒,充分利用CPU資源,支援多使用者。

•優化的SQL查詢演算法,有效地提高查詢速度。

•既能夠作為一個單獨的應用程式在客戶端伺服器網路環境中執行,也能夠作為一個程式庫而嵌入到其他的軟體中。

•提供多語言支援,常見的編碼如中文的GB 2312、BIG5,日文的Shift
JIS等都可以用作資料表名和資料列名。

•提供TCP/IP、ODBC和JDBC等多種資料庫連線途徑。

•提供用於管理、檢查、優化資料庫操作的管理工具。

•可以處理擁有上千萬條記錄的大型資料庫。

3. 業界應用

與其他的大型資料庫例如Oracle、IBM DB2、MS SQL等相比,MySQL自有它的不足之處,如規模小、功能有限等,但是這絲毫也沒有減少它受歡迎的程度。對於一般的個人使用者和中小型企業來說,MySQL提供的功能已經綽綽有餘,而且由於MySQL是開放原始碼軟體,因此可以大大降低總體擁有成本。

2010年以前Internet上流行的網站構架方式是LAMP(Linux
Apache MySQL PHP),即是用Linux作為作業系統,Apache作為Web伺服器,MySQL作為資料庫,PHP(部分網站也使用Perl或Python)作為伺服器端指令碼直譯器。由於這四個軟體都是開放原始碼軟體,因此使用這種方式可以以較低的成本建立起一個穩定、免費的網站系統。MySQL加PHP的配對在網際網路上的應用相比LAMP來說更為常見,並獲得了“動態配對”(Dynamic
Duo)的雅號,大部分Blog網站基於的WordPress系統主要運用MySQL加PHP的配對。除了LAMP之外,用於Solaris、Windows和Mac上的網站構架也分別被稱為SAMP、WAMP和MAMP。

維基百科所使用的Mediawiki維基引擎採用PHP語言寫成,並以MySQL作為其支援的其中一種資料庫管理系統。

 

除了維基百科,國外的Facebook, Google, Adobe都在使用;國內的百度、阿里、騰訊、新浪都在使用

 

二、 課程大綱

MySQL相關課程內容,在下面思維導圖中列出。

 

 

我們逐一簡要說明:

 

l 資料儲存:資料庫,簡單理解,就是資料儲存的倉庫。我們通過資料庫,實現對大量資料的維護。我們通過資料庫,可以方便、高效的完成對資料的各種操作。

 

l 環境安裝:上一個章節我們介紹的,目前比較流行的開發環境就是LAMP,也就是Linux、Apache、MySQL和PHP。我們在學習MySQL時,為了將學習重點放到MySQL上,用我們比較熟悉的windows作業系統來代替Linux。也就是說,我們需要在windows上安裝Apache、MySQL和PHP三個環境。那麼為了便於安裝,我們選擇了xampp。XAMPP(Apache MySQL PHP PERL)是一個功能強大的建站整合軟體包。它可以在Windows、Linux、Solaris、Mac
OS X 等多種作業系統下安裝使用。我們只要安裝了這個軟體,就可以開始我們的MySQL之旅了。那麼在開始實際操作之前,我們還有了解一些資料庫方面的基本概念。

 

l 基本概念

n 資料庫

資料庫(Database)是按照資料結構來組織、儲存和管理資料的倉庫,

每個資料庫都有一個或多個不同的API用於建立,訪問,管理,搜尋和複製所儲存的資料。

我們也可以將資料儲存在檔案中,但是在檔案中讀寫資料速度相對較慢。

所以,現在我們使用關係型資料庫管理系統(RDBMS)來儲存和管理的大資料量。所謂的關係型資料庫,是建立在關係模型基礎上的資料庫,藉助於集合代數等數學概念和方法來處理資料庫中的資料。

RDBMS即關聯式資料庫管理系統(Relational Database Management System)的特點:

1.資料以表格的形式出現

2.每行為各種記錄名稱

3.每列為記錄名稱所對應的資料域

4.許多的行和列組成一張表單

5.若干的表單組成database

資料庫:
資料庫是一些關聯表的集合。

n 表

表是資料的矩陣。在一個資料庫中的表看起來像一個簡單的電子表格。

n 欄位

u 資料型別

MySQL定義了很多的資料型別。大體可分為:數值型別、字串型別、日期和時間型別等。

u 主鍵&外來鍵

主鍵:關聯式資料庫中的一條記錄中有若干個屬性,若其中某一個屬性組能唯一標識一條記錄,改屬性組就可以成為一個主鍵。

外來鍵:外來鍵用於與另一張表的關聯。是能確定另一張表記錄的欄位,用於保持資料的一致性。

n 資料行

資料庫表中的一條資料,在表中以一行的形式顯示,所以一條資料又叫資料行。

 

l SQL語句

n 資料庫操作

u 建立庫: CREATE DATABASE `student`

u 表

 

CREATE TABLE students(

   id INT NOT NULL AUTO_INCREMENT,

   name VARCHAR(100) NOT NULL,

   tel VARCHAR(40) NOT NULL,

   birthday DATE,

   PRIMARY KEY (id )

);

 

n 資料操作

u 新增資料

INSERT INTO table_name (column1, column2, column3,…)

VALUES (value1, value2, value3,…)

u 刪除資料

DELETE FROM table_name

WHERE some_column = some_value

u 修改資料

UPDATE table_name

SET column1=value, column2=value2,…

WHERE some_column=some_value

u 查詢資料

l 條件查詢

SELECT column_name(s)

FROM table_name

WHERE column_name operator value

l 結果排序

SELECT column_name(s)

FROM table_name

ORDER BY column_name(s) ASC|DESC

l PHP連線資料庫

在PHP基礎知識階段,我們使用PHP中的mysqli進行資料庫操作,具體步驟為:

1. 建立資料庫連線

2. 構造SQL語句字串

3. 執行SQL語句

4. 檢視執行結果

5. 關閉連線

一、 實戰專案

我們會在後期進行一個電商平臺的實戰專案,專案整體採用前後端分離的架構。後端使用PHP和MySQL搭建一個restful的API介面,實現資料動態重新整理。具體專案相關內容,請參加PHP專案開發相關文件。

 

以上 

PHGAP