| 記述 | 説明 |
|---|---|
| -- コメント | 一行コメントアウト |
| /* コメント */ | 範囲コメントアウト |
| \l | データベースの一覧を表示 |
| \c データベース名 | データベースを切り替える |
| \d | テーブルの一覧を表示 |
| \q | psqlを終了する |
| 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となる。
| 関数 | 意味 |
|---|---|
| COUNT() | テーブルのレコード数を数える。引数によって挙動が変わる。(*ではNULLの行を含むが、特定の列を数えるときはNULLを除外する) |
| SUM() | テーブルの数値列のデータを合計する |
| AVG() | テーブルの数値列のデータを平均する |
| MAX() | テーブルの任意の列のデータの最大値を求める |
| MIN() | テーブルの任意の列のデータの最小値を求める |
| ROUND() | 数式の結果の小数点以下を四捨五入する |
データベースを管理するコンピュータシステムをデータベースマネジメントシステム
ISOで定められた標準規格に準拠したSQL。以前は標準SQLに準拠したRDBMSが少なく、RDBMSごとの「方言」でSQL文を書く必要があった。最近では標準SQLのサポートが進んでいる。
最初の標準規格はANSIの1986年。以降「SQL:1999」「SQL:2003」「SQL:2008」「SQL:2011」と更新してきた。
SQLインジェクションを防止するためにあらかじめコンパイルして実行可能にしておく。(プリコンパイル)
PreparedStatementはプリコンパイルを行ってSQL文を実行するという機能。
GUIでPostgreSQLを操作するためのソフトウェア
場所 C:\[installpath]\PostgreSQL\[version]\data\pstgresql.conf
設定変更後はサービス「postgresql-x64-[version]」を再起動する。