PostgreSQLを使いたいけど、難しそう。。。
どうやってテーブルを作成すればいいかわからない。
今回は、こういった悩みを解決していきます。
PostgreSQLに限らずデータベースを操作する場合、『A5:SQL MK-2』というWindows向けのツールを日頃の業務から使用しています。
使い方がわかりやすく、直感的に操作ができる見た目のフリーソフトウェアです。
テーブル作成からカラム追加や型変更、ストアドプロシージャの設定等もこのツールからSQLを発行して行っています。
『PostgreSQL』『A5:SQL MK-2』のインストールから接続までは以下の記事でまとめています。
本記事では下記の内容についてまとめています。
- テーブル操作(作成, 削除 )
- データ操作(挿入, 抽出, 更新, 削除)
テーブル操作
データベースを扱う上で基本となるテーブルの操作方法(作成, 削除 )になります。
テーブルの作成(CREATE TABLE)
基本構文は以下になります。
CREATE TABLE テーブル名 (カラム名 データ型 制約 [, カラム名 データ型 制約 …] )
サンプルとして以下のCREATE TABLEコマンドを発行して、テーブルを作成してみます。
create table public.todo (
id serial not null
, title character varying(10)
, detail character varying(10)
, due character varying(10)
, primary key (id)
)
「id」には必ずデータを格納しなければならないことを示すNOT NULL制約を持たせます。
制約として、「id」にはPRIMARY KEY(主キー)制約を持たせます。PRIMARY KEY制約は、列内で重複する値の格納を許可せず、かつ、必ずデータを格納しなければならないという制約です。
A5:SQL MK-2で『SQLを実行』をクリックします。
『スキーマの再読み込み』をクリックしてデータベースツリーに実行内容を反映させます。
左側のデータベースツリーにtodoテーブルが作成されますので、クリックしてデータを確認することができます。
todoテーブルが作成されたことが確認できました。
テーブルの削除(DROP TABLE)
本構文は以下になります。
DROP TABLE テーブル名
サンプルとして以下のDROP TABLEコマンドを発行して、todoテーブルを削除してみます。
DROP TABLE todo
A5:SQL MK-2で『SQLを実行』をクリックします。
スキーマの再読み込みするとテーブルが一つもなく削除されていることがわかります。
データ操作
データベースを扱う上で基本となるデータの操作方法(挿入, 抽出, 更新, 削除)になります。
データを挿入(INSERT)
基本構文は以下になります。
INSERT INTO テーブル名 (カラム名1, カラム名2, ...) VALUES (値1, 値2, ...)
サンプルとして以下のINSERTコマンドを発行して、レコードを作成してみます。
INSERT INTO public.todo (id, title, detail, due) VALUES (1, 'テスト', 'レコードの挿入テスト', '2023年8月')
A5:SQL MK-2で『SQLを実行』をクリックします。
todoテーブルのデータを確認します。
1件のレコードが挿入されたことが確認できました。
また、テーブルに含まれる全てのカラムに対して値を挿入する場合は、カラム名の指定を省略できます。
INSERT INTO public.todo VALUES (2, 'テスト', 'カラム名の省略', '2023年8月')
同じようにレコードの挿入が確認できました。
データを抽出(SELECT)
基本構文は以下になります。
SELECT カラム名1, カラム名1, ... FROM テーブル名
サンプルとして以下のSELECTコマンドを発行して、レコードを抽出してみます。
SELECT id, title, detail, due FROM todo
A5:SQL MK-2で『SQLを実行』をクリックします。
全件のデータを抽出することができました。
また、全てのカラムの値を取得する場合は、カラム名の指定をアスタリスク(*)にすることができます。
SELECT * FROM todo
A5:SQL MK-2で『SQLを実行』をクリックします。
こちらを実行しても得られる結果は同じです。
特定のレコードのデータのみを抽出したい場合は、WHERE句を用います。
SELECT カラム名1, カラム名1, ... FROM テーブル名 WHERE カラム名 = 値
サンプルとして以下のSELECTコマンドを発行して、レコードを抽出してみます。
SELECT id, title, detail, due FROM todo WHERE id=2
WHERE句を用いて、idが2のレコードを検索します。
A5:SQL MK-2で『SQLを実行』をクリックします。
idが2のレコードのみを抽出することができました。
データを更新(UPDATE)
本構文は以下になります。
UPDATE テーブル名 SET (カラム名1, カラム名2, ...) = (値1, 値1, ...) WHERE 条件式
サンプルとして以下のupdateコマンドを発行して、idが2のレコードのデータを更新してみます。
UPDATE todo SET (title, detail) = ('更新テスト', 'レコードの更新') WHERE id=2
A5:SQL MK-2で『SQLを実行』をクリックします。
todoテーブルのデータを確認します。
idが2のレコードのデータが更新されました。
データを削除(DELETE)
本構文は以下になります。
DELETE FROM テーブル名 WHERE 条件式
サンプルとして以下のDELETEコマンドを発行して、idが2のレコードのデータを削除してみます。
DELETE FROM todo WHERE id=2
A5:SQL MK-2で『SQLを実行』をクリックします。
todoテーブルのデータを確認します。
idが2のレコードのデータが削除されました。
また、全件削除したい場合は、WHERE句が不要です。
DELETE FROM todo
まとめ
A5:SQL MK-2を使ったPostgreSQLの基本的なテーブル操作、データ操作方法を紹介しました。
初学者にとってデータベースというと、とっつきにくく難しいイメージがありますが、意外と簡単だったのではないでしょうか?
その他にもカラムの型変更など、テーブルの定義を変更する方法についても以下の記事でまとめています。
また、PythonからPostgreSQLに接続する方法についてもまとめていますので、参考にしてみてください。