データベース

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;

コメント

タイトルとURLをコピーしました