• 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"}
广告