5.ちょっとSQLCMDをインストールしてみるby2017

5.ちょっとSQLCMDをインストールしてみるby2017

この記事を読むのに必要な時間は約 9 分です。

SQLCMDとは

コマンド

前回の記事でSQLサーバーのインストールまでは完了していると思います。

まだ、完了していない場合は以下を参考にインストールを完了させてください。

1.SQL server 2017導入(オフラインインストールも)
SQLサーバーの導入 ソフトウェアのダウンロード 何はともあれ、まずはダウンロードするところから始めたいと思います。まずは適当に「sqlserver 2017 ダウンロード」なんて、適当にGo...
2.SQL server 2017 ⇒ ISOメディアのマウント
Windows10でのISOメディアマウント方法です。たいしたことありません。全然簡単です。
3.SQL server 2017 ⇒ インストール作業(前編)
SQLserver2017のインストール作業 インストール作業 前回の記事で、メディアのマウントまで完了しているはずです。 まだの方は以下を参考にマウントまで完了させて下さい。 ...
4.SQL server 2017 ⇒ インストール作業(後編)
データベース エンジンの構成 ここの値は後々色々と響いてきます。 一つ一つちゃんと設定しましょう。 サーバーの構成 認証モード こちら、SQLサーバーに対する認証を ①クライア...

実はSQLCMDは個別にインストールする物ではなく、上記をすべて完了したら

既に利用できる用になっています!!

それではパソコン上でコマンドプロンプトを立ち上げてコマンドを実行してみましょう。

コマンドプロンプトの起動が終わりましたら

sqlcmdを実行するためコマンドプロンプトを起動している

[sqlcmd]

と打ち込んでください。

sqlcmdを実行するためコマンドプロンプトを起動している

はい!この通り。

sqlcmdを実行するためコマンドプロンプトを起動している

何がどうなったのか全く分かりませんね。

この状態では単純にソフトを起動しただけで、データベースへの接続などが行われておりません。

単純にコマンドを実行しただけの状態です。

この状態より、正しくデータベースに接続するためには、[sqlcmd]実行時にオプションを付与して実行する必要があります。

オプション

-- Windows認証
sqlcmd -S localhost -E

-- SQLサーバー認証
sqlcmd -S localhost -U

-E:Windows認証
-P:SQLserver認証

インストール時に選んでいる設定で変わってきますが、SQLサーバー認証を選んでいる場合、
アカウント【sa】が選ばれていると思われますのでユーザー名に【sa】を指定して接続してみましょう。

 

-- SQLサーバー認証
sqlcmd -S localhost -U sa

sqlcmdを実行するためコマンドプロンプトを起動して打ち込んでいる図

インストール時に設定しているはずの【sa】アカウントのパスワードを入力する事により

SQLサーバーにログオンできるはずです。

この状態ではうまくいったのか否かわかりずらい為、以下のコマンドを実行して

値が正しく返却されるか確認してみてください。

select name from sysdatabases

sqlcmdを実行するためコマンドプロンプトを起動して打ち込んでいる図

※画像内のオプションでいきなり -W を出してしまいましたが、画面の幅調整です。

 

saとは
SystemAdministratorの略でSQLサーバーの管理者アカウントです。

これで正しくデータベースに接続できたことがわかると思います。

 

データベースの説明

先ほどsysdatabasesから現在利用可能なデータベースの一覧を表示させて確認したと思います。ただ、これらのデータベースはシステムで利用する物で普段は使ってはいけない物です。

一様それぞれの説明は以下に記しておきます。

名前 説明
master SQLサーバーが動作するにあたり、システムレベルの重要な情報を格納。
msdb SQLサーバーのエージェントが使用。スケジューリングの情報など
model データベースのテンプレート情報
tempdb テンポラリテーブル

一番下のテンポラリテーブルのみ個人的に重要度が大きいのでちょっとだけ説明します。

このテーブルは、SQLサーバーの内部で巨大なソート処理等を行った際に、メモリでは

抱えきれなくなった情報をHDに書き出して利用します。そのため、巨大な一時テーブル

等を作成した場合、この領域が利用されるのですが、SQLが高速に動作する仕組みは

様々なロジックなり仕組みなりもありますが、やはりメモリ上で処理を完結させている

ところが多いです。つまりHDDが使われた時点で処理が極端に遅くなります。

なるべくこのDBが肥大化しないように注意しましょう。

さらっと、表現してみましたがこの子[肥大化]します!

過去の私の経験でありますが、ある日突然サーバーのハードディスクがいっぱいになっていました。

探っていくとこのtempdbが複数作成かつ、肥大化しており、何事かと思いました。

複数人でお仕事をしていたのですが、その中の一人が100万×100万みたいなsql文を書いておりその影響で巨大な一時テーブルが内部に生成されたみたいです。

[speech_bubble type=”drop” subtype=”L1″ icon=”02ukiyoe/taro_R.png” name=”たろ”]

良い子のみんなはマネしちゃ駄目だよ

[/speech_bubble]

[speech_bubble type=”drop” subtype=”R1″ icon=”02ukiyoe/hana_L.png” name=”はな”]

ちゃんと where区で条件をしぼらないとねぇい

[/speech_bubble]

データーベースの作成

それでは実際にSQL文を書いてデータベースを作ってみましょう。

作り方は簡単でほんの数行SQL文を書くだけです。

上から一気にいきます。

sqlcmdを実行するためコマンドプロンプトを起動して打ち込んでいる図

select name from sysdatabases
go

まずは現在の状況を画面表示して初期データベースしかない事を確認し

create database test001
go

これだけです。

test001

がデータベース名になるので後々の事を考えた名前にしておきましょう。

最後に、作ったものがちゃんと作られているかを確認するために、再度データベースの一覧を表示させています。

 

テーブルの作成

それでは次にテーブルを作成してみます。

sqlcmdを実行するためコマンドプロンプトを起動して打ち込んでいる図

画面ではワザとエラーを残しています。

データベースを作成した時のノリで「くりえいと~」と書いてみましたが、テーブルを作成するときはそれではだめです。

データベースは大きな箱を作るイメージなので細かい指定は要らなかったのですがテーブルを作る時は作るテーブルに

  1. どの様な型なのか?
  2. 文字数はどれぐらい入るのか?
  3. NULLは許可するのか?

など、細かく指定をしなければなりません。

 create table tbl_001 ( num int)
go

上記のソースコードで tbl_001がテーブル名で num がカラム名 int が型になります。

この記事も長くなってきたのでコマンドの使い方はここまでにします。

 

タイトルとURLをコピーしました