3-2.MySQLにテーブルを作成する

2019年7月15日

データベースにおいて実際のデータを格納するオブジェクトがテーブルです。
MySQLやOracle,SQLサーバー、PostgreSQLなどのデータベースはリレーショナルデータベースと呼ばれています。

これはデータの持ち方が表形式であり、複数のテーブル同士が列項目で関係(リレーションシップ)をもつことから由来しています。

それではデータベースにテーブルを作成する方法を説明します。

目次

1.テーブルの作成

テーブルを作成するには以下のSQLを実行します。

【構文】
CRERATE [TEMPORARY] TABLE [IF NOT EXISTS] [データベース.]テーブル名 (列名1 データ型1、列名2 データ型2・・・);

(TEMPORARYキーワードは別記事で説明します。)

[データベース.]は省略すると現在USE文を使用して接続しているデータベース内のテーブルとして作成されます。

データ型については以下の記事で説明しています。

3-4.MySQLのテーブルで使用できる列の型

CREATE文で指定したテーブル名が既にデータベース内に存在しているとSQLエラーになります。上書きされることはありません。

作成時にテーブルが既に存在しているか確認して存在しない場合にテーブルを作成したい場合は「IF NOT EXISTS」をつけます。

1)基本的なテーブルを作成する実行例

例として下記のテーブルを作成します。
データベースは「STUDYDB」を選択した状態とします。

【テーブル名】
SHOUHINMAST
【項目】
商品コード 文字型 5文字
商品名   文字型 20文字
商品単価  整数

上記のテーブルを作成するSQL
CREATE TABLE SHOUHINMAST (SHOUHINCODE CHAR(5),SHOUHINNAME VARCHAR(20),SHOUHINTANKA INT);

実行結果

mysql> CREATE TABLE SHOUHINMAST (SHOUHINCODE CHAR(5),SHOUHINNAME VARCHAR(20),SHOUHINTANKA INT);
Query OK, 0 rows affected (1.49 sec)

mysql>

 

2)既にテーブルがあるか確認しつつテーブルを作成する実行例

既にテーブルが定義された状態でCREATE TABLEを実行するとエラーとなります。

mysql> CREATE TABLE SHOUHINMAST (SHOUHINCODE CHAR(5),SHOUHINNAME VARCHAR(20),SHOUHINTANKA INT);
ERROR 1050 (42S01): Table 'shouhinmast' already exists
mysql>

 

「IF NOT EXISTS」を用いてCREATE TABLEを実行すると既にテーブルが定義されている場合は実行はされません。

SQL例
CREATE TABLE IF NOT EXISTS SHOUHINMAST (SHOUHINCODE CHAR(5),SHOUHINNAME VARCHAR(20),SHOUHINTANKA INT);

実行例

mysql> CREATE TABLE IF NOT EXISTS SHOUHINMAST (SHOUHINCODE CHAR(5),SHOUHINNAME VARCHAR(20),SHOUHINTANKA INT);
Query OK, 0 rows affected, 1 warning (0.05 sec)

mysql>