・SQL

【SQL】複雑な問合わせ

指定した値をすべて含むレコードを検索 最大の値を持つレコードをキーごとに抽出 最大の値を持つレコードを抽出 指定した値をすべて含むレコードを検索 bが1~5を含むレコードのaを取得 SELECT a FROM t1 WHERE b IN (1,2,3,4,5) GROUP BY a HAVING CONST(DI…

【SQL】連番

ROW_NUMBER RANK ROW_NUMBER 同じ順位でも違う番号をふる SELECT 社員コード , 入社年月日 , ROW_NUMBER() OVER(PARTITION BY 部署コード ORDER BY 入社年月日 DESC) AS 入社が新しい順 FROM 社員マスタ RANK 同じ順位に同じ番号をふる SELECT 社員コード , …

【SQL】ビュー

ビュー マテリアライズド・ビュー リフレッシュ方法 リフレッシュタイミング ビュー SELECT文を保持して、開いた際にSELECT文が実行されるイメージ。 データは元のテーブルと連動して自動的に最新の状態に更新される。 列に別名を付けることができる。 --作…

【SQL】高速化

インデックス 実行計画 統計情報 ヒント Select Insert nologging ExistよりInnerJoin 豆知識 インデックス データの並び順をDBが保持する。 データ件数が多いテーブルの検索を早くすることができる。 初期状態では主キーに対してインデックスが割り当てられ…

【SQL】結合まとめ

JOIN(INNER JOIN) LEFT JOIN(LEFT OUTER JOIN) RIGHT JOIN(RIGHT OUTER JOIN) FULL JOIN CLOSS JOIN JOIN(INNER JOIN) 両テーブルに存在するデータのみ出力 --ONを使用 SELECT * FROM 社員マスタ A JOIN 資格情報 B ON A.社員コード = B.社員コード …

【SQL】サブクエリ

SELECT句 集計結果を表示 全行に同じ情報を表示 WHERE句 検索結果を条件に指定 集計結果を条件に指定 FROM句 カスタマイズしたテーブルを結合 SELECT句 集計結果を表示 SELECT DISTINCT 社員コード, (SELECT COUNT(*) FROM 資格情報 sub WHERE main.社員コー…

【SQL】基本

読取(SELECT) 追加(INSERT) 更新(UPDATE) 削除(DELETE) テーブル作成(CREATE TABLE) テーブル削除(DROP TABLE) テーブル複製(CREATE SELECT) 件数をカウント(COUNT) 結合して抽出(UNION) 存在判定(EXISTS) 差分を抽出(MINUS) 一致行を…