#PostgreSQLとは
フリーなオープンソースのリレーショナルデータベース管理システム
簡単にいうとこれに尽きるかと思います。
じゃあ、他のRDBMS(Relational DataBase Management System )との違いは何?と思ってらっしゃる方も多いのでしょうが、またその記事は後日書き記したいと思います。
ひとまず今回は、
「データベースを管理するシステムのことかー」
と思ってくださればOKです。
#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操作とは別ですが、一応記しておきます。 |
基本構文はこちら
CREATE TABLE テーブル名 (列名 データ型 制約 [, 列名 データ型 制約 …] );
例はこちら
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です。テーブルに対して、値の追加をすることができます。
基本構文はこちら
INSERT INTO テーブル名 (列名,列名...) VALUES (値,値...)
例はこちら
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です。指定した値など様々なデータベースの情報を取得することができます。
基本構文はこちら
SELECT 列名 FROM テーブル名
例はこちら
SELECT * FROM students
```
まず、取得したい列名に`*`を入れているので、全ての列を取得します。どこから列名を取得するのかというと、`FROM` の後に指定した `students`テーブルからです。
この結果はこちら。
| id | name | age |
|:-----|--------:|:------:|
| 0001 | 川端奈緒 | 11 |
全て取得しているので全て表示されます。
では、こちらはどうでしょう。
``````sql:指定したデータの取得
SELECT id FROM students
```
取得する列名のみ`id`に変更しました。
その結果はこちら
| id |
|:-----|
| 0001 |
`id`を指定したので、`id`のみを取得することができました。
---
###Update(更新)
次はUPDATEです。既存の列に入っている値を更新することができます。
基本構文はこちら:point_down:
**UPDATE テーブル名 SET 列名 = 値**
例はこちら:point_down:
```sql:更新
UPDATE students SET name = '多田典子'
```
`UPDATE`の後に更新対象のテーブル名 = `students` を指定します。その後の`SET`で 更新する`列名 = name`と更新する`値 = '多田典子'`を入れます。
この結果はこちら。
| id | name | age |
|:-----|--------:|:------:|
| 0001 | 多田典子 | 11 |
`name`の列が多田典子に更新されています。
ただし、この場合は`name`の列が全て多田典子になってしまうので、1つの行を特定して更新したい場合は
**UPDATE テーブル名 SET 列名 = 値 WHERE 削除する行を特定する条件**
という風に`WHERE`を追加します。
例はこちら:point_down:
```sql:指定したデータの更新
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:
```sql:指定したデータの削除
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の基礎中の基礎なので、今後はさらに詳しい記事を作成していきたいと思います。