PostgreSQL
表を作る CREATE TABLE
code:psql
CREATE TABLE "価格表" ("品名" TEXT, "値段" INTEGER);
表を見る SELECT
code:psql
SELECT * FROM 価格表;
table: 価格表
品名 値段
ノート 100
表にデータを挿入する INSERT INTO
code:psql
INSERT INTO 価格表 VALUES ('ノート', 100);
table: 価格表
品名 値段
ノート 100
えんぴつ 18
パン 98
ジュース 88
CDプレーヤ 7800
ノートパソコン 98000
一部の名前を置き換える AS
code:psql
SELECT 品名 AS 商品テーブル, 値段 AS 価格 FROM 価格表;
table: 価格表
商品テーブル 価格
ノート 100
えんぴつ 18
パン 98
ジュース 88
CDプレーヤ 7800
ノートパソコン 98000
四則演算
code:psql
SELECT SUM(値段) FROM 価格表;
SELECT AVG(値段) FROM 価格表;
SELECT MAX(値段), MIN(値段) FROM 価格表;
table: 価格表
sum
106104
table: 価格表
avg
17684.000000000000
table: 価格表
max min
98000 18
応用例
code:psql
SELECT *, 値段 * 0.9 AS 学割 FROM 価格表;
SELECT *, CAST(値段 AS FLOAT) * 0.9 AS 学割 FROM 価格表;
table: 価格表
品名 値段 学割
ノート 100 90.0
えんぴつ 18 16.2
パン 98 88.2
ジュース 88 79.2
CDプレーヤ 7800 7020.0
ノートパソコン 98000 88200.0
table: 価格表
品名 値段 学割
ノート 100 90
えんぴつ 18 16.2
パン 98 88.2
ジュース 88 79.2
CDプレーヤ 7800 7020
ノートパソコン 98000 88200
表の結合
table: 部門表
ノート 地下
えんぴつ 下
パン 1階
ジュース 1階
CDプレーヤ 地下
ノートパソコン 地下
弁当 2階
定食 2階
履歴書 地下
雑誌 地下
code:psql
SELECT * FROM 価格表 NATURAL JOIN 部門表;
table: 価格表+部門表
品名 値段 場所
CDプレーヤ 7800 地下
えんぴつ 18 地下
ジュース 88 1階
ノート 100 地下
ノートパソコン 98000 地下
パン 98 1階
code:psql
SELECT 価格表.品名, 部門表.場所, 価格表.値段
FROM 価格表, 部門表
WHERE 価格表.品名 = 部門表.品名;
table: 価格表+部門表
品名 場所 値段
CDプレーヤ 地下 7800
えんぴつ 地下 18
ジュース 1階 88
ノート 地下 100
ノートパソコン 地下 98000
パン 1階 98
表の一部を更新する
code:psql
UPDATE 価格表 SET 値段 = 値段 - 10000 WHERE 品名 = 'ノートパソコン';
table: 価格表
ノートパソコン 88000
表の一部データ削除
code:psql
DELETE FROM 価格表 WHERE 品名 = 'CDプレーヤ';
表を削除
code:pqsl
DROP TABLE 価格表;
PostgreSQLとしてのコマンド
管理者でログイン
code:psql
psql -U postgres
ログを残してログイン -L
code:psql
psql -U <ユーザー名> -L <ファイル名>.log <データベース名>
ファイルへのコピー
データの中身だけがファイルに書き込まれる(タブで区切る形式)
code:psql
\copy 価格表 to table.txt
ファイルからの読み取り
ファイルの中身がそのまま追加される(重複する)
code:psql
\copy 価格表 from table.txt
カンマ区切りのファイルから読み取り
code:psql
\copy 価格表 from table.txt using delimiters ','
終了
code:psql
\q