DDL(Data Definition Language)とは、データ定義言語と呼ばれ、データベース内の表、ビューやインデックスなどの各種オブジェクトの作成や変更をするためのSQL文です。DDLとされるコマンドは以下の4つです。
CREATE | 新しいデータベースオブジェクトの作成 |
DROP | 既存のデータベースオブジェクトの削除 |
ALTER | 既存のデータベースオブジェクトの変更 |
TRUNCATE | テーブル内のデータ全体の削除 |
全ての操作の実行中、他のトランザクションやコネクションは操作中のテーブルなどにはアクセスができなくなります。
データベースの作成
CREATE DATABASE文は新しいデータベースオブジェクトを作成します。構文は以下の通りです。主なオプションのみ記載します。参考:第3回
CREATE DATABASE データベース名 [CHARACTER SET = 文字コード名, COLLATION = COLLATION名]; ※ []は必須ではないオプションです
データベースの削除
DROP DATABASE文は既存のデータベース全体を削除します。データベース内のテーブルのデータ自動的に削除されます。構文は以下の通りです。
DROP DATABASE データベース名
指定可能なオプションはありません。また、DROP DATABASE文で削除されたデータベースやテーブルを自動的に復旧する方法はないので実行には注意が必要です。
データベースの変更
ALTER DATABASE文は既存のデータベースを変更します。ただし、変更できるのはデフォルトの文字コードとCOLLATION名だけです。また、変更以前から存在するテーブルや列などには影響しません。変更後に作成したテーブルには、特に指定が無ければここで設定した文字コードなどが使用されます。
ALTER DATABASE データベース名 [CHARACTER SET = 文字コード名, COLLATION = COLLATION名];
テーブルの作成<
テーブルを作成するCREATE TABLEの構文は以下の通りです。主なオプションのみ記載します。
CREATE TABLE テーブル名 (列の定義, [インデックス]) [テーブルオプション]
具体的な構文は、第3回で登録したサンプルデータベースを利用しながら解説します。strong>SHOW CREATE TABLE文を実行すると、既存のテーブルの定義が確認できます。インデックスの概要は第3回(リンク)で解説しています。
mysql> SHOW CREATE TABLE City\G *************************** 1. row *************************** Table: City Create Table: CREATE TABLE `City` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `Name` char(35) NOT NULL DEFAULT '', `CountryCode` char(3) NOT NULL DEFAULT '', `District` char(20) NOT NULL DEFAULT '', `Population` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`ID`) ) ENGINE=MyISAM AUTO_INCREMENT=4080 DEFAULT CHARSET=latin1 1 row in set (0.00 sec)