iT邦幫忙

2023 iThome 鐵人賽

0
自我挑戰組

用ChatGPT詠唱來完成工作與點亮前後端技能樹系列 第 38

【Day38】ChatGPT請教教我:資料庫!MySQL!MySQL Workbench!

  • 分享至 

  • xImage
  •  

這一篇來討論和資料庫相關的問題
來認識與初步了解資料庫,如何如何安裝、啟動、初步的檢視資料等等
GoGo!
https://ithelp.ithome.com.tw/upload/images/20231021/20135750NMmvGoMujM.png

當然可以!關於資料庫的介紹:

資料庫是用來儲存、管理和檢索資料的系統。它們在軟體開發中扮演著重要的角色,幫助我們有效地組織和存取資訊。

常見的資料庫類型包括:

  1. 關聯式資料庫 (RDBMS):這種資料庫以表格的形式組織資料,表格之間透過特定的欄位相互關聯。最常見的關聯式資料庫是MySQL、PostgreSQL、以及Microsoft SQL Server。
  2. 非關聯式資料庫 (NoSQL):相對於關聯式資料庫,NoSQL 資料庫不遵循傳統的表格結構,而是使用不同的資料模型,例如文件型 (如MongoDB)、鍵-值對型 (如Redis)、或者圖型 (如Neo4j)。
  3. 物件導向資料庫 (OODBMS):這種資料庫將資料儲存為物件,可以更直接地映射程式中的物件。
  4. 圖形資料庫:專門用於處理具有複雜關聯性的資料,例如社交網路中的社交關係。

資料庫可以通過SQL (結構化查詢語言) 或其他查詢語言進行操作,這取決於你所選擇的資料庫類型。

對於一名前端工程師來說,了解如何連接和與資料庫進行互動是一個重要的技能,因為你可能需要從後端獲取資料以在前端顯示。

如果你想要進一步了解如何在前端專案中使用資料庫,可以考慮學習一些與前端相關的後端技術,如Node.js、Express.js,以及相應的資料庫操作套件。這樣你就能夠建立完整的網頁應用程式,包括前端和後端的連接。

如果你對特定的資料庫或相關技術有興趣,請隨時告訴我,我將盡力提供相關的詳細資訊和範例!

最常聽到的是關聯式資料庫,MySQL就是一個關聯式資料庫
來了解一下關聯式資料庫的具體介紹
https://ithelp.ithome.com.tw/upload/images/20231021/20135750hWolxFSape.png

當然!關聯式資料庫(Relational Database)是一種基於關聯模型(Relational Model)的資料庫系統,它使用表格(Table)來組織和儲存資料。

以下是一些與關聯式資料庫相關的基本概念:

  1. 表格(Table)
    • 表格是資料庫中最基本的組織形式,它由多個列(Row)和列的屬性(Field)組成。每一列代表了一個記錄(Record)或者一個資料項目。
  2. 主鍵(Primary Key)
    • 主鍵是一個唯一識別資料表中記錄的欄位,它確保了每個記錄都有唯一的識別值。
  3. 外鍵(Foreign Key)
    • 外鍵是一個表格中的欄位,它參照了另一個表格的主鍵,用於建立不同表格之間的關聯。
  4. 索引(Index)
    • 索引是一種儲存特定欄位數值的資料結構,它可以加速資料檢索的速度。
  5. 查詢語言(SQL - Structured Query Language)
    • SQL 是一種用於與關聯式資料庫進行互動的語言。它包括了用於查詢、插入、更新、刪除等操作的指令。
  6. 資料完整性(Data Integrity)
    • 關聯式資料庫提供了一些機制來保證資料的完整性,包括主鍵、外鍵約束等。

常見的關聯式資料庫系統包括 MySQL、PostgreSQL、SQLite、Microsoft SQL Server 等。

對於一名前端工程師來說,了解如何透過後端技術與關聯式資料庫進行互動是很重要的,這樣你可以從資料庫中獲取資料,並在前端進行顯示和操作。

如果你有任何關於關聯式資料庫或相關技術的具體問題,請隨時告訴我,我將樂意提供進一步的協助和範例!

MySQL入門

https://ithelp.ithome.com.tw/upload/images/20231021/20135750RqiVgXMSRJ.png

當然!讓我為你提供一個關聯式資料庫的入門教學,我會以MySQL作為範例資料庫。

