MySQLでデータベースとテーブルを作る

SQLDDL(Data Definition Language:データ定義)とDML(Data Manipuration Language:データ操作)は、前に勉強したことがあるのだけど、それはphpMyAdmin上からだったので、コマンドプロンプトから実行してみる。今回はDDLの中のCREATE、つまり作成の部分だけ。


まずは、コマンドプロンプトを起動し、rootでログイン。打ち間違いも含めてエラーをだしそうなので、-bオプションでビープ音は消しておく。その後、まずは今あるデータベースを確認。

show databases;

何もしていなければ、infomation_schema, mysql, testの3つのデータベースが存在すると思う。
続いて自分でデータベースを作る。とりあえずsampleというデータベースを作ってみる

create database sample;

Query OKとでていれば成功。show databases;でテーブルが増えていることを確認する。このときに、↑キーを押すと前にコマンドプロンプトを起動してから、使った命令がでてくるので、前に使ったものを選ぶと早い。
次は、sampleデータベースにテーブルをつくるので、使うデータベースを指定するコマンドを打つ。

use sample;

まずはどんなテーブルが存在するか確認する。

show tables;

Emptyと表示される。これはまだ何も存在しないということ。
それでは、テーブルを作ってみる。

create table aaa( // aaaというテーブルをつくる
id int(3), // idという整数型で3桁までのカラム
name varchar(10), // nameという可変長の最大10文字までの文字列型のカラム
primary key(id) // プライマリキーはidにする
);

コメントの部分はいらないけど、一応説明としてつけておいた。ここまで記録されるわけ。show tables;でテーブルが作成されたことを確認する。また↑キーを使って選びたいところ。
続いてテーブルの構造を確認する。

desc aaa;
describe aaa;
show columns from aaa;

3つのうちどれもでいい。意味は全部同じ。ただ3つ目の文が1番応用がきくのではないかと思う。
結果として、表が表示される。Fieldはフィールド名(カラム名)、Typeは型()内は文字数、NullはNullを値としていれてもよいかどうか、YESは入れてもいい、NOはダメ、KeyはPREはプライマルキーのこと、他に外部キーなどを表すものもある。Defalutは値が何も入力されなかったときに、入れる値。Extraはオートインクリメントなどが記入される。