iT邦幫忙

0

[Unity] 使用 phpMyAdmin 來管理資料庫 - Unity導入雲端排行榜步驟紀錄 04

  • 分享至 

  • xImage
  •  

2023/06/20

使用 phpMyAdmin 來管理資料庫

介紹 phpMyAdmin

phpMyAdmin 是一個用於管理 MySQL 資料庫的開源網頁應用程式。
它提供了一個直觀和功能豐富的用戶界面,讓用戶能夠通過網頁瀏覽器輕鬆地管理和操作 MySQL 資料庫。
安裝MAMP時,phpMyAdmin已經包含在內,不用另外下載。

以下是 phpMyAdmin 的一些主要特點和功能:

  • 資料庫管理
    phpMyAdmin 允許用戶創建新的資料庫,刪除資料庫,修改資料庫結構以及執行資料庫相關操作。

  • 資料表管理
    用戶可以建立新的資料表,修改資料表結構,添加、刪除或修改列,設置索引和主鍵等。

  • 資料操作
    phpMyAdmin 提供了強大的工具,讓用戶能夠輕鬆地插入、編輯、更新和刪除資料。

  • SQL 查詢
    用戶可以直接在 phpMyAdmin 中執行 SQL 查詢,從而進行複雜的資料查詢和操作。

  • 用戶管理
    phpMyAdmin 允許用戶管理 MySQL 的用戶帳號和權限,包括創建新的用戶帳號,修改用戶權限,重置用戶密碼等。

  • 導入和導出資料
    用戶可以通過 phpMyAdmin 將資料從外部導入到資料庫中,或將資料從資料庫導出為不同的格式(如 SQL、CSV、XML 等)。

  • 監視和優化:phpMyAdmin 提供了監視工具,用於檢視資料庫的性能和狀態,並提供了一些優化建議。

  • 多語言支援:phpMyAdmin 支援多種語言,用戶可以選擇自己熟悉的語言進行界面顯示和操作。

phpMyAdmin 是一個廣泛使用的 MySQL 資料庫管理工具,
其易於使用和豐富的功能使得開發人員和系統管理員能夠高效地管理和操作 MySQL 資料庫。
它是一個非常有價值的工具,尤其適用於初學者和中小型項目。

1.打開MAMP應用程式,打開Server

https://ithelp.ithome.com.tw/upload/images/20230620/20156436p7GI0N4lVx.png

我們將使用 phpMyAdmin 來管理資料庫

有多種方式可以打開 phpMyAdmin 的網頁界面,

以下列舉2種常見的方式:

  • 透過瀏覽器直接訪問 URL
    在瀏覽器的網址欄中輸入 phpMyAdmin 的 URL,http://localhost/phpMyAdmin/

  • 透過本地開發環境的管理工具
    打開MAMP應用程式後,點擊下圖 Open WebStart page
    https://ithelp.ithome.com.tw/upload/images/20230619/201564362Q9bwMenDX.png
    確保 ApacheServer & MySQL Server 右方綠點都有亮

沒有亮就按 Start Servers 按鈕,開啓Server

就會跳轉預設瀏覽器的 MAMP localhost 頁面
https://ithelp.ithome.com.tw/upload/images/20230619/20156436m5jqJT3Hqm.png
點擊中央 MySQL 的 phpMyAdmin (藍字超連結)就會進入phpMyAdmin頁面

MAMP應用程式的Server開啓狀態才能進入phpMyAdmin頁面

2.進入phpMyAdmin頁面

https://ithelp.ithome.com.tw/upload/images/20230619/20156436au5yoVO2nK.png

3.設計資料庫和資料表:(需先了解"資料型別")

這裡使用玩家資料表作為範例,我們可以建立一個包含以下欄位的資料表:

