3-2.MySQLにテーブルを作成する
データベースにおいて実際のデータを格納するオブジェクトがテーブルです。
MySQLやOracle,SQLサーバー、PostgreSQLなどのデータベースはリレーショナルデータベースと呼ばれています。
これはデータの持ち方が表形式であり、複数のテーブル同士が列項目で関係(リレーションシップ)をもつことから由来しています。
それではデータベースにテーブルを作成する方法を説明します。
1.テーブルの作成
テーブルを作成するには以下のSQLを実行します。
【構文】
CRERATE [TEMPORARY] TABLE [IF NOT EXISTS] [データベース.]テーブル名 (列名1 データ型1、列名2 データ型2・・・);
(TEMPORARYキーワードは別記事で説明します。)
[データベース.]は省略すると現在USE文を使用して接続しているデータベース内のテーブルとして作成されます。データ型については以下の記事で説明しています。
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>


