重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
【相關學習推薦:php編程(視頻)】
關系型數據庫
隨著應用規模擴大和復雜性提升,數據的存儲和檢索是一個很大的問題,比如對于一個博客系統,文章如何存儲?對于社交媒體系統,用戶關系和動態如何存儲?對于一個電商系統,商品和交易信息如何存儲?并且光存儲還不夠,還要能夠很便捷地對數據進行動態查詢、更新和刪除。
圍繞這個問題,早在 40 多年前,IBM 的科學家們就開始研究,并提出關系型數據庫管理系統的概念,數據庫就是通過特定數據結構組織、存儲和管理大量數據的倉庫,而關系型數據庫管理系統(Relational Database Management System,即 RDBMS),指的是建立在關系模型基礎上的數據庫。
關系型數據庫管理系統可以簡稱為關系型數據庫,具備以下特點:
數據存儲在數據表中,比如文章表、用戶表;數據表的行表示一條記錄,比如一篇文章或一個用戶的所有信息;數據表的列表示相同類型的數據,比如文章標題、用戶名等;數據表存在主鍵、外鍵、索引等結構,主鍵可以唯一標識一條記錄、外鍵可以與其他表的列建立關聯關系、索引可用于加速數據表記錄的查詢;行和列構建出數據表,多張數據表匯聚成數據庫。MySQL 數據庫注:通過數組這種內存型存儲也可以維護和管理數據,但不利于海量數據,畢竟內存資源有限,而且更致命的是不能持久化;通過文件可以持久化存儲海量數據,但是存儲和檢索 IO 開銷太大,性能不足以支撐大量用戶的并發請求。而關系型數據庫可以同時解決這些問題。
關系型數據庫有很多,包括 MySQL、Oracle、SQL Server、SQLite、Postgres 等,但其中最流行的、應用最廣泛的當屬 MySQL,這很大程度上歸因于 MySQL 是開源免費的,并且在大公司的實踐中證明它完全可以肩負起海量數據存儲,在性能上也足以支撐高并發請求,抗造耐打,還可以不花錢,那可太好了(比起 Oracle 高昂的費用,不要太香),另外,MySQL 與 PHP 也是一對好基友,PHP 原生對 MySQL 有著非常好的支持,世界上最流行的 Web 開發語言 + 世界上最流行的關系型數據庫,簡直是珠聯璧合,也由此誕生了很多知名的應用。這倆關系好到可以穿一條褲子,因此有人戲稱「離開了 MySQL,PHP 還能干啥」。
注:目前,國外 Postgres 數據庫也日漸流行起來,它也是免費開源的,可能很大程度上是因為 MySQL 被 Oracle 收購后,前景存在很多不確定性。
安裝 MySQL相關學習推薦:mysql教程(視頻)
使用 MySQL 之前,需要先安裝它,不過在搭建本地 PHP 開發環境環節,我們推薦的集成開發工具默認都包含了 MySQL:
PHP/Laravel 本地開發環境搭建:Mac 篇PHP/Laravel 本地開發環境搭建:Windows 篇無論是 Laradock、Xampp、MAMP、Laragon 還是 PhpStudy 都內置了對 MySQL 的支持(含客戶端和服務端,服務端是存儲數據的中央倉庫,客戶端可以通過 SQL 命令與服務端交互進行增刪改查和管理工作),而且開箱即用。所以這里就不單獨介紹如何在本地安裝 MySQL 了。
命令行交互注:本系列教程假設你已經掌握基本的 SQL 語句操作,如果你不太了解,可以閱讀 W3School SQL 教程學習。
無論是 Mac 還是 Windows 系統,都有大量的 MySQL 客戶端工具,最原始的是 MySQL 自帶的命令行交互,以 Laradock 為例,我們可以通過在 laradock
項目目錄下執行如下命令啟動 MySQL 容器(基于 Windows Terminal 1.0 命令行環境演示,Mac 系統中命令完全一樣):
然后進入通過 docker-compose exec mysql bash
進入該容器:
就可以在客戶端運行 mysql -h localhost -u root -p
連接到數據庫服務器了(默認密碼是 root
):
接下來,我們就可以運行 SQL 語句與服務器進行交互了,比如通過 show databases;
查看所有數據庫(SQL 語句以分號作為結尾,不能省略):
你可以在命令行中通過 SQL 語句執行所有 MySQL 數據庫 DML/DDL 操作,這里不一一列舉了,下面我們將重點介紹通過 GUI 工具來操作數據庫。
GUI 工具一覽MySQL Workbench首先 MySQL 官方提供了適用于 Windows 和 Mac 系統的 MySQL Workbench,下載安裝完成后,打開主界面,點擊「MySQL Connections」右側的小加號,添加新的連接,這里我們填寫本地 Laradock 對應的連接信息:
填寫完成后,點擊右下角的「Test Connection」,提示成功,則點擊「Ok」保存:
然后就可以在連接列表中點擊 laradock 進入本地 MySQL 數據庫管理頁面了:
接下來,我們就可以通過 MySQL Workbench 圖形化界面管理本地 MySQL 數據庫了。
Sequel Pro注:MySQL Workbench 適用于 Windows 和 Mac 系統。
官方提供的工具并不好用,在 Mac 系統中,選擇 Sequel Pro 作為 MySQL 客戶端工具:
它是一個免費的第三方 MySQL 客戶端管理工具,非常好用,首次安裝后,打開應用,點擊左側下方的「+」新增連接配置,然后將連接名設置為 laradock
,接下來,就可以配置本地 MySQL Docker 容器連接信息了:
配置好了之后,點擊「Connect」即可進入 laradock
數據庫管理頁面,你可以在選擇數據庫下拉菜單選擇要操作的數據庫,或者新增數據庫:
然后就可以對這個數據庫進行管理了,具體細節可以自行探索,這里不做深入介紹。
PhpStorm注:Sequel Pro 僅限 Mac 系統使用。
Jetbrains 公司也提供了專門的數據庫管理工具 DataGrip:
不過該工具需要收費,對于日常一些簡單的數據庫管理工作,也可以通過 PhpStorm 集成的數據庫管理插件完成,在 PhpStorm 主界面右上角,默認有一個「Database」工具條,點擊該工具條,在彈出界面左上角點擊「+」選擇數據源,這里我們選擇「MySQL」:
在彈出窗口配置 MySQL 連接信息(Docker 容器),配置完成后別忘了點擊頁面底部「下載缺失驅動文件」,否則無法建立連接:
下載完成后,點擊「Test Connection」,提示成功,則可以點擊頁面底部「Apply」按鈕保存設置,再點擊「OK」按鈕關閉該窗口。
然后我們就可以在數據源列表點擊該連接對本地數據庫進行管理了:
你可以通過右鍵進行日常 DDL/DML 操作:
Navicat For MySQL注:PhpStorm 數據源管理功能在 Windows 和 Mac 中均可使用。
還有一個比較流行的 MySQL 客戶端圖形化管理工具 Navicat For MySQL:
該工具也適用于 Windows 和 Mac 系統,在 Windows 系統上體驗更佳,但是需要收費,感興趣的可以自行去下載使用。
phpMyAdmin最后,還有一個知名的 phpMyAdmin 項目,讓我們可以在 Web 瀏覽器中管理 MySQL 數據庫。在 Laradock 項目中,也內置了對它的支持,要使用它,需要通過如下 Docker 命令啟動該容器:
docker-compose up -d phpmyadmin
啟動完成后,就可以在瀏覽器中通過 http://localhost:8080
訪問 phpMyAdmin 了,我們填寫下表單信息(服務器、用戶名、密碼):
注意這里需要填寫的是 Docker 容器名 mysql
,因為在容器內部通過該名稱才可以解析到對應的 MySQL 容器 IP。點擊「執行」,即可進入 MySQL 管理界面:
顯然,由于是在瀏覽器中運行,phpMyAdmin 與所屬系統無關,后續為了統一 Windows/Mac 系統演示風格,將基于 phpMyAdmin 進行 MySQL 數據庫管理操作。
本文來自于https://xueyuanjun.com/post/21654
想了解更多編程學習,敬請關注php培訓欄目!