索引 字段名稱 資料型別 描述
1 ID int 玩家的唯一識別符號
2 AccountName varchar 玩家的帳號名稱
3 Password int 玩家的密碼
4 Nickname varchar 玩家的暱稱
5 Level int 玩家的等級
6 Score int 玩家的分數
7 Progress int 玩家的關卡進度
8 LastLoginTime datetime 玩家最近一次登入的時間
9 Email varchar 玩家的電子郵件地址
10 Coins int 玩家擁有的金幣數量
11 Diamonds int 玩家擁有的鑽石數量
12 VIPLevel int 玩家的VIP等級
13 RankPoints int 玩家的牌位積分
14 PurchaseTotal int 玩家的課金累計
15 Region int 玩家的分布地區

實際執行需要根據項目需求進行修改,不過原理是相同的。



資料型別

在資料庫中,資料型別用於定義欄位中可以存儲的資料的類型和範圍。不同的資料型別適用於不同類型的資料,例如數>字、文字、日期等。以下是常見的資料型別:

  • 整數型別(Integer)
    用於存儲整數值,如整數、小數和負數。常見的整數型別包括INT、BIGINT、SMALLINT和TINYINT。

  • 浮點數型別(Floating-Point)
    用於存儲帶有小數部分的數值。常見的浮點數型別包括FLOAT和DOUBLE。

  • 字符串型別(String)
    用於存儲文字或字符數據。常見的字符串型別包括CHAR、VARCHAR和TEXT。其中,CHAR定義固定長度的字符串,而>VARCHAR定義可變長度的字符串,TEXT則用於存儲大量文字數據。

  • 日期和時間型別(Date and Time)
    用於存儲日期和時間數據。常見的日期和時間型別包括DATE、TIME、DATETIME和TIMESTAMP。

  • 布林型別(Boolean)
    用於存儲僅有兩個可能值(真或假)的數據。常見的布林型別為BOOLEAN或BIT。

  • 二進制型別(Binary)
    用於存儲二進制數據,如圖像、文件等。常見的二進制型別包括BLOB和BYTEA。

此外,不同的資料庫管理系統(DBMS)可能還提供了其他特定的資料型別和擴充型別,以滿足特定的需求。
在設計資料庫時,選擇適當的資料型別至關重要,以確保資料的準確性、一致性和有效性。這涉及考慮資料的範圍、大小、精確度以及對資料的操作和查詢需求。



使用"VARCHAR"數據類型來存儲中文字符集

由於MAMP是一個集成環境,其中包含了Apache、MySQL和PHP,而MySQL是其中的數據庫組件,
因此當在MAMP中使用MySQL時,需要遵守MySQL的數據庫規範和限制。
對於存儲中文字符集的字符串數據,請使用"VARCHAR"數據類型。

"VARCHAR"數據類型可以用於在MySQL數據庫中存儲不同字符集的字符串數據,包括中文字符集。
您可以將中文字符串存儲在"VARCHAR"列中,而無需使用"nvarchar"(“nvarchar” 數據類型特定於 Microsoft SQL Server 不是其他可用數據庫引擎支持的數據類型)。

總結來說,在MAMP中使用MySQL時,請使用"VARCHAR"數據類型來存儲中文字符集的字符串數據。
計算varchar類型可以存儲多少個漢字,多少個數字,具體看mysql的版本,
目前2020年以後使用的版本是按照字符數來算,而不是字節數。

mysql 5.0.3版本以下,比如 varchar(100),指的是100字節,如果存放UTF8漢字時,只能存33個(每個漢字3字節)

mysql 5.0.3版本及以上,比如varchar(100),指的是100字符,無論存放的是數字、字母還是UTF8漢字(每個漢字3字節),都可以存放100個

漢字在不同字符集占用字節不同:

GBK編碼下,一個漢字占2個字節bai;
UTF-8編碼下,一個漢字占3個字節

4.設置資料庫和資料表:

