DBMS
データの同時アクセスをするため、確立したルールのもとにDBを管理するソフトウェア
関係データベース
複数の表で構成される。表には行を特定するための主キーとなる列がある。
正規化
非正規形:紙での管理をイメージ
第一正規化:フラットな表にする(セルの結合をなくす、計算で求められる列をなくす)
第二正規化:主従関係にある列を分けて表を作る
第三正規化:主キー以外で主従関係にある列を別の表にする
PostgreSQL(ポスグレ)・・・RDBMSの1つ
- SQLでデータ操作ができる、 無償のOSS
- WindowsやLinuxなどのプラットフォームを選ばない
psql(ポスグレのCUIツール)
psqlのメタコマンド(・・・psqlに対するコマンド)
接続
C:\Users>psql -U [ユーザー名]
切断
postgres=# \q
表の構成情報を表示
postgres=# \d
NULLの文字列表現(nullと表示したい場合)
postgres=# \pset null ‘(null)’
SQL
自然言語で操作できる。キーワードや名前は大文字小文字を問わない。
DML(行の追加など)、DDL(テーブルの作成など)
列のデータ型の代表的なもの
数値:INTEGER、文字列:VARCHAR、日付:DATA、時刻:TIMESTAMP
表の照会
- 小数点以下切り捨て(数値・NUMERIC型から数値・整数INTEGER型へ変換)
CAST(sal *12 AS int) - 文字列連結(1つの列を取り出す)
SELECT ’担当者’ || emp_name || ‘の誕生日は’ || birthday || ‘です’ AS 誕生日 FROM employee; - 日付を文字列型に変換
to_char(birthday, ‘DAY, MONTH DD, YYYY’) - 数値を文字列型に変換(G3桁区切り、D小数点)
to_char(sal, ‘9G999G999D99’) - NULL値の変換(NULL値を0として計算できるようにする)
coalesce(comm, 0) - 条件式(性別を男、女と表示したいとき)
CASE
WHEN gender = 1 THEN ‘男’
ELSE ‘女’
END - 並べ替え
SELECT * FROM employee ORDER BY gender , sal== DESC== LIMIT 3 OFFSET 1;
コメント