【MySQL】テーブルを作成・変更・削除するSQL


ここではMySQLで、テーブルを作成・変更・削除するSQLを紹介しています。

テーブルを作成するSQL

テーブルの作成はCREATE TABLE文を使います。

テーブルの名前は大文字と小文字を区別します。

CREATE TABLE文の基本構文

CREATE TABLE文の基本構文は次の通りです。

CREATE TABLE [IF NOT EXISTS] テーブル名(
    列名 データの型
    [,列名 データの型]
)
;

CREATE TABLE文を使ったSQLサンプル

CREATE TABLE文のサンプルです。

次のSQLでは、TAB1というCOL1~3のカラムを持ったテーブルをTBS1という表領域に作成しました。

CREATE TABLE tab1(
    col1 int
    ,col2 varchar(10)
    ,col3 date
);

テーブルを変更するSQL

ALTER文を使うことで、テーブルを変更することが出来ます。

テーブル名の変更

テーブル名を変更するにはALTER TABLE~RENAME文を使います。

ALTER TABLE~RENAME文の基本的な使い方は次の通りです。

ALTER TABLE テーブル名 RENAME 新テーブル名;

実行すると次のようになります。

mysql> ALTER TABLE tab1 RENAME tab7;
Query OK, 0 rows affected (0.05 sec)

テーブル名を変更するにはRENAME TABLE文を使うこともできます。

RENAME TABLE文の基本的な使い方は次の通りです。

RENAME TABLE テーブル名1 TO 新テーブル名1
             [,テーブル名2 TO 新テーブル名2・・・];

実行すると次のようになります。

mysql> RENAME TABLE tab1 TO new_tab1,tab2 TO new_tab2;
Query OK, 0 rows affected (0.06 sec)

列の追加

ALTER TABLE テーブル名
ADD COLUMN 列名 データ型 列の制約;

次のSQLでは、TAB1テーブルにCOL4列を文字列型、NOTNULL制約付きで追加しています。

ALTER TABLE tab1
ADD COLUMN col4 varchar(10) NOT NULL;

テーブルを削除するSQL

DROP文を使うことでテーブルを削除することが出来ます。

DROP TABLE [IF EXISTS] テーブル名1[,テーブル名2・・・];

次のようにテーブル名を指定することでテーブルを削除します。

DROP TABLE tab1;

存在しないテーブルを削除してもエラーを返さない

IF EXISTSを指定すると、存在しないテーブルを削除しようとしてもエラーを返さず正常終了となります。

DROP TABLE IF EXISTS tab1;

複数のテーブルを一括削除するSQL

次のように、テーブル名を列挙することで複数のテーブルを一括で削除することが出来ます。

DROP TABLE tab1,tab2;