LoginSignup
5
6

More than 5 years have passed since last update.

【PostgreSQL】 基本的なCRUD操作

Last updated at Posted at 2019-03-04

PostgreSQLとは

フリーなオープンソースのリレーショナルデータベース管理システム

簡単にいうとこれに尽きるかと思います。
じゃあ、他のRDBMS(Relational DataBase Management System )との違いは何?と思ってらっしゃる方も多いのでしょうが、またその記事は後日書き記したいと思います。

ひとまず今回は、
「データベースを管理するシステムのことかー」
と思ってくださればOKです。:ok_hand:

CRUDとは

CRUD = Create(生成)、Read(読み取り)、Update(更新)、Delete(削除)
の操作をまとめてCRUDと呼んでいます。

webアプリケーションでいうと
Create(登録機能)、Read(参照機能)、Update(変更機能)、Delete(削除機能)
となります。

【PostgreSQL】基本的なCRUDとは

これで、タイトルの「【PostgreSQL】基本的なCRUD操作」の意味がわかったのではないでしょうか。

「データーベースに対する、基本的な登録、参照、変更、削除 の操作」
です。

基本的なCRUD操作

それでは、基本的なCRUD操作についてご紹介していきたいと思います。
CRUD操作に使用するテーブルはこちらです。
テーブル名はstudentsでid, name, age の列名があります。

id name age

これはCREATE TABLEをして作成しました。今回のCRUD操作とは別ですが、一応記しておきます。

基本構文はこちら:point_down:
CREATE TABLE テーブル名 (列名 データ型 制約 [, 列名 データ型 制約 …] );

例はこちら:point_down:

テーブルの作成
CREATE TABLE students(id CHAR(4) NOT NULL, name TEXT NOT NULL, age INTEGER, PRIMARY KEY (id));

まず、CREATE TABLEでテーブル名 = students を指定します。その後、列名 = idと、そのデータ型 = CHAR(4) と制約 = NOT NULLを指定しています。最後に主キーの指定をしています。


Create(生成)

まずは、INSERTです。テーブルに対して、値の追加をすることができます。

基本構文はこちら:point_down:
INSERT INTO テーブル名 (列名,列名...) VALUES (値,値...)

例はこちら:point_down:

値の追加
INSERT INTO students (id, name, age) VALUES ('0001', '川端奈緒', 11);

まず、INSERT INTO でテーブル名 = students を指定します。その後、 列名 = id, name, ageを指定しています。 VALUESでは列に入れる値を指定しています。今回の場合は id ='0001', name = '川端奈緒', age = 11 という値を入れています。

この結果

id name age

上記のテーブルが、下記のようになります。

id name age
0001 川端奈緒 11

でも、毎回これをするのはめんどくさいですよね。

値の追加
INSERT INTO students (id, name, age) VALUES ('0001', '川端奈緒', 11);

そういう時は

値の追加
INSERT INTO students (id, name, age) VALUES ('0001', '川端奈緒', 11), ('0002', '安田梨沙', 21);

みたいな感じでVALUES,で繋げると、連続で値を入れてくれます。


Read(読み取り)

続いてSELECTです。指定した値など様々なデータベースの情報を取得することができます。

基本構文はこちら:point_down:
SELECT 列名 FROM テーブル名

例はこちら:point_down:

データの取得
SELECT * FROM students

まず、取得したい列名に*を入れているので、全ての列を取得します。どこから列名を取得するのかというと、FROM の後に指定した studentsテーブルからです。

この結果はこちら。

id name age
0001 川端奈緒 11

全て取得しているので全て表示されます。

では、こちらはどうでしょう。

指定したデータの取得
SELECT id FROM students

取得する列名のみidに変更しました。

その結果はこちら

id
0001

idを指定したので、idのみを取得することができました。


Update(更新)

次はUPDATEです。既存の列に入っている値を更新することができます。

基本構文はこちら:point_down:
UPDATE テーブル名 SET 列名 = 値

例はこちら:point_down:

更新
UPDATE students SET name = '多田典子'

UPDATEの後に更新対象のテーブル名 = students を指定します。その後のSETで 更新する列名 = nameと更新する値 = '多田典子'を入れます。

この結果はこちら。

id name age
0001 多田典子 11

nameの列が多田典子に更新されています。
ただし、この場合はnameの列が全て多田典子になってしまうので、1つの行を特定して更新したい場合は

UPDATE テーブル名 SET 列名 = 値 WHERE 削除する行を特定する条件

という風にWHEREを追加します。

例はこちら:point_down:

指定したデータの更新
UPDATE students SET name = '多田典子' WHERE id = '0001'

例えばこのようなテーブルがあったとします。

id name age
0001 川端奈緒 11
0002 山田智 12

これに対して先ほどののSQLを流せば、

id name age
0001 多田典子 11
0002 山田智 12

という風にWHERE以降で指定した条件の id = '0001'に合致する行のみが更新対象となっています。


Delete(削除)

最後はDELETEです。値の削除をすることができます。

基本構文はこちら:point_down:
DELETE FROM テーブル名 WHERE 削除する行を特定する条件

例はこちら:point_down:

指定したデータの削除
DELETE FROM students WHERE id = '0001'

DELETE FROMの後にテーブル名 = studentsを指定します。その後、WHEREで 削除したい行を特定するために id = '0001'を指定しました。

id name age

指定したidの列が削除されています。WHEREを使用しなかった場合はテーブルすべての行が削除されてしまうので注意してください。


まとめ

今回は、CRUD操作の基礎を書きました。

CRUD 基本構文
INSERT INSERT INTO テーブル名 (列名,列名...) VALUES (値,値...)
SELECT  SELECT 列名 FROM テーブル名
UPDATE テーブル名 SET 列名 = 値
DELETE DELETE FROM テーブル名 WHERE 削除する行を特定する条件

これはPostgreSQLの基礎中の基礎なので、今後はさらに詳しい記事を作成していきたいと思います。

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6