「標準SQL+データベース」サポートページ 
正誤表、補足情報、サンプルデータなど
Microsoft SQL Serverは https://www.microsoft.com/ja-jp/sql-server/sql-server-downloads からダウンロードできます。 ここでは小規模環境であれば商用でも無償で使える「Express」を使用しています。
| [SQL Server 2022 の各エディションとサポートされている機能 - SQL Server | Microsoft Learn](https://learn.microsoft.com/ja-jp/sql/sql-server/editions-and-components-of-sql-server-2022?view=sql-server-ver16) | 
基本をクリック
「今すぐ接続」でコマンドラインツールが起動します。 起動時用のコマンドや必要なオプションが表示されているのでメモしておいてください。画面上で文字列を選択して右クリック→テキストエディタ(メモ帳)などに貼り付け(Ctrl+V)することで保存できます。
インストールが完了すると自動でSQL Serverが起動します。 起動できているかどうかは「タスクマネージャー」(タスクバーで右クリック→タスクマネージャで起動)の「サービス」で確認できます。
デフォルトではSQL ServerはWindows開始時に自動開始されるように設定されています。 学習時のみ手動で開始したい場合は、タスクマネージャから「サービス管理ツール」を開き、SQL Serverのプロパティで「スタートアップの種類」を手動に変更します。
手動開始の際はタスクマネージャの「サービス」でSQL Serverを右クリック→「開始」で開始します。
接続用のコマンドは、上記の「今すぐ接続」で確認してください。
【参考】以下はSQL Server(Express Edition)用のコマンドラインです。 コマンドプロンプトまたはPowershellの画面を開いて以下実行することで起動します。
sqlcmd -S コンピューター名\SQLEXPRESS -E
-Sは接続先のサーバーを指定するオプション、-EはWindows認証を使用して接続するオプションです。サーバーの管理者として接続できます。
実行するとプロンプトが数字>に変わり、SQLコマンドが実行できるようになります(exitまたはquitで終了)。
| オプション | 意味 | 
|---|---|
| -E | セキュリティ接続(Windows認証で接続) | 
| -U ユーザー名 | |
| -P | パスワードを使って接続する | 
| -S サーバー | |
| -H ホスト名 | |
| -d データベース | |
| -q “クエリ” | クエリを実行(実行後はプロンプトが表示される) | 
| -Q “クエリ” | クエリを実行して終了 | 
| -s | 列の区切り文字 | 
| -W | 余分なスペースを削除 | 
| -y 幅 | 可変長型の表示幅 | 
| -Y 幅 | 固定長型の表示幅 | 
| -u | ユニコード出力 | 
| -i ファイル名 | 入力ファイル | 
| -o ファイル名 | 出力ファイル | 
| -? | ヘルプの表示 | 
※sqlcmdの場合、文字列をVARCHAR(255)で定義すると格納した文字数にかかわらず常に255文字の幅で表示されます。これは-Wオプションで回避可能です。本書のSQL Server用のサンプルは-Wオプションなしでもそれなりに見やすい状態とするため、氏名などを格納する列はVARCHAR(30)で定義しています。
コマンドラインツールではsqlcmd固有のコマンドとSELECT文などのSQL文を実行できます。 コマンドはEnterで実行、SQL文の場合はいったんキャッシュに格納され、GOコマンドで実行されます。すべてのSQL文には末尾の;が必要です。使用例は「サンプルデータの取り込み」の後で示します。
GOコマンドを含め、sqlcmd固有のコマンドには大小文字の区別はありません。
| コマンド | 意味 | 
| GO | キャッシュに入っているSQLコマンドを実行する | 
| :list | キャッシュの内容を表示する | | 
| :r ファイル名 | ファイルを読み込んでキャッシュに追加する | 
| :o ファイル名 | 実行結果を指定したファイルに保存する | | 
| :help | ヘルプを表示する | 
サンプルデータをあらかじめダウンロードし、テキストエディタ(メモ帳など)で表示できるようにしておいてください。
ダウンロードリンク(SQL Server用):testdb.sql, sampledb.sql, sampledb2.sql(👉サンプルデータについて)
use データベース名 でデータベースを選択goで実行で取り込むことができます。 ※コピー&ペーストを使用せずにファイルから読み込みたい場合は 👉ファイルから読み込む場合
SQL Serverのコマンドライン環境では、GOコマンド(小文字でも可)を実行することでコマンドが実行されます。本ページでは、他のコマンドと区別するために小文字で記載しています。
以下のコマンドはまとめて選択し、sqlcmdの画面にペーストすることで実行できます。
データベースの削除(初回は実行不要、作り直したい場合に使用してください)
DROP DATABASE IF EXISTS testdb;
DROP DATABASE IF EXISTS sampledb;
DROP DATABASE IF EXISTS sampledb2;
go
データベースの作成
CREATE DATABASE testdb COLLATE Latin1_General_100_CI_AI_SC_UTF8;
CREATE DATABASE sampledb COLLATE Latin1_General_100_CI_AI_SC_UTF8;
CREATE DATABASE sampledb2 COLLATE Latin1_General_100_CI_AI_SC_UTF8;
go
インストーラーから「今すぐ接続」で開いた画面の場合、一度にペーストできる行数に制限があります。testdb用のサンプルデータ(testdb-sqlserver.sql)の場合はまとめて実行できますが、sampledbおよびsampledb2用のサンプルデータは実行できません。
コマンドプロンプトからsqlcmdを起動してから実行してください(👉sqlcmdの起動)。
コピー&ペースト用
sqlcmd -S コンピューター名\SQLEXPRESS -E
CREATE DATABASE testdb COLLATE Latin1_General_100_CI_AI_SC_UTF8;
本書用のサンプルデータはUTF-8で作成されているため、
sqlcmdの-iオプションでファイルを取り込みたい場合は-f 65001オプション(コードページを指定するオプション 👉Microsoft Learn)を指定する必要があります。
実行結果の表示は文字化けしますが内容には影響ありません。
sqlcmd -S コンピューター名\SQLEXPRESS -E -d データベース名 -i ファイル名 -f 65001
SQL Server Management Studio (SSMS)はGUIベースでSQL Serverに接続し、管理やデータの閲覧、SQLの実行ができるツールです。
本書では使用しませんが、SQL Serverを活用する上で便利でしょう。
ここでは、インストールとサンプルデータ登録後のデータ表示とSQL文の実行画面のみ紹介します。
インストール完了の画面で「SMSSのインストール」をクリックするとダウンロードサイト(下記URL)に接続し、インストーラーを入手できます。
SQL Server Management Studio (SSMS) のダウンロード
スタートメニューの「S」-「Microsoft SQL Server Tools 20」にある「SQL Server Management Studio 20」で起動します。頻繁に使う場合は「スタートにピン留め」をしておくと良いでしょう。