MySQL使用者權限資訊用user、db、host、tables_priv和columns_priv表被儲存在mysql資料庫中。 關於使用者權限的相關指令,說明如下 (1)使用 root 進入 MySQL mysql> mysql -u root -p (2)遠端登入 mysql> mysql -u root -h remote_host_ip -p remote_host_ip 指你要登入的遠端MySQL (3)修改使用者密碼 mysql> SET PASSWORD FOR '目標使用者'@'主機' = PASSWORD(' 密碼 '); mysql> flush privileges; (4)建立使用者,並給予權限 grant usage on *.* to 'username'@'localhost' identified by ' yourpassword ' with grant option; grant all privileges on *.* to 'username'@&…
MySQL資料庫中,View元件可以用來保存一段你指定的查詢敘述。 MySQL View的實作請參考 https://www.mysql.tw/2023/05/mysql-view.html (1)CREATE VIEW語法 CREATE [ OR REPLACE ] [ ALGORITHM = { UNDEFINED | MERGE | TEMPTABLE } ] [ DEFINER = { user | CURRENT_USER } ] [ SQL SECURITY { DEFINER | INVOKER } ] VIEW view_name [ ( column_list ) ] AS select_statement [ WITH [ CASCADED | LOCAL ] CHECK OPTION ] https://dev.mysql.com/doc/refman/8.0/en/create-view.html 範例 mysql> CREATE TABLE t (qty INT, price INT); mysql>…
Prepare, Execute, Deallocate是一個使用變數來執行的一個功能,主要目的是 : (1)在尚未寫入正式程式時做測試使用。 (2)當暫時需要做些重複動作時使用。 Prepare ~ 準備程序 Execute ~ 執行程序 Deallocate ~ 解除程序 範例 : mysql> PREPARE stmt1 FROM 'SELECT productCode, productName FROM products WHERE productCode = ?'; mysql> SET @pc = 'S10_1678'; mysql> EXECUTE stmt1 USING @pc; mysql> DEALLOCATE PREPARE stmt1; 範例 : mysql> PREPARE stmt1 FROM 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse'; mysql> SET @a = 3; mysql> SET @b = 4; mysql> EXECU…
需求~要列出符合【某個條件】的【某項資料】,應該如何寫出SQL指令呢? 第一步 : 找齊資料表。 【某項資料】是在哪個資料表? 以及【某個條件】中的判斷條件是在哪個資料表? 所以這個步驟 ,就可以把資料表都找齊了。 第二步 : 篩選出來【正確的資料表】。 但是許多情況,【某項資料】會存在許多資料表中,這個時候就要判斷,哪個資料表才是正確的。 方法就是把第一步找到的資料表,畫出關聯性,【某項資料】一定會存在具有關聯性的資料表中。所以就可以把不在關聯的資料表刪除。 第三步 : 套用再調整。 套用 SELECT 【某項資料】 FROM 【正確的資料表】 WHERE 【某個條件】AND 主鍵外鍵的關聯 其他部分 (如GROUP BY、HAVING、ORDER BY等等) 調整 看看那些欄位需要冠上 ~ 資料表.資料欄,例如 學生資料表.學生姓名 例如~ 要列出開課編號為o0001的「開課編號」、「學生姓名」。 由第一步,相關的欄位是 「 開課編號 」 、「學生姓名」。 「學生姓名」存在於學生資料庫, 「 開課編號 」存在於 選課資料表、 開課資料表、 時間資料表。 由第二 步,學生資料庫與 選課資料表,透過 學生編…