步驟一:安裝MySQL

首先,你需要在你的電腦上安裝MySQL資料庫。你可以從MySQL 官方網站下載安裝程式,並按照指示進行安裝。

步驟二:啟動MySQL伺服器

安裝完成後,請確保MySQL伺服器已經啟動。你可以在系統服務中確認。

步驟三:連接至MySQL

使用以下指令來以指定的使用者名稱和密碼連接至MySQL:

mysql -u your_username -p

請將 your_username 替換為你的使用者名稱。系統會要求你輸入密碼。

步驟四:建立資料庫

一旦你成功登入,你可以使用以下指令來建立一個新的資料庫:

CREATE DATABASE my_database;

這將建立一個名為 my_database 的新資料庫。

步驟五:選擇資料庫

使用以下指令來選擇你要使用的資料庫:

USE my_database;

這樣,你就可以在這個資料庫中進行操作了。

步驟六:建立表格

現在,讓我們來建立一個簡單的表格。以下是一個例子:

CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50),
    email VARCHAR(50)
);

這將建立一個名為 users 的表格,包含了 idusernameemail 三個欄位。

步驟七:插入資料

現在,讓我們向這個表格中插入一些資料:

INSERT INTO users (username, email)
VALUES ('john_doe', 'john@example.com'),
       ('jane_doe', 'jane@example.com');

這將在 users 表格中插入兩筆資料。

步驟八:查詢資料

最後,你可以使用以下指令來查詢資料:

SELECT * FROM users;

這將返回 users 表格中的所有資料。

這只是一個簡單的入門教學,讓你開始使用關聯式資料庫。當然,在實際的應用中,你會學到更多進階的操作和最佳實踐。如果你有任何具體的問題或需要更多範例,請隨時告訴我!

跑到官網,根據作業系統選擇mysql的版本下載
然後中間想叫你登入註冊,但沒關係,可以直接點擊就直接開始下載
https://ithelp.ithome.com.tw/upload/images/20231021/20135750K0txSigfCV.png

然後安裝過程就要設定一下root帳號的密碼
https://ithelp.ithome.com.tw/upload/images/20231021/20135750pTDrgm3UDQ.png

好了之後,mac就可以在系統偏好設定的主頁,看到下面有mysql的選項
https://ithelp.ithome.com.tw/upload/images/20231021/20135750Ue2cal34JB.png

點進去之後,可以看到是否有啟用中,也可以選擇停用
https://ithelp.ithome.com.tw/upload/images/20231021/20135750gOtMA5KFcd.png

都好了之後,打開終端機,輸入 mysql -u root -p
https://ithelp.ithome.com.tw/upload/images/20231021/20135750xChH8eF3O4.png

ChatGPT說的使用者名稱,是在mysql中有註冊帳號的情況下,才是輸入資料庫中設定的帳號
一開始的話系統只有幫我們創建root帳號,密碼就是剛剛安裝的時候的那個
進到這個介面就可以開始輸入sql相關的語法了
https://ithelp.ithome.com.tw/upload/images/20231021/20135750gB0L61yCf5.png

把ChatGPT給的指令一個一個輸入進去
就會執行創建DB、選擇DB、創建表格、輸入資料、顯示資料的動作

然後資料呈現上就是上圖的這樣,他會在終端機中畫給你看 (?)
微..克難,我們來問ChatGPT有沒有推薦的GUI (圖形介面)
https://ithelp.ithome.com.tw/upload/images/20231021/20135750rtEP5G7UBN.png

是的,MySQL 提供了許多 GUI 圖形介面,可以方便地進行操作和觀看資料。以下是一些常用的 MySQL GUI 工具:

  1. MySQL Workbench
    • MySQL 官方提供的官方 GUI 工具,具有豐富的功能,包括資料庫設計、查詢編輯器、資料表管理等。
  2. DBeaver
    • DBeaver 是一個通用的開源資料庫工具,支援多種資料庫系統,包括 MySQL。它提供了直觀的界面和強大的功能。
  3. Navicat
    • Navicat 是一個商業資料庫管理工具,提供了直觀的界面、資料庫設計和管理功能。
  4. HeidiSQL
    • HeidiSQL 是一個開源的 MySQL GUI 工具,提供了簡單易用的界面,適合初學者使用。
  5. Sequel Pro(僅適用於 macOS):
    • Sequel Pro 是一個免費的 MySQL GUI 工具,專為 macOS 用戶設計,提供了直觀的界面和豐富的功能。