當您在phpMyAdmin頁面上,點擊 "New" ->
https://ithelp.ithome.com.tw/upload/images/20230620/20156436oulqVyPtjn.png
建立新的資料庫並命名為 "player_data",維持預設utf8_general_ci,
點擊 "Create" ->
https://ithelp.ithome.com.tw/upload/images/20230620/201564368RRebZeoe6.png
創建資料庫後,
您可以遵循以下步驟在剛創建的資料庫中使用SQL建立玩家資料表
點擊 "player_data" 資料庫,將焦點設定在該資料庫上。
https://ithelp.ithome.com.tw/upload/images/20230620/20156436p4JCbNQkeo.png
在頂部菜單中,選擇 "SQL" 選項卡,以進入SQL查詢模式。
https://ithelp.ithome.com.tw/upload/images/20230620/20156436ZP6vKxikrx.png
在SQL查詢編輯器中,
輸入以下建表語句以創建玩家資料表:(CREATE)

CREATE TABLE player (
    ID INT PRIMARY KEY,
    AccountName VARCHAR(100),
    Password INT,
    Nickname VARCHAR(100),
    Level INT,
    Score INT,
    Progress INT,
    LastLoginTime DATETIME,
    Email VARCHAR(100),
    Coins INT,
    Diamonds INT,
    VIPLevel INT,
    RankPoints INT,
    PurchaseTotal INT,
    Region INT
);

確保您已經完成了上述SQL語句的輸入。

點擊 "Go" 按鈕以執行該SQL查詢,從而創建玩家資料表。

現在,您已經在名為 "player_data" 的資料庫中
成功創建了一個名為 "player" 的資料表,其中包含了所需的欄位


*創建資料表前
https://ithelp.ithome.com.tw/upload/images/20230620/20156436ZP6vKxikrx.png


*創建資料表後
https://ithelp.ithome.com.tw/upload/images/20230620/201564369Mtt5CBLAf.png
點選 "Structure" 看 玩家資料表 的結構
https://ithelp.ithome.com.tw/upload/images/20230620/20156436Wrw0ocM3z6.png


5.以下是在phpMyAdmin中使用SQL查詢執行以下操作的具體步驟:

"GO"按鈕="執行"按鈕(位於phpMyAdmin-SQL選項 頁面右下角)

將資訊插入到資料表:(INSERT)

在左側導航窗格中,選擇您的資料庫(例如"player_data")。
在上方菜單中,選擇"SQL"選項卡。
在SQL查詢編輯器中,輸入以下INSERT語句並替換相應的值:

INSERT INTO Player (ID, AccountName, Password, Nickname, Level, Score)
VALUES (3, 'player3', 333333, 'nickName3', 30, 3000);

點擊"執行"按鈕以將資訊插入到資料表中。
https://ithelp.ithome.com.tw/upload/images/20230621/20156436UidrHnJ90y.png
原本資料表沒有資料
https://ithelp.ithome.com.tw/upload/images/20230620/201564369Mtt5CBLAf.png
結果:
https://ithelp.ithome.com.tw/upload/images/20230621/20156436NCzPlnksXM.png

從資料表中讀取/選取資訊:(SELECT)

開啟phpMyAdmin並選擇您的資料庫(例如,"player_data")。
在上方的菜單中,選擇"SQL"選項卡。
在SQL查詢編輯器中,輸入SELECT語句並在WHERE子句中指定條件,例如:

SELECT * FROM `player` WHERE Level >= 10;

這個SELECT語句將從Player資料表中選取所有等級(Level)大於或等於10的資訊。
點擊"執行"按鈕以執行SELECT查詢。
您將看到在執行查詢後符合WHERE條件的資料。
請根據您的需求自定義WHERE條件。WHERE子句可以使用各種運算符和條件來指定要篩選的資訊,
例如等於(=)、大於(>)、小於(<)、LIKE等等。
點擊"執行"按鈕以執行SELECT查詢並瀏覽資料表中的資訊。

更新資料表中的資訊:(UPDATE)

