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

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

SELECT文について

IT企業未経験30代 100日後に自社のシステムを作れるようにする。⑥ | アイスマイル合同会社

今回は、MySQLで勤怠の表を作れるようにデータベースの作成をしていきたいと思います。データベース作成勤怠の例を作成したいので、データベースの作成をしていきます。CR…

一度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日~

コメントを残す

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