這些工具可以幫助你以圖形化的方式進行資料庫操作,包括建立、編輯、刪除資料表,以及執行查詢等操作。你可以根據自己的喜好和需求選擇一個適合的 GUI 工具來使用。

如果你需要進一步的指導或對特定工具有疑問,請隨時告訴我!

以我自己的經驗來說,有用過MySQL Workbench、Navicat、HeidiSQL這三套軟體

個人覺得HeidiSQL相當好用,多個關聯式資料庫系統都可以一起管理,
MySQL、MSSQL、MariaDB、PostgreSQL、SQLite、Interbase、Firebird都可以使用HeidiSQL
但缺點是沒有Mac版本的,只有windows可以安裝使用

Navicat 似乎是付費的,我自己電腦上想下載也沒辦法,公司有一段時間是使用Navicat

MySQL Workbench 是MySQL官方工具,只能適用於MySQL
然後介面是英文的,按鈕也沒有提示文字,操作上需要熟悉一段時間
不過MySQL Workbench 有Windows和Mac版本

所以我們先選 MySQL Workbench 來安裝與使用
https://ithelp.ithome.com.tw/upload/images/20231021/20135750pAViNd3Vb4.png

當然可以!以下是 MySQL Workbench 的安裝與基本使用教學:

步驟一:下載 MySQL Workbench

  1. 前往 MySQL 官方網站 下載 MySQL Workbench 的安裝程式。
  2. 選擇適用於你作業系統的版本(例如:Windows、macOS、Linux)。

步驟二:安裝 MySQL Workbench

根據你的作業系統,執行下載的安裝程式,並按照提示進行安裝。

步驟三:啟動 MySQL Workbench

安裝完成後,你可以在程式清單或啟動器中找到 MySQL Workbench 的圖示,並執行它。

步驟四:連接至 MySQL 伺服器

  1. 在 MySQL Workbench 中,點擊上方的「+」圖示以新增一個新的連線。
  2. 在彈出的視窗中,輸入以下資訊:
    • Connection Name(連線名稱):隨意取一個名稱,用來識別這個連線。
    • Connection Method(連線方式):Standard TCP/IP over SSH(通常是預設值)。
    • Hostname(主機名稱):你的 MySQL 伺服器所在的位置,通常是 localhost(如果 MySQL 伺服器在同一台電腦上)。
    • Port(埠):預設是 3306。
    • Username(使用者名稱):你在 MySQL 中設定的使用者名稱。
    • Password(密碼):對應的密碼。
  3. 點擊「Test Connection」來測試是否成功連接至 MySQL 伺服器。
  4. 若連接成功,點擊「OK」以儲存這個連線設定。

步驟五:操作 MySQL 資料庫

一旦成功連接至 MySQL 伺服器,你可以在 MySQL Workbench 中進行各種操作,包括:

  • 查詢資料庫
  • 建立新的資料表
  • 編輯和刪除資料表
  • 執行 SQL 查詢等

請注意,這只是一個基本的教學,MySQL Workbench 還提供了許多進階功能,例如資料庫設計、查詢優化等。如果你需要更進一步的指導或遇到特定的問題,請隨時告訴我!

特別注意的是,Mac版本的MySQL Workbench 8.0.34只支援MacOS 13版以上
也就是太久沒有更新自己macOS版本的人aka我,要記得先進行系統更新再安裝使用
否則他就會說版本不支援
https://ithelp.ithome.com.tw/upload/images/20231021/20135750cmSLx4iJJa.png

接著點一下左邊Schemas,可以看到我們剛剛創建的DB
點開就有創建的table列表,可以按照下圖的方式點擊之後就會自動幫我們寫好query,顯示資料
https://ithelp.ithome.com.tw/upload/images/20231021/20135750BdIxwnMl8j.png

使用GUI的優點,除了資料顯示更直覺、登入的資料庫&帳密可以儲存起來方便進入、切換之外
還有一些資料庫的操作,可以自動協助產生sql query 來完成改動

像是是改動資料:對著資料欄位點兩下,然後更改後按下右下角Apply
https://ithelp.ithome.com.tw/upload/images/20231021/2013575075eYSf16zf.png

