SQLコマンド一覧(PostgreSQL)

## SQLコマンド一覧

| 操作                   | SQLコマンド                                                                     |
|----------------------|--------------------------------------------------------------------------------|
| データベースの作成      | `CREATE DATABASE dbname;`                                                      |
| データベースの削除      | `DROP DATABASE dbname;`                                                        |
| テーブルの作成          | `CREATE TABLE tablename (column1 datatype1, column2 datatype2, ...);`            |
| テーブルの削除          | `DROP TABLE tablename;`                                                        |
| テーブルの構造の表示     | `\d tablename` (これは`psql`コマンド専用)                                          |
| データの挿入            | `INSERT INTO tablename (column1, column2, ...) VALUES (value1, value2, ...);`   |
| データの選択            | `SELECT * FROM tablename WHERE conditions;`                                    |
| データの更新            | `UPDATE tablename SET column1=value1, column2=value2 WHERE conditions;`        |
| データの削除            | `DELETE FROM tablename WHERE conditions;`                                      |
| カラムの追加            | `ALTER TABLE tablename ADD COLUMN columnname datatype;`                        |
| カラムの削除            | `ALTER TABLE tablename DROP COLUMN columnname;`                                |
| インデックスの作成       | `CREATE INDEX indexname ON tablename (columnname);`                            |
| インデックスの削除       | `DROP INDEX indexname;`                                                        |
| ユーザーの作成          | `CREATE USER username WITH PASSWORD 'password';`                               |
| ユーザーの削除          | `DROP USER username;`                                                          |
| ユーザーに権限を付与      | `GRANT privileges ON object TO username;`                                      |
| ユーザーから権限を取り消し | `REVOKE privileges ON object FROM username;`                                   |

## データ型
| データ型カテゴリ | データ型名       | 説明                                                                                                   |
|--------------|--------------|-----------------------------------------------------------------------------------------------------|
| **数値型**     | `smallint`   | 2バイト整数値。範囲: -32,768 から 32,767。                                                            |
|              | `integer`    | 4バイト整数値。範囲: -2,147,483,648 から 2,147,483,647。                                                 |
|              | `bigint`     | 8バイト整数値。範囲: -9,223,372,036,854,775,808 から 9,223,372,036,854,775,807。                           |
|              | `decimal`    | 可変長の数値。                                                                                           |
|              | `numeric`    | `decimal`と同じ。                                                                                       |
|              | `real`       | 4バイト浮動小数点数。                                                                                     |
|              | `double precision` | 8バイト浮動小数点数。                                                                                    |
| **文字型**     | `char(n)`    | 固定長の文字列。                                                                                         |
|              | `varchar(n)` | 可変長の文字列。                                                                                         |
|              | `text`       | 可変長の文字列（最大長さ制限なし）。                                                                         |
| **日時型**     | `timestamp`  | 日付と時間を合わせて保持するデータ型。                                                                      |
|              | `date`       | 日付のみを保持するデータ型。                                                                                |
|              | `time`       | 時間のみを保持するデータ型。                                                                                |
| **論理型**     | `boolean`    | 真偽値（`true`、`false`、`null`）。                                                                       |
| **列挙型**     | Enum         | 事前に定義した項目の一つのみを値として持つことができるデータ型。用途に応じてユーザーが定義します。                    |
| **幾何型**     | 例: `point`  | 位置点や線、ボックスなどの空間データを扱うためのデータ型。各種の幾何型があります。                              |
| **ビット文字列型**  | `bit(n)`     | 固定長のビット文字列。                                                                                     |
|              | `bit varying(n)` | 可変長のビット文字列。                                                                                     |
| **バイナリデータ型** | `bytea`      | バイナリデータを保持するデータ型。                                                                           |
| **UUID型**     | `uuid`       | ユニバーサル一意識別子 (UUID) を保持するデータ型。                                                           |
| **配列**      | 例: `integer[]` | 同じデータ型の複数の要素を1つのカラムで保持するためのデータ型。データ型の後に`[]`を付けることで配列として定義します。 |
| **JSON型**     | `json`       | JSONデータをテキストとして保持するデータ型。                                                               |
|              | `jsonb`      | JSONデータをバイナリ形式で保持するデータ型。                                                               |