1. MS SQL SELECT文

 


🚀 SQL入門「最初のクエリ」

今回は、SQL Server Management Studio (SSMS) を使って、SELECT文を書き、実行します。


💻 準備:SSMSで新しいクエリウィンドウを開く

SQLを書くには、まずどのデータベースに命令を送るか指定する必要があります。

  1. SSMSを開き、サーバーに接続されていることを確認します。

  2. 左側のオブジェクトエクスプローラーから、練習用データベース(例:Adventureworks 2012)をクリックします。

  3. 画面上部の「新しいクエリ」ボタン(またはCtrl+N)をクリックします。

👉 ポイント: これで、開いたクエリウィンドウが自動的に選択したデータベースに接続されます。ウィンドウ上部で接続先のデータベース名を確認できます。


📝 第1章:テーブルを使わない「リテラル文」とは?

私たちが最初に学ぶのは、「リテラル (Literal) SELECT文」です。

これは、データベースのテーブルを直接参照しない SELECT 文のことです。代わりに、文字列(テキスト)や計算の結果をそのまま表示させます。

1-1. 文字列(テキスト)を表示する

「自分の名前」や「Hello World」を表示してみましょう。

項目説明
SELECTSQL文の始まりを宣言する予約語(青色に変わるのが目印!)。
文字列テキストのこと。必ずシングルクォーテーション ' ' (アポストロフィ) で囲みます(赤色に変わるのが目印!)。
実行💻 F5キーを押すか、「実行」ボタンを押す。
SELECT 'AAA'
-- 実行結果は「AAA」

1-2. 複数の列(カラム)を作る

コンマ , を使うと、結果を複数の列に分けて表示できます。コンマは「ここで区切って、次の列を出すよ」というサインです。

SELECT 'AAA', 'BBB', 'CCC'
-- 実行結果は、3つの列(AAA | BBB | CCC)に分かれる

🔢 第2章:リテラル文で「計算」をする

SQLは、電卓のように計算もできます。

演算子意味
+足し算
-引き算 (ハイフン)
*掛け算 (アスタリスク/星印)
/割り算 (フォワードスラッシュ) ※割り算には注意点があるため今回は省略

2-1. 計算の実行

SELECT 1 + 1
-- 結果: 2

SELECT 5 * 5
-- 結果: 25

2-2. 🔢 演算の優先順位(括弧の重要性)

数学と同じく、SQLの計算でも「括弧」が最優先されます。

  • Parentheses (括弧)

  • Exponents (指数)

  • Multiplication (掛け算) & Division (割り算)

  • Addition (足し算) & Subtraction (引き算)

-- 括弧の中が先に計算される
SELECT (5 * 5) - (3 * 5)
-- 結果: (25) - (15) = 10

📊 第3章:基本の「SELECT...FROM」文でテーブルをクエリする

いよいよ、テーブルからデータを取り出す、最も基本的なSQLの形を学びます。

3-1. 基本構文

句 (Clause)役割
SELECTどの列 (カラム) のデータが欲しいか指定する。
FROMどのテーブルからデータを持ってくるか指定する。
SELECT
    [カラム名1], [カラム名2], ...  -- ← 欲しい列をコンマで区切って指定
FROM
    [スキーマ名].[テーブル名];      -- ← データの場所を指定

【例】Person.Personテーブルから、名と姓を取り出す

SELECT
    FirstName, -- 1列目: 名
    LastName   -- 2列目: 姓
FROM
    Person.Person; -- テーブルの指定

3-2. すべての列を取り出す(SELECT *)

「テーブルのすべての列を全部見たい!」という時に便利なのが、アスタリスク *(スター)です。

SELECT
    * -- ★全列(ALL COLUMNS)を意味する
FROM
    Production.Product;

⚠️ 注意: SELECT * は、テーブルの構造を確認したい時には非常に便利ですが、行数が数百万件もある巨大なテーブルで使うと、サーバーの負荷が高まり、実行速度が遅くなることがあります。

3-3. ⚡️ 行数を制限する「TOP」オペレーター

テーブル全体を見るのは危険!という時、表示する行数を制限できます。

構文役割
SELECT TOP N先頭からN行だけを返す
SELECT TOP N PERCENT全体のNパーセントの行を返す
-- テーブルの先頭から500行だけを返す
SELECT TOP 500
    FirstName, MiddleName, LastName
FROM
    Person.Person;

-- 全体の10%の行を返す
SELECT TOP 10 PERCENT
    *
FROM
    Person.Person;

🎨 第4章:結果を見やすくする「カラムエイリアス」

データベースの列名(例: FirstName)は、スペースがなく読みにくいことが多いです。

カラムエイリアス (Column Alias) は、結果パネルに表示される列名を、より分かりやすい名前に一時的に変更する機能です。

4-1. エイリアスの使い方

ASキーワードを使い、その後に新しい名前を指定します。

新しい名前にスペースを含める場合🔒 角括弧 [] または 二重引用符 " で囲む
SELECT TOP 100
    FirstName AS [Customer First Name], -- ASを使って、見やすい名前に変更
    LastName AS "Customer Last Name"    -- 二重引用符でもOK
FROM
    Person.Person;

👉 注意: この変更は、あくまで結果画面上の表示名です。データベース内の実際のテーブルの列名が変わるわけではありません


💡 第5章:テーブルに似た「ビュー(View)」とは?

オブジェクトエクスプローラーには、「テーブル」の他に「ビュー (View)」というフォルダがあります。

項目テーブル (Table)ビュー (View)
役割データの実体を保存している。仮想的なテーブル。実体はなく、裏側でSQLを実行して結果を返す。
利点複数のテーブルの情報を一つにまとめたクリーンな結果を簡単に見られる。

ビューは、複雑な結合(Join)などを書かなくても、必要な情報を整理された形で提供してくれる、便利な仮想テーブルだと考えてください。

ビューに対するクエリも、テーブルに対するクエリと全く同じ方法で書けます。

-- ヒューマンリソースの従業員ビュー (View) から全データを取得する例
SELECT *
FROM HumanResources.vEmployee;

これで、SQLの基本構文、文字列や計算の表示方法、そしてテーブルとビューからのデータ取得方法までを学びました。