はじめに
SQL Serverついて学習したことを形として残しておくために投稿していきます。
まずは 事始め ということでSQL Serverの概要や学習に向けて行った準備などについて書いていこうと思います。
SQL Serverとは
正式名称は Microsoft SQL Server
その名の通り、Microsoftが開発したデータベースです。
SQLを拡張したT-SQL(Transact-SQL)というSQL言語を使うことができます。(もちろん普通のSQLも使用可能です)
※T-SQLについてはまた今度記事にします
学習を始める前に
とにもかくにも環境構築ですね。
SQL Serverのインストール
SQL Server本体です。
以下のサイトからインストーラーをダウンロードし、ローカルPCにインストールします。
https://www.microsoft.com/ja-jp/sql-server/sql-server-downloads
Edtionについて
SQL Serverには4つのEditionが用意されています。
https://www.microsoft.com/ja-jp/sql-server/sql-server-2017-pricing
- Enterprise
- Standard
- Web
- Developer
- Express
この中でDeveloperとExpressは無料ですので、どちらかを使用していきます。
この2つの違いは以下の通りです。
Edition | 内容 |
---|---|
Developer | 有料版と同等の機能を使用可能だが、運用環境上での使用が禁止されている |
Express | 機能制限があったり容量上限(10G)があったりするが、運用環境でも使用可能 |
今回は学習のために使用するので Developer を選択しました。
SSMS (SQL Server Management Studio)のインストール
SSMSはSQL Serverのデータベース管理ツールです。
MySQLでいうところのMySQL Workbench。
現在ではLinux上でも動作する SQL Server on Linux も存在するため、CUI上でクエリを実行するケースもあると思いますが
あくまで学習用なのでGUIを使っていこうと思います。
以下のサイトからインストーラーをダウンロードし、ローカルPCにインストールします。
https://docs.microsoft.com/ja-jp/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15
SQL Serverの接続設定
インストールが完了したら、先ほどインストールしたSQL Serverとの接続設定を行います。
- cmdで「sqllocaldb info」を実行しサーバー名を確認
- SSMSの設定でサーバー名に「(localdb)\サーバー名」と入力し接続する(windows認証)
実際の運用ではWindows認証ではなくSQL Sever認証を使用することもあるかと思いますが、学習用なので(ry
これでSQL Serverを使用する準備ができました!
Tips - 自動トランザクション設定
SQL Serverでトランザクションを張るには、必ず自前で張る必要があるそうです。
SSMSの初期設定には「暗黙的にトランザクションを張る」という、いわゆる自動でトランザクションを張る設定があるので、そちらも紹介しておきます。
(自動で張られているのだと思い込んで、 COMMIT
しなくてもテーブルに反映されていて焦りました...)
SSMSのメニューから、[Tool] > [Options...] > [Query Excution] > [SQL Server] > [ANSI]の順で下り
[SET IMPLICIT_TRANSACTION]にチェックを入れます。
これでクエリ実行前に自動で BEGIN TRANSACTION
が実行されるようになり、テーブル等への反映には COMMIT
が必要になります。