Pocket

こんばんは、未経験からITエンジニア転職を目指すいずみです。

前回の続きで、MySQLのDML(Database Management Language)について、アウトプットしたいと思います。

一週間で身につくMySQL|トップページ~データベースの初心者でも、気軽にSQLが学習できるサイトです。

データの挿入 -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文)に挑戦してみますね。

投稿者

waco@jp

30代未経験でエンジニア転職を目指しています。前職はメーカーで営業と製品開発を担当。22年3月からTechCampを受講し、5月に卒業。現在、就活とオリジナルアプリケーション制作の両輪で活動しています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です