MySQL

使用MySQL

使用線上服務

免費信箱 https://10minutemail.com/10MinuteMail/index.html?dswid=-5419

測試用免費mysql:https://www.freemysqlhosting.net/ (預設一個資料庫,不可再增加或修改)

記得,如果請申請過freemysqlhosting後,想再申請一個帳號記得先把網站的cookie刪除,因目前沒刪除直接重新註冊會產生收不到密碼信件的Bug

在本地安裝

Windows

https://dev.mysql.com/downloads/installer/

啟動相關命令:https://dev.mysql.com/doc/refman/5.7/en/windows-start-command-line.html

到安裝路徑的bin資料夾輸入

D:\MYSQL\Bin>mysql -u root -p admin

Mac

homebrew install mysql

與Node.js連線

1.使用npm安裝mysql

2.測試連線

操控資料庫

CREATE TABLE

記得每段分行要用+號,因為javascript分行要用字串聯接

或是

使用ES6 的新字元串` ,可跨行連接字段

如要使用變數記得用${}

insert column

insert row

Read data

使用?號

UPDATE

加上where,限制要更新的row

使用?號

有關? 與??

範例1

範例2

使用escape,防止injection

https://www.wikiwand.com/zh-tw/SQL%E8%B3%87%E6%96%99%E9%9A%B1%E7%A2%BC%E6%94%BB%E6%93%8A

可達到的效果

1.

escape()

?作用相同

如果要excape的是name

使用escapeId()

使用??一樣效果

(??是給mysql module 內的function解析的,所以他不是變數,不用字串包住前後)

insert資料時傳回該筆insert id(主鍵)

複習sql語法

  1. 資料表查詢

    SELECT 欄位 FROM 資料表;

    一般用法: SELECT * FROM table ;

    翻譯:選擇table這個資料表所有欄位的資料(就是全選啦!!)

    備註:星號代表所有欄位,在sql語法、指令中星號代表全部

  2. 資料表查詢 + 排序

    SELECT 欄位 FROM 資料表 ORDER BY 特定欄位 DESC ;

    一般用法: SELECT id,name FROM table ORDER BY 特定欄位 DESC ;

    翻譯: 選取table資料表內的 id 和 name 這兩個欄位,並根據id這欄位做降冪排序(由高而低、由大到小、由z到a)

    備註:ASC則是(由低而高、由小到大、由a到z),與DESC相反

  3. 資料表查詢 + 查詢條件

    SELECT 欄位 FROM 資料表 WHERE 特定欄位 = 數字 ;

    一般用法: SELECT * FROM table WHERE id = 363 ;

    翻譯: 在table資料表內的尋找 id 欄位的內容是 363 且將 所有欄位的資料都取出來

使用完記得關閉

參考至:

https://www.npmjs.com/package/mysql#getting-the-id-of-an-inserted-row

http://www.sitepoint.com/using-node-mysql-javascript-client/

於Linux安裝的MySQL

一開始預設只有local可以存取到本地資料夾

停止

開啟

phpmyadmin中的使用者即為mysql的使用者所以更改後兩者都會變,安裝phpmyadmin套件可參考本書GCE章節。

如在terminal輸入mysql後告知沒有權限,可輸入以下

Last updated

Was this helpful?