このページについて
このページではMySQLでデータベース内にテーブルを作成する方法をまとめて紹介しています。ターミナル等から作成する場合と、phpMyAdminから作成する場合、そして作成時のオプション等の解説もしています。
CREATE TABLE文とエラー
まずはターミナル・コンソール等から作成するときに使う、CREATE TABLE文から紹介します。ターミナルを使ってMAMPのMySQLへ接続するにはこちらを参照してください。
最も基本的な構文は以下の通りです。
mysql>create table テーブル名(カラム1 データ型,カラム2 データ型);
接続したばかりでデータベースの選択等をしていない状態で実行すると1046(3D000)というエラーが出ます。これを解消するにはuseを使ってデータベースを選択してから、createでテーブルを作成という手順を行います。すでに作成してあるデータベース名を指定するだけでOKです。今回はtestという名前のデータベースを選択するとします。
mysql>use test;
この操作が正常に完了すると以下のようにデータベースの操作対象が変更された事が表示されます。
ここからはデータベースを選択した状態でコマンドを使用していきます。create構文のうちカラム1の情報は必須で、カラム2以降は省略可能です。
そしてそれぞれのカラムの名前の後には半角スペースを入力し、データ型を設定します。代表的なものだと数字を格納するINT型、文字列を格納するvarchar型などがあります。簡単な解説や一覧はデータ型一覧を確認してください。カラム1にIDという名前で数字を格納させたい場合は(ID int)のように入力します。
カラム2以降も続けて作成する場合は、,(カンマ)で区切って入力します。上の(ID int)がカラム1なのでその次にnameという文字列を保存したい場合は(ID int,name varchar(20))のように入力します。基本的に数字のintは文字数指定は必要ありませんが、それ以外は文字数指定が必要な事が多いです。なのでvarchar(20)のように最大文字数の指定は忘れずに行いましょう。
phpMyAdminで作成
ここからはphpMyAdminで作成する方法です。こちらはコマンド入力などをする必要がなく、簡単に作る事ができます。phpMyAdminにログイン後、データベースをクリックします。テーブルを何も作成していないデータベースの場合はテーブルを作成という画面が出てきますが、すでに何かしらのテーブルを作成している場合は「新規作成」をクリックします。
何もテーブルがない状態で解説していきます。この画面で名前とカラム数を設定して、実行を押せば次のステップへ進む事ができます。次のステップでは各カラムのデータ型の設定ができます。
- タイプ
- データ型の事を表しています。INTは整数、VARCHARは文字列という感じでそれぞれ格納できるものが異なります。
- 長さ/値
- 最大文字列などの情報を入力します。INTは設定しなくても問題ない事が多いですが、varcharなどの場合は最大文字数などを入力する必要があります。
- デフォルト値
- 何も値が入力されなかった場合に何をデフォルトの値として保存するかを定義します。「なし」はその名の通りで、何も値が設定されません。「NULL」は値が無い特殊な文字列です。なしは表示画面では何も表示されませんが、NULLはNULLと表示されます。しかしデータとしては何も入っていないものになります。「CURRENT_TIMESTAMP」はタイムスタンプを格納します。保存される日時はデータの挿入をおこなった時刻になります。
必ずセットしなければならないのがこの三箇所と、カラム名の4箇所になります。照合順序やパーティションなどは何も設定しなくても問題なく動きます。必要に応じて設定していきましょう。
キー設定
ここからはテーブル作成と同時にキー設定を行う方法の紹介になります。キー設定とは「テーブルに設定する目印」みたいなもので、ユニークキーとか主キーとかがあります。キー自体の説明に関してはこちらをご覧ください。
コマンドでキー付与
コマンドでキーを付与する場合、create tableのカラムのところで設定を行います。すでにテーブルを作成した後で行う場合は別の構文を使用するのでそちらの解説ページを参照してください。
まずは主キーとなるPRIMARYキーを付与する場合。この場合はカラム情報のところにprimary keyと入力するだけでOKです。
mysql>create table テーブル名(カラム1 データ型 primary key);
このように入力するだけとなります。ちなみに主キーはNULLが扱えないキーとなるため自動的にnot nullという設定になります。
次にnullが扱えるユニークキーを付与する場合です。これも上のprimaryと同じです。
mysql>create table テーブル名(カラム1 データ型 unique);
uniqueがユニークキーを付与するという意味になります。こちらはnullが許可されているため、デフォルト値がnullになっています。
テーブル作成後にキーを付与する場合はALTET TABLEでテーブル構造を変化させる必要があります。詳しくはALTER TABLEでテーブルの構造を変化させるを参照してください。
phpMyAdminで設定
phpMyAdminでテーブル作成と同時に付与する場合は、カラム設定の右側に方にあるインデックスというところをクリックして付与したいキーを選択します。PRIMARYがプライマリー、UNIQUEがユニーク、INDEXがインデックスとなります。基本的にはプライマリーとユニークで検索効率を良くするときにインデックスを使うって感じなのでその他のfulltextなどはこの段階では無視して良いです。
まとめ
MySQLはデータベースの中にあるテーブルにそれぞれの情報を保存します。とにかくテーブルが無いとデータベースとして機能しないので、作成の方法はどちらも扱えるようになると良いかもしれませんね。
- MySQLの用語集
- MySQLでよく使う・よく見る用語集です。知っておくと検索とかも便利になります。
- ローカル環境の整え方
- MAMPを使ってローカル環境を整える方法を紹介。
- MySQLデータベースに接続する方法
- MAMPのデータベースと、レンタルサーバーのデータベースに接続する方法
- MySQLの基本コマンド
- MySQLへ接続してまず使う基本コマンドの一覧です。
- データベースの作成
- ターミナル・phpMyAdminでのデータベースの作成方法をそれぞれ解説。
- テーブルの作成
- ターミナル・phpMyAdminのそれぞれでテーブルを作成する方法と、作成と同時にPRIMARYやUNIQUEの付与などの方法を紹介。
- キーの種類と機能
- カラムに設定出来るキーの種類と機能を解説。
- 正規化
- リレーショナルデータベースを使う上で必須となる正規化について。データの追加や更新などで手間を省く方法としても使えます。
- ALTER TABLE
- ALTER TABLE構文を使って作成済みのテーブルに対して操作を行う。PRIMARYの付与やカラムの移動・名前変更・追加・削除なども行えます。
- INSERT構文
- INSERT構文を使って指定テーブルにデータ(行)を挿入する方法の解説です。
- UPDATE構文
- UPDATE構文を使って指定テーブルのカラムを一括更新、もしくは指定レコードの指定カラムのみを更新する方法の解説です。
- SELECT構文
- SELECT構文を使って指定したテーブルからデータを取得する方法の解説です。
- JOIN
- JOINを使ってテーブル同士を結合する方法の解説です。