SQL Server 基礎まとめ(入門者向け)
SQL Server を学習する際に押さえておきたい基礎知識と、よく使う関数・分析関数についてまとめました。
これから SQL Server を使い始める方や、他のRDBMS経験がある方が SQL Server の特徴を理解する助けになれば幸いです。
🎯 対象読者
- SQL Serverをこれから学び始める人
- 他のRDBMS(Oracle, MySQL, PostgreSQLなど)の経験があり、SQL Server特有の書き方を知りたい人
- SELECT句や関数、分析関数(ウィンドウ関数)の基本を復習したい人
1. SQL Serverの基礎と構成
-
データベース構成
- 1つのデータベースは 1つ以上のデータファイル を持つことができる
- 2つ目以降のデータファイルの拡張子は
.ndf
-
ログファイル
- 1つのデータベースにつき、1つのみ
2. SELECT句のポイント
CASE式
SELECT
CASE WHEN 条件 THEN 値 ELSE 値 END
GROUP BY CASE を利用すると、CASE文ごとに集約結果を取得可能。
WHERE句
NULL 判定は = ではなく IS NULL を使う
BETWEEN は >= , <= と同義。日付で時刻を省略すると 00:00:00 扱いになる点に注意
文字列結合
SQL Server: "+"
Oracle, DB2, MySQL: "||"
命名規則と大かっこ []
スペースを含む列名
数字で始まる列名
予約語(SELECTなど)
3. 文字列関数
LEN(文字列) -- 文字数(末尾スペースはカウントされない)
LTRIM/RTRIM/TRIM -- 空白除去
UPPER/LOWER -- 大文字・小文字変換
LEFT/RIGHT/SUBSTRING -- 部分文字列取得
4. 日付関数
GETDATE(), CURRENT_TIMESTAMP -- 現在時刻
DATEPART(YEAR, 日付) -- 年/月/日/時/分/秒の抽出
DATEDIFF(DAY, '2025/08/16', '2025/08/17') -- 1 を返す
EOMONTH(日付) -- 月末の日付を取得(うるう年考慮)
DATEADD(DAY, 1, GETDATE()) -- 日付の加算
5. 型変換関数
CAST(値 AS 型)
CONVERT(型, 値, スタイル)
-- 例: 111 → yyyy/MM/dd(日本式表記)
6. 数値操作関数
ROUND(1.5555, 2) -- 1.56 四捨五入
POWER(2, 3) -- 8
CEILING(2.3) -- 3 (切り上げ)
FLOOR(2.13) -- 2 (切り捨て)
SQRT(4) -- 2 (平方根)
7. ビューとサブクエリ
CTE(共通テーブル式)
WITH Table1 AS (
SELECT ...
)
SELECT *
FROM Table1;
8. 分析関数(ウィンドウ関数)
基本構文
関数() OVER (PARTITION BY 列 ORDER BY 列)
順位付け関数
ROW_NUMBER() OVER(PARTITION BY 列 ORDER BY 列)
RANK() OVER(PARTITION BY 列 ORDER BY 列)
DENSE_RANK() OVER(PARTITION BY 列 ORDER BY 列)
前後の行を参照
LAG(COLUMN1) OVER(PARTITION BY 列 ORDER BY 列) -- 直前の値
LEAD(COLUMN1) OVER(PARTITION BY 列 ORDER BY 列) -- 直後の値
集約関数の分析版
SUM(COLUMN1) OVER (PARTITION BY 列)
AVG(COLUMN1) OVER (PARTITION BY 列)
累積和
順序が一意でない場合、意図通りに動作しないことがあるため、複数列を指定するのが望ましい。
SUM(COLUMN1) OVER (ORDER BY COLUMN1, COLUMN2)
まとめ
SQL Server では、
基本的な SELECT 句
文字列・日付・数値の各種関数
分析関数(ウィンドウ関数)
を理解することで、集計と行ごとの処理を組み合わせた強力なクエリを書けるようになります。
入門者の方はまずここから押さえておくと、実務でのSQL活用がぐっと楽になるはずです。