在左側導航窗格中,選擇您的資料庫(例如"player_data")。
在上方菜單中,選擇"SQL"選項卡。
在SQL查詢編輯器中,輸入以下UPDATE語句以更新資料表中的資訊:

UPDATE `player`
SET Score = 2000
WHERE ID = 1;

點擊"執行"按鈕以執行UPDATE語句並更新資料表中的資訊。


補充:

(更多用法可以去W3schools的網站看 https://www.w3schools.com/sql/)

讀取(Read)部分的相應操作:



SELECT

使用SELECT從資料表中讀取資訊

SELECT * FROM table_name;

這個SELECT語句將從指定的資料表(table_name)中選取所有欄位的資料。

如果您只想選取特定的欄位,而不是全部欄位,
可以在SELECT語句中指定欄位名稱,
例如:

SELECT column1, column2 FROM table_name;

這將只選取指定的欄位(column1和column2)的資料。



WHERE

使用WHERE子句在SELECT語句中加入條件,以過濾所選取的資料。

SELECT * FROM table_name WHERE condition;

在上述語句中,將condition替換為您希望應用的特定條件,
例如欄位值等於特定值、大於/小於某個值等等。



ORDER BY

使用ORDER BY子句對選取的資料進行排序。

SELECT * FROM table_name ORDER BY column_name ASC/DESC;

將column_name替換為您希望按其排序的欄位名稱。ASC表示升序排序,DESC表示降序排序。



LIMIT

使用LIMIT子句限制選取的資料行數。

SELECT * FROM table_name LIMIT number;

將number替換為您希望顯示的資料行數。

以上是SQL中讀取操作的基本代碼示例,
您可以根據具體情況自定義和擴展這些代碼。
請注意,代碼中的table_name應替換為實際的資料表名稱,
column_name則應替換為所需的欄位名稱。



LIKE

SELECT * FROM your_table WHERE column_name LIKE pattern;

替換your_table為表的實際名稱、column_name要匹配的列的名稱以及pattern要搜索的特定模式。

確定要用於“LIKE”運算符的模式。常用的通配符有兩種:
'%' 表示任何字符序列(包括無字符)。
'_' 代表任何單個字符。
您可以將這些通配符與其他字符結合使用以形成您的搜索模式。這裡有一些例子:

要查找以“A”開頭的名稱:

SELECT * FROM your_table WHERE column_name LIKE 'A%';

要查找以“兒子”結尾的名字:

SELECT * FROM your_table WHERE column_name LIKE '%son';

要查找名稱中任何位置包含“en”的名稱:

SELECT * FROM your_table WHERE column_name LIKE '%en%';

要查找恰好包含四個字符的名稱:

SELECT * FROM your_table WHERE column_name LIKE '____';

執行 SELECT 語句以從表中檢索匹配的記錄。
確保調整表名和列名以及特定模式,以匹配您自己的數據庫結構和搜索條件。

帶有通配符的“LIKE”運算符允許您在 SQL 查詢中執行靈活的模式匹配,以根據您的搜索要求從您的表中檢索特定信息。


從資料表中刪除資訊:(DELETE)

在左側導航窗格中,選擇您的資料庫(例如"player_data")。
在上方菜單中,選擇"SQL"選項卡。
在SQL查詢編輯器中,輸入以下DELETE語句以從資料表中刪除資訊:

DELETE FROM `player`
WHERE ID = 1;

點擊"執行"按鈕以執行DELETE語句並從資料表中刪除資訊。


以上是使用phpMyAdmin,使用SQL Query進行資料表操作的步驟。


下一節 05
[Unity] PHP用到的部分 - Unity導入雲端排行榜步驟紀錄 05
聚焦在說明PHP 此案例中用到的部分

  1. PHP簡介+安裝Visual Studio Code的PHP插件
  2. PHP的Echo語句和變量
  3. PHP的If語句
  4. 使用PHP從資料庫獲取信息

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言