《MySQL 8 教學–Day01–資料庫》操作分享 | 學習筆記

Telegram share !

本教學將會一步一步帶著大家學習MySQL的一些基本的操作,本課程是以Mysql 8.0為出發的教學,當然一些通用語法Mysql 8.0之前的版本也試用喔,所以大家不用擔心,只要一起做相信你也可以了解資料庫是怎麼一回事,首先我假設大家都已經裝好了Mysql 8.0,就讓我們從連線Mysql到建立資料庫>資料表>建立一筆紀錄帶著大家一起完成吧,如果想了解更多Mysql的簡介可以參考下方註1。

本教學的範例背景

以電子商務線上購物所會用的相關資料表為基礎,後續會再做相關的延伸

資料庫名稱:rdpapashop

#01-使用終端機/命令提示字元連接資料庫

01-1.連線到Mysql主機

-h 連線主機、-u 使用者帳號、-p 密碼
參數縮寫參數預設值
Hostname-h hostname
–host = hostname
localhost
Username-u username
–user = username
你的登入名稱
Password-p
–password
步驟1.輸入以下指令後按下enter
λ mysql -h 127.0.0.1 -u root -p

步驟2.畫面上會出現輸入密碼的提示,將您的密碼輸入後按下enter即可連線
Enter password: ***************

步驟3.進入Mysql 8的歡迎畫面
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.21 MySQL Community Server - GPL

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

01-2.建立Mysql 資料庫

# 新增名為rdpapashop的資料庫
mysql> CREATE DATABASE `rdpapashop`;

要怎麼驗證是否建立成功呢,可以使用show databases;結果如圖一

圖一:顯示

01-3.建立Mysql 資料表

由於剛才我們建立好了我們第一個資料庫rdpapashop,大家直覺上來說會想,那我們應該可以直接來建立資料表吧,其實是不行的,因為目前還沒有告訴系統你的預設資料庫是哪一個,他無法幫你建立資料庫,要查詢目前預設的資料庫可以利用SELECT DATABASE();這個語法,但是大家可以看到,目前系統顯示是沒有預設資料庫的,這時候如果使用建立資料庫的指令是會報錯的。

圖二:查詢目前預設的資料庫

3-1設定預設的資料庫:use 資料庫名稱;

mysql> use rdpapashop;
Database changed  #系統會提示資料庫已變更

在利用SELECT DATABASE();驗證一次

圖三:查詢目前預設的資料庫

#02-使用HeidiSQL連接資料庫

02-1.連線到Mysql主機

請先到官網下載HeidiSQL資料庫管理工具,安裝好後,接下來請跟著我一步一步連線並操作資料庫,首先可以照著圖四將您的資料庫IP,使用者名稱跟密碼輸入,按下打開即可連線,連線後畫面左側有如圖五所示,可以看到這台DB SERVER裡面已經建立的資料庫列表,看到這個畫面代表你現在已經可以管理你的資料庫了。

圖四:選擇填入您要連線的資料庫資訊
圖五:顯示目前該台DB Server目前已經建立的資料庫

02-2.建立Mysql 資料庫

接下來我們要新增名為rdpapashop的資料庫,請在圖六上的localhost(您的資料庫連線名稱),上按右鍵>創建新的>資料庫點選後,如圖七畫面所示,將您的資料庫名稱填上本範例為rdpapashop,排序規則(COLLATE見註2),請選擇utf8mb4_unicode_ci,按下確定後資料庫即建立完成見圖八

圖六:用GUI新增資料庫
圖七:用GUI新增資料庫
圖八:資料庫新增完成

※註1:MySQL 簡介

MySQL (官方發音為/maɪ ˌɛskjuːˈɛl/「My S-Q-L」,但也經常被錯誤讀作/maɪ ˈsiːkwəl/「My Sequel」),本是一個開放原始碼關聯式資料庫管理系統,原開發者為瑞典MySQL AB公司,該公司於2008年被昇陽微系統(Sun Microsystems)收購。2009年,甲骨文公司(Oracle)收購昇陽微系統公司,MySQL成為Oracle旗下產品,MySQL是一套快速、功能強大的資料庫管理系統。MySQL在過去由於效能高、成本低、可靠性好,已經成為最流行的開源資料庫,因此被廣泛地應用在Internet上的中小型網站中。隨著MySQL的不斷成熟,它也逐漸用於更多大規模網站和應用,比如維基百科、Google和Facebook等網站使用。

