• Node.js Video Tutorials

Node.js - 建立MySQL資料庫



可以在 MySQL 伺服器上建立多個數據庫(或模式)。雖然我們可以使用 MySQL 查詢 `CREATE DATABASE` 以及 Workbench 建立資料庫,但我們感興趣的是使用 Node.js 程式建立資料庫。

資料庫是我們將資料以表的形式儲存的地方。我們使用 MySQL 查詢 `CREATE DATABASE` 來建立資料庫。

語法

以下是 MySQL 建立資料庫查詢的語法:

CREATE DATABASE IF NOT EXISTS database_name;

示例

建立一個您選擇的資料庫,這裡我們為寵物商店建立一個數據庫,因此將其命名為 `mydb`,並在 MySQL 命令列客戶端執行“CREATE DATABASE”命令。

mysql> CREATE DATABASE IF NOT EXISTS mydb;
Query OK, 1 row affected (0.02 sec)

為了驗證資料庫的建立,我們可以執行 `SHOW DATABASES` 查詢:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mydb               |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| world              |
+--------------------+
7 rows in set (0.00 sec)

con.query() 方法

由 `mysql.createConnection()` 方法返回的連線物件可以訪問 `query()` 方法。任何有效的 MySQL 查詢的字串表示形式都作為引數傳遞給它。`query()` 方法的第二個引數是一個回撥函式。`query()` 方法的使用如下:

con.query(sql, function (err, result) {. . . . . . });

我們只需要將 `query()` 函式中的“sql”引數更改為字串格式的所需查詢。

由於在 MySQL 中建立資料庫的查詢為 `"CREATE DATABASE $database_name"`,則使用 Node.js `con.query()` 函式建立資料庫的語法變為:

con.query("CREATE DATABASE $database_name$;", function (err, result) {
   //Your code
});

示例

下面的 JavaScript 示例嘗試建立一個名為 `mydb` 的 MySQL 資料庫。為此:

  • 首先,您需要將查詢函式中的“sql”引數替換為“CREATE DATABASE mydb;”,然後使用 node 執行該檔案。

  • 現在,要檢查您是否已建立資料庫,我們可以使用 MySQL 查詢“SHOW DATABASES;”。為此,您需要再次執行 `con.query()` 函式,這次需要將“SHOW DATABASES;”查詢作為第一個引數傳遞。

  • `SHOW DATABASES` 查詢返回一個 RowDataPacket 物件陣列。您需要將陣列中的每個物件轉換為字串才能獲取資料庫名稱。

  • 執行一個迴圈來檢視所有資料庫及其名稱,並找到您剛剛建立的資料庫。

  • 我們在建立資料庫時添加了 IF NOT EXISTS 子句,因為我們不希望在資料庫已存在的情況下建立資料庫時發生任何錯誤。

var mysql = require('mysql');
var con = mysql.createConnection({
   host: "localhost",
   user: "root",
   password: "mypassword"
});
con.connect(function (err) {
   if (err) throw err;
   console.log("Connected!");
   con.query("CREATE DATABASE IF NOT EXISTS mydb;", function (err, result) {
      if (err) throw err;
         console.log("Created database successfully");
   });
   con.query("SHOW DATABASES;", function (err, result) {
      if (err) throw err;
         console.log("Showing databases\n");
      for (var i = 0; i < result.length; i++) {
         console.log(JSON.stringify(result[i]));
      }
   })
   con.end();
});

輸出

Connected!
Created database successfully
Showing databases

{"Database":"information_schema"}
{"Database":"mydb"}
{"Database":"mysql"}
{"Database":"performance_schema"}
{"Database":"sakila"}
{"Database":"sys"}
{"Database":"world"}
廣告