SQL浅瀬でチャプチャプ
SaaSの会社で品質保証をしていてプライベートで個人開発をしているQAです最近SQLでCRUD操作を出来るようになったのでそれのメモメモ
環境
postgreSQL: version 15
日本語翻訳ドキュメント: https://www.postgresql.jp/document/15/html/
以下ドキュメントと記載
そもそもCRUDとは?
データに対する create, read, update, delete操作の頭文字を合わせた呼び方。
これらが出来るとひとまずデータの操作が出来るようになるので覚えて損なし。
今回の対象スコープはデータベースに対するCRUD操作だが、当然APIからの操作に対して、frontendのUIからの操作に対してなどにも説明として使われる
CRUDのC
データの作成をする。
ここではどのテーブルのどの列に値を追加するかを明言している
列の一部しか分からなくても、一行全体を作成しないといけない(ドキュメントパート2、6.1)
列名の省略もできるが、明記しておいた方が順番ミスで更新出来ない等のミスを防げる
INSERT INTO hotels (name, description, icon_url, category) VALUES ($1, $2, $3, $4) RETURNING id`
CRUDのR
デーを取得する
ここではhotelsテーブルの全てのレコードとその全ての列を取得するという意味(ドキュメントパート2、2.5)
特定のレコードを取得したい場合は、条件指定の文節を追加してあげる必要がある。
例 SELECT * FROM hotels WHERE id = '特定のId'
また、式を指定することもできるとのこと(ドキュメント)
例 SELECT city, (temp_hi+temp_lo)/2 AS temp_avg, date FROM weather;
(式は、アプリケーション側(ここではバックエンドサーバを指す)で操作すれば良いと思うから何であるのかはよく分からん。大きいデータベースとかだと何か恩恵があるのか?)
SELECT * FROM hotels
上記は*で省略しているが、細かく書くと下記
SELECT id, name, description, icon_url FROM hotels
CRUDのU
データを更新する
ここではhotelsテーブルに対して、id が$4に一致するレコードの情報を
$1,2,3の値で更新するという意味
UPDATE文は個別の行、テーブル内の全ての行、あるいは全ての行のサブセットを更新できる(ドキュメントパート2 6.2)
テーブルに主キーを設定している時に限り、主キーと一致する条件を選択することで確実に個別の行を指定できる。
UPDATE hotels SET name = $1, description = $2, icon_url = $3 WHERE id = $4
CRUDのD
データを削除する
ここではhotelsテーブルのidが$1で一致するレコードの情報を削除するという意味
データの削除の場合も行全体をテーブルから削除するしかない
主キーが設定されている時は、その行を正確に指定できる(ドキュメントパート2 6.3)
DELETE FROM hotels WHERE id = $1
テーブル内の全ての行を消しとばす時は以下の文
DELETE FROM products;
この記事が気に入ったらサポートをしてみませんか?