支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡


SQLとは

「Structured Query Language」の略です。直訳すると「構造化問い合わせ言語」と訳されます。コンピュータ言語のひとつですが、プログラミング言語とは異なります。リレーショナルデータベース(RDB)のデータを操作するために使用する言語です。データベースへ指示を出す言語を「SQL文」と呼び、SQL文を組み合わせて処理を実施します。SQL文は、規格化(ANSI、ISO)されているため、「Oracle Database」「Microsoft SQL Server」「MySQL」など、他のデータベースでもほとんど同じように利用可能です。SQLは、リレーショナルデータベース(RDB)のデータを操作のために使用され、列(カラム)と行(レコード)を指定したデータの取得・登録・更新・削除、詳細な条件を指定して検索、データを格納するテーブルの作成・削除・変更など様々な操作が可能です。

MySQLとは

MySQLとは、「マイ エスキューエル」と読み、オープンソースのリレーショナルデータベース管理システム(RDBMS)です。大本はMichael “Monty” Widenius氏という個人が作成したものでしたが、買収などを経て、現在はORACLEがMySQLのライセンスを所有しています。MySQLは、GNU General Public Licenseの条件に基づいたフリーかつオープンソースのソフトウェアですが、商用利用ではライセンスの購入が必要となります。

MySQL テーブルの作成

「テーブル」とは、データベースに格納された列(カラム)と行(レコード)で構成された表のことを指します。MySQLでは、テーブルの作成には「CREATE TABLE」を使用します。コマンドを実行して「Query OK」と表示されればテーブル作成は成功です。テーブル作成時に、テーブルを作成したいデータベースに接続している場合にはデータベース名を省略してテーブル作成ができます。

新規テーブルの作成


CREATE TABLE [データベース名] . [テーブル名] (
[カラム名1]  [データ型] [オプション] , 
[カラム名2]  [データ型] [オプション] , 
[カラム名3]  [データ型] [オプション] , 
...
[全体オプション]
);

例:INT型(数値型)の「ID」、上限100文字のVARCHAR型(文字列)の「name」、2つのカラムを持つ「sample」という名前のテーブルを作成する。
CREATE TABLE sample (id INT, name VARCHAR(100));

MySQL IF NOT EXISTS オプション

「CREATE TABLE」に「IF NOT EXISTS」を追加することで、テーブル作成時に、既に同じ名前のテーブルが存在した際のエラー表示がなくなります。


例:
CREATE TABLE IF NOT EXISTS [データベース名] . [テーブル名] (
[カラム名1]  [データ型] [オプション] , 
[カラム名2]  [データ型] [オプション] );

MySQL NOT NULL オプション

「NOT NULL」と追加することでNULLを禁止することができます。キー(主キー/プライマリキー)を設定する場合には「PRIMARY KEY」を追加します。


例:
CREATE TABLE[データベース名] . [テーブル名] (
[カラム名1]  [データ型] NOT NULL , 
[カラム名2]  [データ型] NOT NULL PRIMARY KEY);

MySQL TEMPORARY オプション

「TEMPORARY(TEMP)」は一時テーブルを作成するオプションです。現在のセッションにのみ表示され、そのセッションが閉じられると自動的に削除されます

MySQL UNLOGGED オプション

「UNLOGGED」を指定することで、作成されたテーブルはログを取らないテーブルとして作成されます。通常のテーブルよりも高速であるというメリットはありますが、障害時には安全ではありません。

テーブル作成に関連するMySQLコマンド


//テーブルの削除
DROP TABLE [データベース名].[テーブル名];

//データベースの作成。
CREATE DATABASE [データベース名];

//データベース内のテーブル一覧の表示
//※データベースに接続中の場合は「FROM [データベース名]」を省略できます。
SHOW TABLES FROM [データベース名];

//サーバー内のデータベース一覧を表示
SHOW DATABASES;

//データベースへのアクセスします。セミコロンは必要ありません。
//セミコロンをひかしても問題はありません。
USE [データベース名]

//カラムの一覧を表示します。
//※データベースに接続中の場合は「FROM [データベース名]」を省略できます。
SHOW COLUMNS FROM [テーブル名] FROM [データベース名] LIKE '[抽出条件]';

//テーブル名を変更する
ALTER TABLE [変更前テーブル名] RENAME TO [変更後テーブル名];

//主キーを追加する
ALTER TABLE [テーブル名] ADD PRIMARY KEY ([カラム名]);

//主キーを削除する
ALTER TABLE [テーブル名] ADD PRIMARY KEY;

//インデックスを追加する
ALTER TABLE [テーブル名] ADD INDEX [インデックス名]([カラム名]);

//インデックスを削除する
ALTER TABLE [テーブル名] DROP INDEX [インデックス名];

//カラム・データ型を変更する
ALTER TABLE [テーブル名] CHANGE [変更前カラム名] [変更後カラム名] [変更後データ型];

//データ型のみ変更する
ALTER TABLE [テーブル名] MODIFY [カラム名] [変更後データ型];

//カラムの追加
ALTER TABLE [テーブル名] ADD [カラム名] [データ型] [オプション];

//カラムの削除
ALTER TABLE [テーブル名] DROP [カラム名];