MySQL 速習チュートリアル

MySQL CREATE TABLE 文

1. MySQL CREATE TABLE 文の概要

CREATE TABLE 文は、データベース内に新しいテーブルを作成するために使用されます。

2. 基本構文 (Syntax)

CREATE TABLE テーブル名 (
    カラム1 データ型 制約,
    カラム2 データ型 制約,
    カラム3 データ型 制約,
    ....
);
  • テーブル名 パラメータには、新しく作成するテーブルの名前を指定します。
  • カラム1, カラム2, ... パラメータには、テーブル内のカラム(列)の名前を指定します。
  • データ型 (datatype) パラメータには、各カラムが保持するデータの種類を指定します(例:varchar, int, date など)。
  • 制約 (constraint) パラメータはオプション項目であり、データの整合性を保つためのルールを指定します(例:primary key, not null など)。

3. MySQL CREATE TABLE の具体例

以下の例では、5つのカラムを持つ「Persons」という名前のテーブルを作成します。

-- Persons テーブルを作成する SQL
CREATE TABLE Persons (
  PersonID int PRIMARY KEY,
  LastName varchar(255) NOT NULL,
  FirstName varchar(255),
  Address varchar(255),
  City varchar(255)
);

4. 事例の解説

  • PersonID - 整数型(int)のカラムです。これは各行を一意に識別するための PRIMARY KEY(主キー) フィールドとして設定されています。
  • LastName - 最大長 255 文字の可変長文字列(varchar(255))のカラムです。NOT NULL を指定しているため、このカラムを空(未入力)にすることはできません。
  • FirstName, Address, City - これらも最大長 255 文字の可変長文字列(varchar(255))です。これらのカラムはデフォルトで NULL 値を許可します。

作成された直後の空の「Persons」テーブルの構造は以下のようになります。

PersonIDLastNameFirstNameAddressCity

       ヒント: この空の「Persons」テーブルには、MySQL の INSERT INTO 文を使用してデータを投入することができます。

5. 既存のテーブルから新しいテーブルを作成する

CREATE TABLE 文を使用して、既存のテーブルから一部またはすべてのデータをコピーして新しいテーブルを作成することも可能です。
この方法で作成された新しいテーブルには、既存のテーブルから抽出された値があらかじめ格納されます。

5.1 既存テーブルコピーの構文

CREATE TABLE 新テーブル名 AS
SELECT カラム1, カラム2,...
FROM 既存テーブル名
WHERE 条件;

5.2 具体的なコピー作成の例

以下の SQL は、「Customers」テーブルのコピーである「GermanCustomers」という新しいテーブルを作成します。

-- ドイツの顧客データのみを持つ新しいテーブルを作成します
CREATE TABLE GermanCustomers AS
SELECT * FROM Customers
WHERE Country = 'Germany';