戻る

PostgreSQL

目次


クエリ一覧

クエリー一覧

記述説明
-- コメント一行コメントアウト
/* コメント */範囲コメントアウト
\lデータベースの一覧を表示
\c データベース名データベースを切り替える
\dテーブルの一覧を表示
\qpsqlを終了する
table.column指定のテーブルの列を指定する方法
クエリ系
DDL(Data Definition Language)
CREATEデータベースやテーブルなどを作成する
CREATE DATABASE データベース名;データベースの作成
CREATE TABLE テーブル名( 列名1 データ型1 制約1,
列名2 データ型2 制約2,
...
テーブルの制約1, テーブルの制約);
テーブルの作成
CREATE VIEW [viewname] (viewcolumnname1,viewcolumnname2,...) AS SELECT...;SELECT文で表示されるビューを作成する
DROPデータベースやテーブルなどを削除する
DROP TABLE テーブル名;テーブルを削除する
DROP VIEW ビュー名;ビューを削除する
ALTERデータベースやテーブルなどの構成を変更する
ALTER TABLE テーブル名 ADD COLUMN カラム名 型名;テーブルにカラムを追加する。
ALTER TABLE テーブル名 DROP COLUMN カラム名 型名;テーブルからカラムを削除する。
ALTER TABLE テーブル名 RENAME TO 変更後の名前;
DML(Data Manipulation Language)
SELECTテーブルから行を表示する。
記述順序:SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY
実行順序:FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
SELECT [columnname,...] FROM [tablename];テーブルからカラムを選択して表示する
SELECT [columnname AS displayname,...] FROM [tablename];テーブルからカラムを別名にして表示する
SELECT [value AS columnname,...] FROM [tablename];テーブルに定数を列名を指定して表示
SELECT DISTINCT [columnname,...] FROM [tablename];重複を省略して表示。(2つ以上の列を指定した場合にはすべての項目で重複するレコードのみ省略)
SELECT [columnname,...] FROM [tablename] WHERE [conditions];条件を指定してレコードを抽出。
SELECT [columnname,...] FROM [tablename] GROUP BY [columnname,...];指定したカラムの重複をまとめて一行にして表示する(WHERE句の後ろにつける)。またASで定義した別名を利用できない。
SELECT [columnname,...] FROM [tablename] GROUP BY [columnname,...] HAVING [Group'scondition]グルーピングしたテーブルのレコードに対する条件指定。
SELECT [columnname,...] FROM [tablename] ORDER BY [sortkeycolumn] [DESC/ASC]指定したキーの並べ替えで行を表示。DESC:降順(大から小)、ASC:昇順(小から大)(指定がない場合には昇順)
SELECT [columnname] FROM [tablename1] INNER JOIN [tablename2] ON [foreignkey] = [primarykey];主キーと外部キーを用いて単純に結合する
SELECT [columnname] FROM [tablename1] LEFT OUTER JOIN [tablename2] ON [foreignkey] = [primarykey];FROM句で指定されたテーブルを基準としてすべてのレコードが表示されるように結合する
SELECT [columnname] FROM [tablename1] RIGHT OUTER JOIN [tablename2] ON [foreignkey] = [primarykey];OUTER JOIN句で指定されたテーブルを基準としてすべてのレコードが表示されるように結合する
SELECT [columnname1,..] FROM (SELECT...) AS pseudonymサブクエリとして実行されたSELECT文の結果からSELECTして、レコードを表示
SELECT [columnname1,...] FROM [tablename] WHERE columnname LIKE '検索文字列'; パターンマッチングでWHERE句を記述する。(%:0以上の文字列,_:任意の1文字)
SELECT [columnname1,...] FROM [tablename] WHERE columnname BETWEEN value1 AND value2;範囲検索する。
SELECT [columnname1,...] FROM [tablename] WHERE columnname [NOT] IN (value1,value2,...);INで指定した値を含む行を検索する
SELECT [columnname1,...] FROM [tablename] WHERE columnname [演算子] (SELECT [columnname,...] FROM [tablename] WHERE [condition1] GROUP BY [condition2]);複数行を返す相関サブクエリを実行。この複数行の結果を最初に定義したテーブルで対象行と比較する際に利用する。
SELECT句:
INSERTテーブルに新規行を登録する
INSERT INTO [tablename](column1,column2,...) VALUES(value1,value2,...);テーブルにレコードを登録する。(レコード登録には初めにBEGIN TRANSACTION;、最後にCOMMIT;を入力する必要がある)
INSERT INTO [tablename] VALUES (値1,値2,値3,...);列リストを省略した記述
INSERT INTO [tablename] VALUES(値1,値2,値3,...),(値1,値2,値3,...),(...);複数行をまとめてテーブルに登録する、複数行INSERT(multi row INSERT)
INSERT INTO [tablename]() SELECT [columnname1,...] FROM [tablename];SELECT文で指定したデータをコピーする。
UPDATEテーブルの行を更新する
UPDATE [tablename] SET [columnname = values];指定した列の値を全て指定した値に変更する。
UPDATE [tablename] SET [columnname = exam] WHERE [conditions];指定した列の指定された条件に当てはまる箇所の値を変更する。
DELETEテーブルの行を削除する
DELETE FROM [tablename];テーブルのすべてのレコードを削除する。
DELETE FROM [tablename] WHERE [conditions];指定した条件に一致する行を削除する
DCL(Data Control Language)
COMMITデータベースに対して行った変更を確定する
COMMIT;編集を終了する。(INSERT文、で利用。)
ROLLBACKデータベースに対して行った変更を取り消す
ROLLBACK;更新を取りやめる。(INSERT文、で利用。)
GRANTユーザに操作の権限を与える
REVOKEユーザから操作の権限を奪う
BEGIN TRANSACTION;テーブルの更新を開始する。(INSERT文、で利用。)
TRUNCATE [tablename];必ずテーブルを全行削除する。

制約
制約名記述方法説明
NOT NULL制約NOT NULLデータにNULLを許容しない。カラムの制約として
主キー制約PRIMARY KEY (カラム名)データの重複を許さない。テーブルの制約として
DEFAULT制約DEFAULT [value]INSERT時に値をDEFAULTにすることで、指定したデフォルト値を利用できる

データ型
型説明
INTEGER整数を入れる列に指定するデータ型(数値型)。小数は入れられない。
CHAR文字列を入れる列に指定するデータ型(文字列型)。列の中に入れることのできる文字列の長さをカッコ()で指定する。固定長文字列。最大長まで半角スペースで埋める。テーブルに格納された文字列は大文字・小文字の区別をする。
VARCHAR文字列を入れる列に指定するデータ型(文字列型)。列の中に入れることのできる文字列の長さをカッコ()で指定する。可変長文字列文字が最大長に満たない場合にも半角スペースで埋めることはない。
DATE

演算子

算術演算子
演算記号
足し算+
引き算-
掛け算*
割り算/
比較演算子
~と等しい=
~と等しくない<>
~以上>=
~より大きい>
~以下<=
~より小さい<
NULLであるIS NULL
NULLではないIS NOT NULL
論理演算子
否定(ほかの演算子と一緒に利用する)NOT
論理積AND
論理和OR

※NULLを含む計算式の結果はNULLとなる。

集約関数

引数には数式やDISTINCTキーワードを利用可能

関数意味
COUNT()テーブルのレコード数を数える。引数によって挙動が変わる。(*ではNULLの行を含むが、特定の列を数えるときはNULLを除外する)
SUM()テーブルの数値列のデータを合計する
AVG()テーブルの数値列のデータを平均する
MAX()テーブルの任意の列のデータの最大値を求める
MIN()テーブルの任意の列のデータの最小値を求める
ROUND()数式の結果の小数点以下を四捨五入する

トップへ戻る

DataBaseの基本

DBMS(Database Management System)

データベースを管理するコンピュータシステムをデータベースマネジメントシステム

DBの種類

RDBMS(Relational Database Management System)

種類

クライアント/サーバ型(C/S型)

テーブルの構造

SQLのルール

標準SQL

ISOで定められた標準規格に準拠したSQL。以前は標準SQLに準拠したRDBMSが少なく、RDBMSごとの「方言」でSQL文を書く必要があった。最近では標準SQLのサポートが進んでいる。

最初の標準規格はANSIの1986年。以降「SQL:1999」「SQL:2003」「SQL:2008」「SQL:2011」と更新してきた。

ACID特性

サブクエリ

PreparedStatement

SQLインジェクションを防止するためにあらかじめコンパイルして実行可能にしておく。(プリコンパイル)
PreparedStatementはプリコンパイルを行ってSQL文を実行するという機能。


トップへ戻る

pgAdmin

pgAdminダウンロード

GUIでPostgreSQLを操作するためのソフトウェア

操作方法

データベースの作成

テーブルの作成


トップへ戻る


トップへ戻る


トップへ戻る

インストール

  1. PostgreSQLのダウンロード
  2. サクラエディタ

設定ファイル

場所 C:\[installpath]\PostgreSQL\[version]\data\pstgresql.conf

設定変更後はサービス「postgresql-x64-[version]」を再起動する。


トップへ戻る