データベースの構成
RDBMS(Relational DataBase Management System)のシステム構成は、一般的にクライアント/サーバ型になっている。データベースに読み書きにするために、クライアントはサーバに対してSQL文を送信する。
項目 | 説明 |
---|---|
クライアント | データベースを利用するプログラム |
サーバ | データベースを読み書きするプログラム |
データベース | ハードディスクなどに保存されているデータ |
SQL文 | 「どんなデータが欲しいか」や「どこのデータを書き換えて欲しい」などのSQLで書いた文 |
テーブルの構成
RDBMSでは、2次元の表でデータを管理していて、この表のことをテーブルと呼び、下記のような単語が使われている。
RDBMSでは、レコード単位でデータを読み書きする。
SQLの概要
SQL(Structured Query Language)はデータベースを操作するために開発された言語で、最近はISOによって定められた標準規格に準拠した標準SQLのサポートが進んでいる。ただ、RDMBSごとに微妙な差異がある部分もあるため、一部は方言に則った書き方をする必要がある。
SQLの文は大きく3種類に分類される。
DDL(Data Definition Language):データベースやテーブルなどの作成や削除を行う。DDLに分類される命令は次の通り。
命令名 説明 CREATE
データベースやテーブルなどの作成 DROP
データベースやテーブルなどの削除 ALTER
データベースやテーブルなどの構成変更 DML(Data Manipulation Language):テーブルの行を検索、変更を行う。DMLに分類される命令は次の通り。
命令名 説明 SELECT
テーブルからレコードを検索 INSERT
テーブルに新規レコードを登録 UPDATE
テーブルのレコードを更新 DELETE
テーブルのレコードを削除 DCL(Data Control Language):データベースに対して行なった変更を確定したり取り消したり、ユーザの権限変更なども行う。DCLに分類される命令は次の通り。
命令名 説明 COMMIT
データベースに対して行なった変更の確定 ROLLBACK
データベースに対して行なった変更の取り消し GRANT
ユーザに操作権限を与える REVOKE
ユーザから操作権限を奪う
何はともあれ、テーブルを作ってみる。
docker exec -it postgres bash # postgreコンテナに入る psql -U postgres -d shop # postgreを起動してshopデータベースに接続する
下記コマンドを実行してテーブルを作る。
CREATE TABLE Shohin (shohin_id CHAR(4) NOT NULL, shohin_mei VARCHAR(100) NOT NULL, shohin_bunrui VARCHAR(32) NOT NULL, hanbai_tanka INTEGER , shiire_tanka INTEGER , torokubi DATE , PRIMARY KEY (shohin_id));
作ったテーブルの構成を確認する。
\d shohin; Table "public.shohin" Column | Type | Collation | Nullable | Default ---------------+------------------------+-----------+----------+--------- shohin_id | character(4) | | not null | shohin_mei | character varying(100) | | not null | shohin_bunrui | character varying(32) | | not null | hanbai_tanka | integer | | | shiire_tanka | integer | | | torokubi | date | | | Indexes: "shohin_pkey" PRIMARY KEY, btree (shohin_id)
テーブルにレコードを登録する。
BEGIN TRANSACTION; INSERT INTO shohin VALUES ('0001', 'Tシャツ','衣服',1000,500,'2009-09-20'); COMMIT;
テーブルデータを確認する。
select * from shohin; shohin_id | shohin_mei | shohin_bunrui | hanbai_tanka | shiire_tanka | torokubi -----------+------------+---------------+--------------+--------------+------------ 0001 | Tシャツ | 衣服 | 1000 | 500 | 2009-09-20 (1 row)