3開発/SQL
- 3.1SQL問い合わせ(SELECT・JOIN・副問合せ・集合演算・DML)
データを取り出すSELECT文の各句(WHERE・ORDER BY・GROUP BY・HAVING・DISTINCT・LIMIT・OFFSET)、複数テーブルを結合するJOIN(INNER JOIN・LEFT JOIN・RIGHT JOIN・FULL JOIN・CROSS JOIN)、クエリの中に埋め込む副問合せ、結果集合を演算するUNION・INTERSECT・EXCEPT、データを変更するINSERT・UPDATE・DELETEを学びます。
- 3.2データ定義とDBオブジェクト(データ型・制約・インデックス・ビュー等)
テーブルを設計・変更するCREATE TABLE・ALTER TABLE・DROP TABLE、主要なデータ型(INTEGER/BIGINT/NUMERIC/VARCHAR/TEXT/BOOLEAN/DATE/TIMESTAMP/JSON/JSONB)、データの整合性を守る制約(PRIMARY KEY・FOREIGN KEY・UNIQUE・CHECK・NOT NULL)、検索を高速化するインデックス、ビュー・マテリアライズドビュー、トリガー、シーケンス、スキーマ、テーブル空間、パーティション、PL/pgSQLによる関数、ストリーミング/ロジカルレプリケーションの基礎知識を学びます。
- 3.3組み込み関数(集約・文字列・時間)
集約関数(count・sum・avg・max・min)で複数行を1つの値にまとめ、算術関数・演算子で計算し、文字列関数(char_length・length・lower・upper・substring・replace・trim・連結演算子||・LIKE述語)で文字列を加工し、時間関数(age・now・current_date・current_timestamp・extract・to_char)で日時を扱う方法を学びます。
- 3.4トランザクションの概念(分離レベル・ロック)
複数のSQL文を1つの作業単位としてまとめるトランザクション(BEGIN・COMMIT・ROLLBACK)、同時実行時の見え方を制御する分離レベル(READ COMMITTED・REPEATABLE READ・SERIALIZABLE)、明示的に排他制御を行うLOCK文、行ロックとテーブルロックの違い、複数トランザクションが互いを待ち続けるデッドロックを学びます。