上述MySQL簡介,參考資料來源:維基百科

※註2:MySQL的COLLATE是什麼?

簡單來說Collation,就是用來比較Charset中的字元,針對語言特性用來排序的規則,如果您的資料表中的欄位有文字相關的欄位如VARCHAR,CHAR,TEXT等欄位,你可以針對你目前該專案的語言特性,設定對應的COLLATE類型,讓MySQL知道後續該如何進行排序即比較,跟我們日常操作比較影響到的語法有order by、distinct、group by、having、DESC跟資料排序比較有相關的操作,此外在我們針對文字相關的欄位建議索引時,也會影響到排序的結果,所以建議在資料庫建立的前要好好思考這個設定該如何選擇,以免當資料建檔後要改變就麻煩了。

而為啥大家用好好的utf8要改成utf8mb4主要原因是, utf8最大長度為3 byte,而utf8mb4最大可以支援到4 byte,也就是說utf8mb4可以容納較多種類的文字,但是由於從3 byte 增加到4 byte對於該欄位的最大值就會縮小不少,在使用上要特別注意就是。

mysql> SHOW CHARACTER SET ;
mysql> SHOW CHARACTER SET ;
+----------+---------------------------------+---------------------+--------+
| Charset  | Description                     | Default collation   | Maxlen |
+----------+---------------------------------+---------------------+--------+
| big5     | Big5 Traditional Chinese        | big5_chinese_ci     |      2 |
| dec8     | DEC West European               | dec8_swedish_ci     |      1 |
| cp850    | DOS West European               | cp850_general_ci    |      1 |
| hp8      | HP West European                | hp8_english_ci      |      1 |
| koi8r    | KOI8-R Relcom Russian           | koi8r_general_ci    |      1 |
| latin1   | cp1252 West European            | latin1_swedish_ci   |      1 |
| latin2   | ISO 8859-2 Central European     | latin2_general_ci   |      1 |
| swe7     | 7bit Swedish                    | swe7_swedish_ci     |      1 |
| ascii    | US ASCII                        | ascii_general_ci    |      1 |
| ujis     | EUC-JP Japanese                 | ujis_japanese_ci    |      3 |
| sjis     | Shift-JIS Japanese              | sjis_japanese_ci    |      2 |
| hebrew   | ISO 8859-8 Hebrew               | hebrew_general_ci   |      1 |
| tis620   | TIS620 Thai                     | tis620_thai_ci      |      1 |
| euckr    | EUC-KR Korean                   | euckr_korean_ci     |      2 |
| koi8u    | KOI8-U Ukrainian                | koi8u_general_ci    |      1 |
| gb2312   | GB2312 Simplified Chinese       | gb2312_chinese_ci   |      2 |
| greek    | ISO 8859-7 Greek                | greek_general_ci    |      1 |
| cp1250   | Windows Central European        | cp1250_general_ci   |      1 |
| gbk      | GBK Simplified Chinese          | gbk_chinese_ci      |      2 |
| latin5   | ISO 8859-9 Turkish              | latin5_turkish_ci   |      1 |
| armscii8 | ARMSCII-8 Armenian              | armscii8_general_ci |      1 |
| utf8     | UTF-8 Unicode                   | utf8_general_ci     |      3 |
| ucs2     | UCS-2 Unicode                   | ucs2_general_ci     |      2 |
| cp866    | DOS Russian                     | cp866_general_ci    |      1 |
| keybcs2  | DOS Kamenicky Czech-Slovak      | keybcs2_general_ci  |      1 |
| macce    | Mac Central European            | macce_general_ci    |      1 |
| macroman | Mac West European               | macroman_general_ci |      1 |
| cp852    | DOS Central European            | cp852_general_ci    |      1 |
| latin7   | ISO 8859-13 Baltic              | latin7_general_ci   |      1 |
| utf8mb4  | UTF-8 Unicode                   | utf8mb4_general_ci  |      4 |
| cp1251   | Windows Cyrillic                | cp1251_general_ci   |      1 |
| utf16    | UTF-16 Unicode                  | utf16_general_ci    |      4 |
| utf16le  | UTF-16LE Unicode                | utf16le_general_ci  |      4 |
| cp1256   | Windows Arabic                  | cp1256_general_ci   |      1 |
| cp1257   | Windows Baltic                  | cp1257_general_ci   |      1 |
| utf32    | UTF-32 Unicode                  | utf32_general_ci    |      4 |
| binary   | Binary pseudo charset           | binary              |      1 |
| geostd8  | GEOSTD8 Georgian                | geostd8_general_ci  |      1 |
| cp932    | SJIS for Windows Japanese       | cp932_japanese_ci   |      2 |
| eucjpms  | UJIS for Windows Japanese       | eucjpms_japanese_ci |      3 |
| gb18030  | China National Standard GB18030 | gb18030_chinese_ci  |      4 |
+----------+---------------------------------+---------------------+--------+
mysql> SHOW COLLATION;
+--------------------------+----------+-----+---------+----------+---------+
| Collation                | Charset  | Id  | Default | Compiled | Sortlen |
+--------------------------+----------+-----+---------+----------+---------+
| big5_chinese_ci          | big5     |   1 | Yes     | Yes      |       1 |
| big5_bin                 | big5     |  84 |         | Yes      |       1 |
| dec8_swedish_ci          | dec8     |   3 | Yes     | Yes      |       1 |
| dec8_bin                 | dec8     |  69 |         | Yes      |       1 |
| cp850_general_ci         | cp850    |   4 | Yes     | Yes      |       1 |
| cp850_bin                | cp850    |  80 |         | Yes      |       1 |
| hp8_english_ci           | hp8      |   6 | Yes     | Yes      |       1 |
| hp8_bin                  | hp8      |  72 |         | Yes      |       1 |
| koi8r_general_ci         | koi8r    |   7 | Yes     | Yes      |       1 |
| utf8_general_ci          | utf8     |  33 | Yes     | Yes      |       1 |
| utf8_bin                 | utf8     |  83 |         | Yes      |       1 |
| utf8_unicode_ci          | utf8     | 192 |         | Yes      |       8 |
| utf8_icelandic_ci        | utf8     | 193 |         | Yes      |       8 |
+--------------------------+----------+-----+---------+----------+---------+

