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」テーブルの構造は以下のようになります。
| PersonID | LastName | FirstName | Address | City |
|---|---|---|---|---|
ヒント: この空の「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';