MySQL資料庫的安裝與基本操作
在日常生活中,當我們對於與他人在交易時做了一些紀錄、或者是對於團體中的各個成員的資料做紀錄時,除了透過傳統的紙張將一項項的內容一張張的紀錄下來放在檔案櫃中,還有什麼更有效的使用方式?
為了解決這個問題,產生了「資料庫」。簡單的來說,資料庫是電子檔案櫃,在這個櫃子裡面儲存著電子化的檔案。那麼什麼又是SQL?
SQL (Structured Query Language)的全名是「結構化查詢語言」,是一種資料庫查詢語言,其功能在於存入與讀取資料,或者是查詢、更新和管理資料庫系統。
早期使用傳統紙張作為紀錄時,一旦需要查找資料時,若資料沒有放好,就必須翻箱倒櫃,花費不少的時間與體力才能夠找到。但是若改採SQL資料庫這種電子檔案櫃來儲存資料,由於SQL結構化的關係,可以幫助我們在眾多的資料中,迅速的找到我們想要的資訊。
資料庫又可概分為兩種,關連式資料庫與非關連式資料庫,1970年代由IBM的研究員Edgar Frank Codd提出模型奠定了關連式資料庫的基礎。
MySQL本身即屬關連式資料庫。那倒底什麼是MySQL? 依照維基百科上面的解釋:
MySQL(官方發音為/maɪ ˌɛskjuːˈɛl/「My S-Q-L」[5],但也經常被錯誤讀作/maɪ ˈsiːkwəl/「My Sequel」)原本是一個開放原始碼的關聯式資料庫管理系統,原開發者為瑞典的MySQL AB公司,該公司於2008年被昇陽微系統(Sun Microsystems)收購。2009年,甲骨文公司(Oracle)收購昇陽微系統公司,MySQL成為Oracle旗下產品。
由於MySQL的高效能、低成本、可靠等的特性,目前已經成為流行的開源資料庫,被廣泛地應用在網際網路上的網站中。本文主要在說明如何在本機上使用MySQL資料庫。
補充說明:據DB-Engines統計,以目前(2022年10月)受業界歡迎程度排行前10名的資料庫,仍然是以關連式資料庫為主。
安裝MySQL
為了便於示範,我們使用本機端安裝的MySQL。首先我們到MySQL的網站(www.mysql.com)下載軟體。
進入MySQL網站後向下捲動網頁尋找『MySQL Community(GPL) Downloads』連結,我們要安裝的是 Community 版本的MySQL。
找到後,點選 MySQL Community(GPL) Downloads ,進入下一頁。
在這裡有很多可以使用,由於我要安裝在Mac電腦裡面,因此點選 MySQL Community Server進入選擇。
可以看到目前最新版本為MySQL Community Server8.0.25,你也可以點選上方「Archives」以選擇舊版本下載。
開始下載dmg檔案。
點擊兩下以下載之dmg檔案安裝MySQL。
安裝的過程中,有一個步驟要求我們輸入密碼。輸入自訂的密碼後,可以繼續安裝。
最後,安裝完畢。
安裝成功之後,可以在偏好設定的地方找到MySQL的圖示。
點入MySQL的圖示,可以管理MySQL的啟動或關閉。
連接與退出MySQL
安裝完畢之後,我們就可以使用終端機來連接MySQL。首先打開電腦中的終端機,輸入下面指令:
$ cd /usr/local/mysql/bin
透過上面的指令,我們可以到達mysql指令所在的目錄中。然後再輸入指令:
$ ./mysql -u root -p
上面的指令會引導出輸入密碼的提示畫面,這時候你要輸入剛剛安裝時設定的密碼。如果輸入正確,就可以進入MySQL Shell。
如果要退出MySQL的Shell的話,可以使用exit退出。
資料庫DB與Table
資料表(Table)與資料庫(database)間的關係是什麼?在回答這個問題前,我們可以先透過 Excel來理解這個概念。
我們都知道在使用Excel時,我們會先開啟一個『活頁簿』,在活頁簿裡面我們會依照需要建立『工作表』,一個活頁簿裡面可以建立多個工作表。在工作表裡面,我們會建立欄與列組合的表格,並且在表格裡面輸入數字(或者是文字)。
SQL資料庫(database)就像是Excel的活頁簿,而SQL 資料表(Table)就像是Excel工作表一樣。由主從關係來看,一個資料庫裡面可以有很多的資料表。我們存到資料庫的資料,實際上被儲存在一個個的資料表裡。資料表(Table)本身是具有欄與列結構的表格。其中一個資料表中的最多可以有4096個欄位。我們會在表格裡面輸入數字或者是文字,而每一筆資料的大小則限制在65,535byte(大約65K byte)以內。
資料表的資料型態(DATA TYPES)
前面提到SQL資料表(Table)本身是具有欄與列結構的表格。其中「欄」(Column)的部分,在MySQL中每個欄的資料類型(DATA TYPES)都必須是確定的。在建立資料表,把資料儲存進去之前必須先定義好每一欄的資料型態。
資料類型可以分為數字、字串與日期時間三個類型:
- 數字類型:包括INT、DECIMAL、NUMERIC、FLOAT等。
- 字串類型:包括CHAR、VARCHAR、TEXT等。
- 時間類型:包括DATE、DATETIME、TIMESTAMP等。
想進一步了解各個資料類型的詳細說明,可以參考MySQL官網的手冊。
資料庫層的基本操作
下面的指令可以對資料庫進行基本的操作。
show databases
指令show databases會顯示SQL中資料庫的狀況。
$ show databases;
如下,當尚未建立任何資料庫前,使用show databases指令,會顯示如下的訊息:
create database <name>
這個指令可以建立資料庫。在使用的時候,要在create database後面接上想要建立的資料庫名稱。要注意的是,資料庫的名稱不可以有空白。
$ create database demo;
在下面的例子中,我們建立一個以demo為名的資料庫。
use <db name>
use指令可以指定要使用的資料庫。並且操作該資料庫。
$ use demo;
承上例,我們使用use demo指令:
select database()
select database()指令可以查看目前選定的資料庫是哪一個。
$ select database();
如下圖,目前選定的資料庫是demo資料庫。
drop database <name>
drop database指令可以刪除特定名稱的料庫。
$ drop database demo;
如下圖,我們刪除了demo資料庫。
以上是資料庫的基本操作。請注意,在使用指令的時候,結尾一定要加上分號(;)作為指令的結束。
資料表層的基本操作
建立資料表
建立SQL資料表的語法如下:
CREATE TABLE table_name (
column_name1 data_type,
column_name2 data_type,
...
)
CREATE TABLE指令的後面接資料表的名稱(table_name),資料表的名稱後面接一個括號,括號裡面放置數組欄位名稱(column_name)與資料型態(data_type)。一個資料表有多少欄,括號裡面就要放多少組,每一欄都要被明示的指明其資料型態為何。舉例來說,我們要建立一個會員資料表(member),並且包含四個欄,分別為使用者名稱(username)、電子郵件(email)、電話(phone)、年齡(age)。而規劃的資料型態分別為VARCHAR字串最多20個字、VARCHAR字串最多40個字、VARCHAR字串最多20個字、INT數字。
建立的語法為:
CREATE TABLE member( username VARCHAR(20), email VARCHAR(40), phone VARCHAR(20), age INT)
接著,我們使用終端機輸入,在demo資料庫裡面建立member資料表。
DESC 顯示資料表
資料表建立完畢後,可以先使用desc指令檢視建立的結果:
$ desc <tablename>
在這裏我們輸入 desc member ,顯示結果如下:
show tables 顯示資料表
這個指令可以顯示資料庫裡面存在的所有資料表Table。
$ show tables;
如下畫面:
這個指令可以顯示指令資料表的欄位。與desc指令的效果一樣。
$ show columns from <table_name>;
測試結果如下:
DROP TABLE 刪除資料表
這個指令可以刪除指定的資料表。
$ drop table <table_name>
結果如下,使用drop table刪除member後,在使用show tables檢查資料表,可以發現member資料表已經不存在了。
以上是資料表的基本操作。