或是檢視、改變表格的欄位結構
https://ithelp.ithome.com.tw/upload/images/20231021/20135750hQbhrklfoe.png
這些都相當方便,基本上sql的GUI軟體都會提供這類的方便服務

試著請ChatGPT提供一些有關MySQL Workbench 的操作與功能介紹好了
https://ithelp.ithome.com.tw/upload/images/20231021/20135750U69oCd4ELY.png

當然!以下是針對 MySQL Workbench 的詳細操作教學與介紹:

1. 連接至資料庫伺服器

一旦你啟動了 MySQL Workbench,你可以透過以下步驟連接至你的 MySQL 伺服器:

  • 點選左上角的「+」圖示,或者在首頁的「MySQL Connections」中點選「New Connection」。

  • 填入相關資訊:

    • Connection Name:隨意取一個名稱來識別這個連線。
    • Connection Method:通常選擇「Standard TCP/IP over SSH」。
    • Hostname:MySQL 伺服器所在位置,通常是 localhost
    • Port:通常是 3306。
    • Username:你在 MySQL 中設定的使用者名稱。
    • Password:對應的密碼。

    點選「Test Connection」來測試連接。

    最後,點選「OK」以建立連線。

2. 資料庫和資料表操作

在 MySQL Workbench 的左側窗格中,你會看到資料庫和資料表的樹狀結構。你可以進行以下操作:

  • 建立新資料庫:在左側窗格上點擊右鍵,選擇「Create Schema」,並填入相關資訊。
  • 刪除資料庫:在左側窗格上點擊右鍵,選擇「Drop Schema」,並按照提示進行操作。
  • 建立新資料表:在特定資料庫中,點擊右鍵,選擇「Create Table」,並填入相關資訊。
  • 編輯資料表:點擊特定資料表,你可以在右側窗格中編輯資料表的結構和資料。

3. 執行 SQL 查詢

在 MySQL Workbench 中,你可以透過以下方式執行 SQL 查詢:

  • 在頂部的工具列中點選「Query」,這將打開一個新的查詢編輯器。
  • 在查詢編輯器中,你可以輸入你的 SQL 查詢,並點擊左上角的「Execute」按鈕來執行它。

4. 查詢結果

當你執行查詢後,結果將會在下方的結果視窗中顯示。你可以在這裡檢視查詢結果的表格。

5. 匯入和匯出資料

在 MySQL Workbench 中,你可以輕鬆地匯入和匯出資料:

  • 匯入資料:在特定資料庫上點擊右鍵,選擇「Table Data Import Wizard」。
  • 匯出資料:在特定資料庫上點擊右鍵,選擇「Table Data Export Wizard」。

這些是 MySQL Workbench 的一些基本操作,但它還有許多進階功能,例如資料庫設計、查詢優化等,可以根據你的需求來進一步學習和應用。如果你對特定操作或功能有疑問,請隨時告訴我,我將樂意提供協助!

https://ithelp.ithome.com.tw/upload/images/20231021/20135750PNYzKNBQ93.png

當然,讓我為你提供更多 MySQL Workbench 的操作教學:

6. 資料表設計與編輯

在 MySQL Workbench 中,你可以進行資料表的設計與編輯:

  • 新增欄位
    1. 在資料表編輯器中選擇你想要新增欄位的位置。
    2. 在右側的屬性面板中,填入欄位的相關資訊(名稱、資料類型、長度等)。
  • 修改欄位
    1. 雙擊欄位以進入編輯模式,或者在右側的屬性面板中進行修改。
  • 刪除欄位
    1. 選中你要刪除的欄位,按下 Delete 鍵。
  • 設定主鍵、外鍵等約束
    1. 在資料表編輯器中,右鍵點擊欄位,選擇「Set as Primary Key」或「Set as Foreign Key」。

7. 執行多個 SQL 查詢

你可以在 SQL 查詢編輯器中執行多個 SQL 查詢:

  • 在 SQL 編輯器中,將多個查詢用分號 ; 分隔開。
  • 點擊左上角的「Execute」按鈕,所有查詢都將一次性執行。

8. 查詢歷史

MySQL Workbench 會記錄你執行的 SQL 查詢,可以輕鬆查找之前的操作:

  • 點擊 SQL 編輯器上方的「History」選項卡,你會看到之前執行的所有查詢。

