第3章 SQL構文

データベース操作

CREATE DATABASE構文

ここからは、データベースやテーブルの作成と削除関連のSQL構文から、SELECT、INSERT、UPDATE、DELETEといったデータ処理用のSQL構文までを詳しく紹介していきます。最初は、構文を完全におぼえるよりも、どの処理をするにはどの構文を使えばいいか、そしてどこのページを参照すればその構文が記載されているかをだいたい把握できていれば十分です。構文は慣れてくるうちに参照しないでも使えるようになってくると思います。

リレーショナル・データベースでは、データ形式をあらかじめ定義して、データを管理するための構造をデータベースと呼びます。データを登録する器がテーブル、そのテーブルを登録しておくのがデータベースです。データベースを作成するためのSQLは、CREATE DATABASEです。CREATE DATABASEを使うことにより、指定した名前のデータベースを作成することができます。

CREATE DATABASE構文

CREATE { DATABASE | SCHEMA } [IF NOT EXISTS] データベース名
    [作成定義 [作成定義] ...]

[作成定義]オプションでは、CHARACTER SETでデータベースのキャラクタセットを指定したり、COLLATEでデフォルトデータベースの照合を指定することができます。

    [DEFAULT] CHARACTER SET キャラクタセット名
    | [DEFAULT] COLLATE 照合名

CREATE DATABASE構文の使用例
# mydb データベースを作成
CREATE DATABASE mydb;
CREATE DATABASE構文のキーワード
パラメータ 説明
CREATE SCHEMA CREATE DATABASEと同じ意味です。
IF NOT EXISTS
-MySQL拡張
IF NOT EXISTSは、同じ名前のデータベースが存在した場合のみデータベースを作成します。IF NOT EXISTSを指定せず、同じ名前のデータベースが存在した場合はエラーとなります。
データベース名 作成するデータベースの名前を指定します。

MySQLでの実装

MySQLにおけるデータベースは、ディレクトリとして実装されています(テーブルはファイルとして作成されます)。データベースの作成後は、そのデータベース名と同じ名前のディレクトリがMySQLデータディレクトリ下に作成されます。

DROP DATABASE構文

DROP DATABASEは、指定したデータベースと、それに含まれる全てのデータを削除します。

DROP DATABASE構文

DROP { DATABASE | SCHEMA } [IF
EXISTS
] データベース名

DROP DATABASE構文の使用例
# mydb データベースを削除
DROP DATABASE mydb;
DROP DATABASE構文のキーワード
パラメータ 説明
DROP SCHEMA DROP DATABASEと同じ意味です。
IF EXISTS
-MySQL拡張
IF EXISTSは、同じ名前のデータベースが存在した場合のみデータベースを削除します。IF EXISTSを指定せず、同じ名前のデータベースが存在しない場合はエラーとなります。
データベース名 削除するデータベース名を指定します。

ALTER DATABASE構文

ALTER DATABASEは、データベースの構成を変更する事ができます。

ALTER DATABASE構文

ALTER { DATABASE | SCHEMA } [IF NOT EXISTS] データベース名
    [作成定義 [作成定義] ...]

[作成定義]オプションでは、CHARACTER SETでデータベースのキャラクタセットを指定したり、COLLATEでデフォルトデータベースの照合を指定することができます。

    [DEFAULT] CHARACTER SET キャラクタセット名
    | [DEFAULT] COLLATE 照合名

ALTER DATABASE構文の使用例
# mydb データベースを変更
ALTER DATABASE mydb CHARACTER SET 'utf8';
ALTER DATABASE構文のキーワード
パラメータ 説明
ALTER SCHEMA ALTER DATABASEと同じ意味です。
データベース名 更新対象のデータベースの名前を指定します。

USE構文 (MySQL拡張)

USEで選択したデータベースは、以降、クエリ内でデータベース名を省略することができます。データベースの選択は、セッションの最後まで、あるいは、他のUSE 構文が発行されるまで有効です。

USE構文

USE データベース名

USE構文の使用例
USE mydb;
USE構文のキーワード
パラメータ 説明
データベース名 選択するデータベースを指定します。

USEで特定のデータベースを選択していても、名前の修飾を使って他のデータベースのテーブルにアクセスすることができます。

SELECT * FROM mysql.db2;

関連記事