NodeJS 速習チュートリアル

Node.js MySQL テーブル作成

1. テーブルの作成

MySQLで新しいテーブルを作成するには、CREATE TABLE ステートメントを使用します。
実装の際、コネクションを作成するタイミングで対象のデータベース名を指定することを忘れないでください。

1.1 実装例:「customers」テーブルの作成

以下のコードは、nameaddress という2つのカラムを持つ「customers」テーブルを作成する例です。

let mysql = require('mysql');

// データベース「mydb」を指定して接続設定を作成
let con = mysql.createConnection({
  host: "localhost",
  user: "ユーザー名",     // あなたのMySQLユーザー名
  password: "パスワード", // あなたのMySQLパスワード
  database: "mydb"      // 操作対象のデータベース名
});

con.connect(function(err) {
  if (err) throw err;
  console.log("接続完了!");
  
  // テーブル作成用のSQL文
  let sql = "CREATE TABLE customers (name VARCHAR(255), address VARCHAR(255))";
  
  con.query(sql, function (err, result) {
    if (err) throw err;
    console.log("テーブル作成完了");
  });
});

1.2 プログラムの実行

上記の内容を demo_create_table.js という名前のファイルで保存し、コマンドラインから実行します。

demo_create_table.js の実行

C:\Users\Your Name>node demo_create_table.js

成功すると、以下の結果が表示されます。

Connected!
Table created

2. プライマリキー(主キー)

テーブルを作成する際は、各レコードを一意に識別するためのプライマリキー(Primary Key)を持つカラムを作成するのが一般的です。

MySQLでは、カラムを INT AUTO_INCREMENT PRIMARY KEY として定義することで、レコードが追加されるたびに1から始まる一意の数値を自動的に割り当てることができます。

2.1 テーブル作成時にプライマリキーを設定する例

let mysql = require('mysql');

let con = mysql.createConnection({
  host: "localhost",
  user: "ユーザー名",
  password: "パスワード",
  database: "mydb"
});

con.connect(function(err) {
  if (err) throw err;
  console.log("接続完了!");
  
  // idカラムをプライマリキーとして追加
  let sql = "CREATE TABLE customers (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), address VARCHAR(255))";
  
  con.query(sql, function (err, result) {
    if (err) throw err;
    console.log("テーブル作成完了");
  });
});

3. 既存のテーブルを変更する場合(ALTER TABLE)

すでにテーブルが存在しており、後からプライマリキーを追加したい場合は、ALTER TABLE キーワードを使用します。

3.1 既存のテーブルにプライマリキーを追加する例

let mysql = require('mysql');

let con = mysql.createConnection({
  host: "localhost",
  user: "ユーザー名",
  password: "パスワード",
  database: "mydb"
});

con.connect(function(err) {
  if (err) throw err;
  console.log("接続完了!");
  
  // 既存のテーブルに id カラムをプライマリキーとして追加
  let sql = "ALTER TABLE customers ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY";
  
  con.query(sql, function (err, result) {
    if (err) throw err;
    console.log("テーブル構造を変更しました");
  });
});