9. 資料匯入和匯出

你可以透過 MySQL Workbench 進行資料的匯入和匯出:

  • 匯入資料
    1. 在左側窗格找到你要匯入資料的資料庫,右鍵選擇「Table Data Import Wizard」。
    2. 選擇你要匯入的檔案,按照指示進行操作。
  • 匯出資料
    1. 在左側窗格找到你要匯出資料的資料庫,右鍵選擇「Table Data Export Wizard」。
    2. 選擇匯出格式和路徑,按照指示進行操作。

10. 查詢執行計畫

你可以查看查詢的執行計畫,以了解查詢的效能和優化:

  • 在 SQL 編輯器中,輸入你的查詢,然後點擊右上角的「Explain」按鈕。

11. 設定自動儲存

你可以設定 MySQL Workbench 定期自動儲存你的工作:

  • 在頂部工具列中點擊「Edit」 > 「Preferences」 > 「SQL Editor」。
  • 勾選「Automatically commit after each statement」。

這樣,每次你執行一個 SQL 查詢,它都會自動儲存。

這些是一些進階的 MySQL Workbench 操作,希望對你有所幫助。如果你有任何特定的問題或需要更多的協助,請隨時告訴我!

https://ithelp.ithome.com.tw/upload/images/20231021/20135750PoZ6ibtO4M.png

本次的內容涵蓋了從資料庫基本概念到 MySQL Workbench 的操作教學。以下是一些重點:

  1. 資料庫基本概念
    • 資料庫是用來儲存、管理和檢索資料的系統,有關聯式、非關聯式等不同種類。
  2. 關聯式資料庫介紹
    • 關聯式資料庫以表格形式組織資料,具有主鍵、外鍵等重要概念。
  3. MySQL Workbench 安裝與連接
    • 下載並安裝 MySQL Workbench,透過它與 MySQL 伺服器建立連線。
  4. 資料庫與資料表操作
    • 在 MySQL Workbench 中建立、編輯、刪除資料庫和資料表。
  5. SQL 查詢
    • 在 MySQL Workbench 中透過 SQL 查詢執行資料操作。
  6. 匯入和匯出資料
    • 使用 MySQL Workbench 進行資料的匯入和匯出。
  7. 查詢歷史和查詢執行計畫
    • MySQL Workbench 可以追蹤查詢歷史,並提供查詢執行計畫分析效能。
  8. 資料表設計與編輯
    • 在 MySQL Workbench 中進行資料表結構的設計和編輯。
  9. 自動儲存設定
    • 設定 MySQL Workbench 自動儲存你的工作。

結語

學習資料庫和相關工具如 MySQL Workbench 是成為一名優秀的前端工程師的重要一步。資料庫是儲存和管理數據的關鍵,而 MySQL Workbench 提供了一個強大的工具來視覺化地操作資料庫。

隨著你的學習進程,你將能夠建立更複雜的資料庫結構,並透過 SQL 查詢進行高效的資料操作。這將使你能夠開發出更具功能性和效率的前端應用程式。

如果你在學習的過程中遇到了任何問題,請隨時向我尋求幫助。祝你在學習前端工程師的道路上順利前行!

結語

本次對話記錄在這邊:
https://chat.openai.com/share/d8b5aff3-fed9-44cf-822d-459fbf6d1d5b

原本ChatGPT有推薦我用SQLite來練習
雖然很輕便好用,但因為他是一個單機的服務,沒有透過網路
和工作上、實務上會用的方式還是有一點不同

單純要練sql語法或是小型專案當然可以用SQLite
那最後我選擇了比較泛用的mysql當作練習目標

這篇還沒有講解和語法有關的部分,切到下一篇處理!
下一篇!SQL語法!以及回到NodeJS上,探討如何在NodeJS和資料庫做連接
我是也會SQL的前端工程師一宵三筵,我們明天見!

參考資料

SQLite 與 MySQL 的差別 - EREN


上一篇
【Day37】ChatGPT請教教我:NodeJS!Express!RESTful API !
下一篇
【Day39】ChatGPT請教教我:基礎SQL語法!NodeJS連結SQL!
系列文
用ChatGPT詠唱來完成工作與點亮前後端技能樹56
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言