數據庫
數據庫(Database)是許多相關數據構成的集合。數據無處不在,數據庫也是如此。例如,我們手機上的聯繫人列表就是一個簡單的數據庫;我們的銀行賬號就存儲在銀行數據庫中;在網絡上購物時,我們瀏覽的是各種產品數據庫,同時我們的瀏覽和購買行爲也被存儲到電商後臺的用戶行爲數據庫。
當用戶或者應用需要訪問和使用這些數據庫中的數據時,需要藉助專門的管理軟件系統,也就是數據庫管理系統(DBMS)。按照數據的組織和管理模式,主要的 DBMS 可以分爲關係數據庫管理系統和非關係數據庫管理系統。
- 關係數據庫管理系統(RDBMS)主要使用二維表(Table)來存儲數據,類似於 Excel 中的電子表格。表中的行對應一個實體或對象,列對應實體的屬性。例如,公司的所有員工可以存儲在員工表中,每行代表一個員工的信息,員工屬性可以包括工號、姓名、性別、出生日期等。關係數據庫使用標準的結構化查詢語句(SQL)執行各種數據的增刪改查以及數據庫的管理操作。主流的關係數據庫包括 Oracle、MySQL、SQL Server 以及 PostgreSQL 等。
- 非關係數據管理系統(NoSQL)通常不支持關係模型,也不提供 SQL 接口。它們通常是爲了解決關係數據庫在某些場景下的侷限性,例如大數據、橫向可擴展性等。其中,NoSQL 代表 Not Only SQL。常見的 NoSQL 數據庫包括鍵值存儲(Redis 等)、文檔數據庫(MongoDB 等)、寬列存儲數據庫(Cassandra 等)以及圖數據庫(Neo4j 等)。
MySQL
MySQL 是最流行的開源關係數據庫管理系統,由 Oracle 公司進行開發並提供支持。最新版本爲 MySQL 8.0,提供了原生的文檔數據庫(JSON)支持。MySQL 使用 GPL 開源協議,提供了免費的社區版;同時也提供收費的企業版本和技術支持。
MySQL 支持各種平臺,包括 Windows、Linux 以及 macOS。相對於其他大型的數據庫系統(Oracle、SQL Server 等)而言,MySQL 更加容易管理和使用,同時又具有非常好的性能、可靠性和擴展性。
MySQL 可以支持客戶端/服務器以及嵌入式的運行方式,非常適合開發網站或者 Web 應用;LAMP/LNMP 網站架構中的 M 就是指 MySQL。
除了官方版本之外,還存在許多 MySQL 衍生版。例如 MariaDB、Percona Server for MySQL 等。
SQL
SQL 代表結構化查詢語言(Structured Query Language),它是管理和訪問關係數據庫的標準語言。
通過 SQL 可以執行數據的增加(Create)、刪除(Delete)、修改(Update)以及查詢(Retrieve),同時還可以執行許多數據庫的管理操作。
SQL 語句可以按照它們的作用分爲以下幾類:
|
|
|
|
SQL 最初由 IBM 公司開發,在 1986 年成爲 ANSI 標準,並且在 1987 年成爲 ISO 的標準。ANSI 在1992 年對 SQL 標準進行了修訂,稱爲 SQL92 或者 SQL2;在 1999 年再次進行了修訂,稱爲 SQL99 或者 SQL3。
如今,SQL 標準由 ANSI 和 ISO/IEC 共同維護,隨後經歷的修訂版本包括 SQL:2003、SQL:2006、SQL:2008、SQL:2011。最新的版本爲 SQL:2016或者 ISO/IEC 9075:2016,它取代了之前的所有版本。
MySQL 實現了 SQL 標準中的許多功能,同時也提供了一些專有的擴展。