Open4
SQLチートシート・Tips集🌟
未来日のイベントだけを取得する
- from が開始日時
- to が終了日時
-
CURRENT_DATE()
で現在日時を取得する
-- 未来日のイベントだけを取得する SQL
SELECT *
FROM events
WHERE `from` > CURRENT_DATE()
ORDER BY `from` ASC;
- JSで扱うときも同様に、バッククォートで囲む
// fromは予約語なのでバッククォートで囲む
const query = `
SELECT *
FROM events
WHERE ${`from`} > CURRENT_DATE()
ORDER BY ${`from`} ASC;
`;
重複行のまとめ方 GROUP BY, DISTINCT, EXISTS
【SQL】ON DELETE CASCADEについて
-
onDelete: "CASCADE"
は、データベースにおいて外部キー制約の一部として使用されるオプションで、親テーブルの行が削除された際に、関連する子テーブルの行も自動的に削除することを指定します。 - このオプションを使用することで、手動で子テーブルの行を削除する手間を省き、データベースの一貫性と整合性を簡単に維持することができます
具体的には、以下のように動作します:
- 親テーブルの行削除: 親テーブルの特定の行を削除する際、その行に関連付けられている子テーブルの行も自動的に削除されます。
- 子テーブルの連動削除: 子テーブルに外部キー制約を設定し、その外部キー制約に onDelete: "CASCADE" を適用すると、親テーブルの行削除時に子テーブルの関連行も削除されるようになります。
子テーブルに設定するオプションである
onDelete: "CASCADE" オプションは、親テーブルと子テーブルの関係を定義する際、子テーブルに設定するものです。
このオプションにより、親テーブルの行が削除された場合に、子テーブルの関連する行も自動的に削除されます。
設定方法のポイント:
- 子テーブルの外部キー制約: onDelete: "CASCADE" は子テーブルの外部キー制約の一部として設定します。
- 親テーブルの指定は不要: 親テーブル自体にこのオプションを設定するのではなく、親テーブルの行が削除されたときに子テーブルの行も削除するという動作を子テーブルの外部キーに指定します。
LIKE検索 (前方一致, 後方一致, 部分一致)
- 前方一致(hoge%)
- 後方一致(%hoge)
- 部分一致(%hoge%)
select timezone, name_ja
from events
where name_ja like "%ぴゅぴゅまる%";