資料庫語法重點整理

key1:連線到資料庫
=>mysql -h 127.0.0.1 -u root -p;
key2:建立資料庫 CREATE DATABASE `資料庫名`;
=>CREATE DATABASE `rdpapashop`;
key3:查詢目前有那些資料庫
=>show databases;
key4:查詢目前預設的資料庫
=>SELECT DATABASE();
key5:使用資料庫 USE `資料庫名`;
=>use `rdpapashop`;
key6:刪除資料庫 DROP DATABASE 資料庫名;
=>DROP DATABASE `rdpapashop`;
key7:顯示目前資料庫支持的CHARACTER SET;
=>SHOW CHARACTER SET;
key8:顯示目前資料庫支持的COLLATION;
=>SHOW COLLATION;
key9:顯示目前資料庫資料庫版本;
=>select version();
key10:顯示目前登入使用者;
=> select user();
key11:顯示目前資料庫支援的儲存引擎;
=>  show engines;
RD爸爸tip
tip1:注意在Mysql裡面不論要輸入什麼指令都需要『;』結尾喔

Reference

Character Sets and Collations in General

(本文首圖來源:pixabay

※本網站對於任何使用或引用本網站網頁資料引致之損失或損害,概不負責。本網站亦有權隨時刪除、暫停或編輯本網站所登載之各項資料,以維護本網站之權益。除法律有強制規定外,在任何情況下,本網站對於 (1) 使用或無法使用本網站之各項服務;(2) 經由本網站取得訊息或進行交易;(3) 第三人在本網站上之陳述或作為;以及 (4) 其他與本網站服務有關之事項所致生之任何直接、間接、附帶、特別、懲罰性或衍生性損害,一概不負賠償責任。

向上滑動