簡單的 MySQL 使用教學

這篇文章協助大家學習 MySQL 這套資料庫管理系統,並利用 MySQL Workbench 練習如何儲存、搜尋、排序及檢索資料。


資料庫系統簡介

一個資料庫管理系統(DataBase Manage-ment System,DBMS)中可以有很多個資料庫,也可以有很多組使用者帳戶,當使用者想要存取資料庫內容時,必須先通過帳戶驗證,下圖說明它們的關係。

database - 簡單的 MySQL 使用教學

MySQL 簡介

MySQL 是一套快速、功能強大的資料庫管理系統。所謂資料庫管理系統(Database Management System, 簡稱為 DBMS),它是透過一組程式模組來組織、管理、儲存和讀取資料庫的資料,任何使用者在操作資料庫時,都需要透過資料庫管理系統來處理。

目前 MySQL 已經成為最流行的開源資料庫,被廣泛地應用在網路上的中小型網站中,也逐漸用於更多大規模網站和應用。


MySQL Workbench 簡介

MySQL Workbench 是一款專為資料庫架構師、開發人員和 DBA 打造的一個統一的視覺化工具。MySQL Workbench 提供了資料建模工具、SQL 開發工具和全面的管理工具 (包括伺服器配置、使用者管理、備份等),可在 Windows、Linux 和 Mac OS 上使用。

workbench - 簡單的 MySQL 使用教學

新版的 MySQL Workbench 6 介面如上圖所示。最大的改進在於圖形化使用者介面 (GUI) 和工作流,同時為開發人員和 DBA 提供更加現代和精簡的設計、開發和管理資料庫的工具。


使用 Workbench

使用 root 或其他使用者帳戶登入

點選左上方 + 新增一個連線。

add - 簡單的 MySQL 使用教學

輸入連線名稱,帳號、密碼 (或連線時輸入),可以按下「Test Connection」確認資料庫是否連接成功。

mysql1 - 簡單的 MySQL 使用教學

查看所有的使用者

use mysql; #使用mysql資料庫
select *from user; -- 選擇user資料表

在編輯區輸入上方 select user 指令,結果將如下圖所示。預設的最高管理者為 root,而 jerry 是安裝時新增的帳號。

mysql2 - 簡單的 MySQL 使用教學
執行單行指令快捷鍵:Ctrl + Enter。
執行全部或已框選指令快捷鍵:Ctrl + Shift + Enter。
localhost、127.0.0.1 和 ::1 (IPv6) 皆代表本機地址。
單行註解:- - 註解內容 or #註解內容
多行註解:/註解內容/

新增使用者

如果想要新增額外的帳號,透過這個指令並給予使用者權限

grant privileges on database.table to 'user'@'localhost' identified by 'password'
privileges 設定權限等級。
database.table 設定可以存取的資料庫與資料表名稱。
'user'@'localhost' 設定使用者的帳號與主機。
'password' 設定使用者的密碼。

舉例來說,新增一個帳號 student,密碼為 123

grant privileges on database.table to 'student'@'localhost' identified by '123'
mysql3 e1449333286151 - 簡單的 MySQL 使用教學
all代表擁有所有管理權限。
.代表所有資料庫裡的所有資料表。
with grant option:可以賦予其他使用者權限。

編輯使用者帳號

想要刪除使用者或是修改密碼,MySQL有內建的安全機制,必須先關閉安全模式才能進行操作

set SQL_SAFE_UPDATES = 0; #關閉Safe Update Mode
delete from user where user ='user'; #刪除使用者
update user set password= password ('password') where user='user'; #修改密碼
flush privileges; #在mysql資料庫內,要用flush更新記憶體上的資料

MySQL資料格式

主要分為三類:Numeric、Date and Time、String Type。

可參考 MySQL 所支援的各種欄位型態

建立/刪除資料庫、資料表

建立/刪除 test1 資料庫

create database test1;
use test1;
show tables;
drop database test1;

建立/刪除 mytable 資料表

create table mytable(school char(5),name char(10),id int);
show tables;
describe mytable;
drop table mytable;

常用語法舉例

資料表查詢 (選擇資料表 mytable 的所有欄位資料)

select * from mytable ;

新增資料

insert into mytable(school, name, id) values ('NCTU','Jerry','123');
insert into mytable values ('NCTU','Jerry','123');

更新資料

update mytable set name = 'HaHa' where id = '123';

刪除資料

delete from mytable where name = 'HaHa';

由 txt 文字檔匯入資料 (用 tap 隔開欄位)

load data local infile "c:\\data.txt" into table mytable
mysql41 - 簡單的 MySQL 使用教學
mysql5 - 簡單的 MySQL 使用教學

資料表查詢+條件+排序 (DESC 代表由大到小排序)

select * from mytable where id = '123' order by name DESC;

改變資料欄位 (加入時間記錄)

alter table mytable add column recordtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
Jerry
Jerry

樂於分享的軟體工程師,曾在新創與大型科技公司實習,獲得黑客松競賽冠軍,擔任資安研討會講者。長期熱衷於資訊安全、雲端服務、網路行銷等領域,希望將科技知識分享給更多人。內容轉載請來信:jlee58tw@gmail.com

8 則留言

  1. 請教一下如果表單我採用手動輸入
    如何把我填入的資料存起來,因為save script並不會存我手動填的
    謝謝

  2. 應該是workbench 新版本的問題。
    詳情請參考:https://bugs.mysql.com/bug.php?id=72220
    這個問題目前尚無解決方法,唯一的解法是透過mysql command line client 執行相同的code,以上希望能幫助到你。

  3. 感謝分享,不過內容好像有點零散,介紹朋友來看很多都回應例子說明不太多,還是去看一些入門比較適合新手

  4. 你好
    能否請問關於MySQL的指令操作問題
    看到上述的說明

    由 txt 文字檔匯入資料 (用 tap 隔開欄位)

    load data local infile “c:\\data.txt” into table mytable

    可是匯入後,沒有任何動作與錯誤訊息
    請問這該怎麼排除呢
    謝謝

    • Hi Perasa,
      你有檢查檔案路徑與 mytable schema 嗎? 照理說執行後,不論成功與否都會有訊息才是

發表回應