
こんばんは、未経験からITエンジニア転職を目指すいずみです。
前回の続きで、MySQLのDML(Database Management Language)について、アウトプットしたいと思います。
一週間で身につくMySQL|トップページ~データベースの初心者でも、気軽にSQLが学習できるサイトです。Contents
データの挿入 -INSERT-
テーブルにデータを追加するときは、INSERT文を用います。INSERT = 挿入という意味なので、覚えやすいですね。
構文は以下のとおりです。
#INSERTの書式
INSERT INTO データベース名.テーブル名(カラム名1,カラム名2,...) VALUES(値1, 値2, ...);
追加したいテーブルのカラム名と同じ数だけ、VALUESで値を記載することで、レコードが追加できるようです。
今回は、鎌倉殿のキャストを格納するテーブルを作成したので、INSERT文を使って、キャストを追加してみました。
# 鎌倉殿のキャストを格納するテーブル
CREATE TABLE casts(
id int PRIMARY KEY,
name varchar(128),
affiliation varchar(128)
);
INSERT INTO casts (id, name, affiliation) VALUES(1, '大泉 洋', 'Team NACS');
INSERT INTO casts (id, name, affiliation) VALUES(2, '小栗 旬', 'Tristone Entertainment Inc.');
INSERT INTO casts (id, name, affiliation) VALUES(3, '小池 栄子', 'イープロダクション');
実行してみると、ちゃんとレコードが追加されていました。

データの検索 -SELECT-
テーブルの情報を表示させたいときは、SELECT文を用います。データベースのどの情報を持ってくるかSELECT = 選択すると覚えるといいですね。
テーブルの全ての情報を表示させるときは、以下のように書きます。
# 鎌倉殿のキャストテーブルを全て表示させる
SELECT * FROM casts;
その結果、先ほど登録したレコードが表示されました。

任意のカラムの情報を出力したいときは、SELECT *の部分を取得したいカラム名に書き換えます。
キャストの名前と所属事務所だけ出力したい場合は、
SELECT name, affiliation FROM casts;

と書けば取得できます。
複雑な検索の準備
つづいて、ちょっと複雑な検索に挑戦してみます。
検索するには、castsテーブルのレコード数が少ないので、準備します。
テーブルのカラムを追加する – ALTER文-
キャストの年齢も管理できるように、テーブルにカラムを追加します。
そんなときは、ALTER文を用います。既存のテーブルの定義を変更 = ALTERすると覚えましょう。ALTERって単語に馴染みがなくて、覚えづらいです…
どうやらALTER文には、テーブルの定義を変更するためのオプション(サブフォーム)がいくつも有るみたいですが、今回はADDを紹介します。
カラムを追加するときは、以下記述をします。
# ageカラムを追加する
ALTER TABLE casts
ADD age int NULL;
まず、定義を変更したいテーブル名を指定し、ADDオプションを記述。そのあと、追加したいカラムの”名前”, “型”, “制約”の順番に書くことで、カラム追加ができます。
無事、ageカラムを追加できました。

登録済のレコードを更新する -UPDATE文-
ALTERでカラム追加ができましたが、先に登録していたレコードの年齢カラムがNULLとなっています。

ここに値を入れるため、前述のINSERT文で以下のように書いてみると、、、

“idが重複してるからダメ!!というERRORが出てしまいます。
これは、カラム定義のときにidカラムはPRIMARY(他と重なっちゃダメ)という制約を設けていたのです。
そこへ、レコードを追記するINSERT文を使って、登録済のid=2のレコードを作ろうとしちゃうがために、PRIMARY制約に引っ掛かったということです。
登録済のレコードに値を入れたい場合はUPDATE文を使います。レコードを更新 = UPDATEすると覚えましょう。
# 文法
UPDATE テーブル名
SET カラム名 = 値
WHERE 更新対象のレコード;
# すでに登録済のレコードにageを追記する
UPDATE casts
SET age = 49
WHERE id = 1;
idが1番の大泉洋に、年齢を入れるように記述することで、登録済レコードの値を更新できました。

まとめ
基本的な文法を使って、テーブルを操作してみました。
身近な題材でテーブルを作ってみると、理解が深まる気がします。
次回は、複雑な検索(WHERE文)に挑戦してみますね。