什麼是資料庫呢??
又稱為資料管理系統,簡而言之可視為電子化的檔案櫃——儲存電子檔案的處所,使用者可以對檔案中的資料執行新增、擷取、更新、刪除等操作[1]。
所謂「資料庫」是以一定方式儲存在一起、能予多個使用者共享、具有儘可能小的冗餘度、與應用程式彼此獨立的資料集合。一個資料庫由多個表空間(Tablespace)構成。
資料來源:
維基百科:https://zh.wikipedia.org/zh-tw/%E6%95%B0%E6%8D%AE%E5%BA%93
MySQL
MySQL在過去由於效能高、成本低、可靠性好,已經成為最流行的開源資料庫,因此被廣泛地應用在Internet上的中小型網站中。隨著MySQL的不斷成熟,它也逐漸用於更多大規模網站和應用,比如維基百科、Google和Facebook等網站。非常流行的開源軟體組合LAMP中的「M」指的就是MySQL。
資料來源:
維基百科:https://zh.wikipedia.org/wiki/MySQL
首先要先確認XAMPP控制面板的Mysql有沒有啟動。
有綠色底色代表有正常啟動。
在XAMPP中要對Mysql資料庫做管理,是透過phpmyadmin的工具。什麼是phpmyadmin??,簡單來說就是透過網頁介面來管理資料庫的設定。
那要怎麼打開phpmyadmin的管理介面呢?? 有兩種方法:
當我們進入phpmyadmin的頁面時,他是直接就進入到管理頁面,但其實這樣是很危險的,假設電腦給自己以外的人使用時,只要進入網址就可以到管理者介面,資料可能會被竄改或遺失。所以我們要修改phpmyadmin的設定檔,當進入頁面時要輸入帳號和密碼才能進到管理者頁面。
白框就是要修改的地方
這樣之後要登入就需要輸入使用者(root)和密碼了。
修改密碼後,直接實際建一個資料庫。
建立完成後,可以看到下面列表多了一個剛才新建的資料庫。
新建完資料庫,再來就是在資料庫裡新建資料表,資料表有點像Excel表單一樣,有欄位名稱,每個欄位也有分資料型別,欄位名稱一樣用小寫英文命名。之後從網頁輸入的資料就是會直接寫到資料表裡。
資料型別較常用的大概是這些:
可以注意到右邊有一個 A_I 的勾選框,那個是Auto Increment,通常用於 ID 、表單編號這類資料上面,是欄位是由系統自動填寫,每次新增資料的時候自動給值,這樣就不用人工輸入。
空值(Null)的勾選框就是這個欄位可不可以是空值,有勾就可以是空值,沒勾就不能是空值。
假設我想要讓系統在欄位自動填入上傳時間,就要設定預設值的部分,在左邊開始第4個預設值的設定,將選項改成 CURRENT_TIMESTAMP ,這樣只要新增一筆資料,就會在欄位自動填入時間,可以不用人工輸入。
成功建立後就能看到資料表的表格出現
在我們的資料庫裡會出現剛才建立的資料表
現在我們已經建立了一個新資料庫和新資料表,現在要新增一個可以連線到這個資料庫的使用者。 往後要將資料寫入資料庫或是從資料庫抓取資料,都要透過這個使用者連線。
我們先直接從phpmyadmin管理頁來編輯資料表,後面會講到如何用自己的網頁編輯資料表。
要在資料表新增資料,首先要先知道幾個mysql的程式,不管是從phpmyadmin管理頁或是自己寫的網頁要新增或查詢資料都一定會用到的程式。
INSERT INTO 資料表名稱 (欄位名稱1,欄位名稱2 )VALUES ('欄位值1','欄位值2');
範例:
INSERT INTO user (name, password) VALUES ('zhewei','12345678');
中間會出現剛才提到的insert ...的指令,而且指令的格式、 資料表名稱、欄位名稱都幫我們寫好了,這樣我們可以直接對這個指令修改。
設定好後就點下面的執行按鈕,如果沒問題會出現像下面這樣:
id 和 time也都有自動填入資料。
當我們要把資料表的資料列出來時就要用到SELECT的指令,查詢有分成查詢全部和只查詢哪些欄位就好。 格式像這樣:
SELECT * FROM 資料表名稱 ------->如果要全部欄位都顯示,可以用 * SELECT 欄位一, 欄位二 FROM 資料表名稱 ------->只顯示某幾格欄位。範例:
SELECT * FROM user; SELECT name,time FROM user;
看起來好像沒什麼變化,因為進到資料表時,預設就會先執行SELECT顯示所有資料。
如果我們要顯示的資料是有特定的值,那在用SELECT時可以在後面加一個WHERE和欄位名稱、值。 WHERE格式像這樣:
WHERE 欄位名稱 = "值" ;
假設我們要顯示user這個資料表中,name的欄位叫zhewei1的資料,那要用到像這樣的指令:
SELECT * FROM user WHERE name = "zhewei1";
那如果我今天有2個以上的條件呢?,那就要用and分開欄位名稱的判斷。像下面這樣:
假設要顯示 name的欄位叫做zhewei1,同時id欄位資料是2這一筆資料 SELECT * FROM user WHERE name = "zhewei1" and id = "2";直接實際來對資料庫下指令試試看:
如果今天要刪除資料表內的資料要用到DELETE的指令,格式像這樣:
DELETE FROM 資料表名稱 ------>把資料表所有資料刪除
如果直接下這行指令會直接把資料表裡面的所有資料刪除,除非是要把整個資料表清空,不然在下指令時一定要下條件判斷,所以在執行DELETE時千萬要注意。
在DELETE下條件判斷,一樣是用到上面提到的WHERE放式,像下面這樣:
DELETE FROM 資料表名稱 WHERE 欄位名稱 = "值";範例:
DELETE FROM user WHERE name = "zhewei";實際在phpmyadmin上刪除資料試試看
回到資料表頁面,可以看到zhewei2,那一筆資料已經被刪除了。