IT企業未経験30代 100日後に自社のシステムを作れるようにする。⑦

今回は、前回で作成したテーブルからSELECT文 WHERE句を使用した例を作成したいと思います。

SELECT文について
一度MySQLを起動してからデータベースの選択(前回のブログを参考して頂けるとわかります。)
SELECT * FROM employee_attendances;
確認で使用していたSELECT文ですがアスタリスク(*)を使用することによりすべての列を出力することになります。

id、name、check_in_datetimeを出力したい場合
SELECT id, name, check_in_datetime
FROM employee_attendances;

ASを使用することによって別名に変更することも可能です。
SELECT
id,
name AS "従業員名",
check_in_datetime AS "開始日時"
FROM employee_attendances;

WHERE句について
WHERE句は、SELECT文の中から条件を指定して取り出していきます。
検索したい対象を増やします。
INSERT INTO employee_attendances(name,check_in_datetime,check_in_message) VALUES
('Tanaka Tarou', '2024-9-5 07:50', 'NULL');
INSERT INTO employee_attendances(name,check_in_datetime,check_in_message) VALUES
('Yamada Hanako', '2024-9-5 07:40', 'NULL');
INSERT INTO employee_attendances(name,check_in_datetime,check_in_message) VALUES
('Suzuki kenta', '2024-9-5 07:30', 'NULL');
employee_attendancesテーブルからTanaka Tarouのcheck_in_datetimeを指定したい場合
SELECT name,check_in_datetime
FROM employee_attendances
WHERE name = 'Tanaka Tarou';

WHERE ...LIKEについて
LIKE句はあいまい検索で使用します。
WHERE句で条件を指定するときに○○を含んだ文字列があるかどうかを探せます。
ワイルドカード文字と呼ばれる記号で覚えておきましょう。
- % 0文字以上の任意の文字列
- _ 任意の1文字
nameからTarが含まれている条件で検索するとき
SELECT * FROM employee_attendances WHERE name LIKE '%Tar%';

nameからSで前方一致で検索したい場合
SELECT * FROM employee_attendances WHERE name LIKE 'S%';

nameからoで後方一致で検索したい場合
SELECT * FROM employee_attendances WHERE name LIKE '%o';

WHERE ...INについて
IN句は、複数の検索をする場合に使用します。
完全一致の検索となるので注意が必要になります。
Tanaka Tarouだけを検索したいとき
SELECT * FROM employee_attendances WHERE id IN(1,4);

注意点まとめ・余談
- 検索する前にどのテーブルを対象にするか確認
- 検索条件でどのように検索したいのか考察
今回は、初めに書いたデータベースの選択ですが、初っ端からエラー出た瞬間ドキッとしましたが、エラーの文章を落ち着いて見たら問題は無かったです。
これも小さなことですがヒューマンエラーひとつ無くなりました!

次回は、GROUP BY句 HAVING句についてまとめていきます。

また次回よろしくお願いします。
~2024年9月6日~