この記事を読むのに必要な時間は約 9 分です。
SQLCMDとは
コマンド
前回の記事でSQLサーバーのインストールまでは完了していると思います。
まだ、完了していない場合は以下を参考にインストールを完了させてください。
実は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
インストール時に設定しているはずの【sa】アカウントのパスワードを入力する事により
SQLサーバーにログオンできるはずです。
この状態ではうまくいったのか否かわかりずらい為、以下のコマンドを実行して
値が正しく返却されるか確認してみてください。
select name from sysdatabases
※画像内のオプションでいきなり -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文を書くだけです。
上から一気にいきます。
select name from sysdatabases go
まずは現在の状況を画面表示して初期データベースしかない事を確認し
create database test001 go
これだけです。
test001
がデータベース名になるので後々の事を考えた名前にしておきましょう。
最後に、作ったものがちゃんと作られているかを確認するために、再度データベースの一覧を表示させています。
テーブルの作成
それでは次にテーブルを作成してみます。
画面ではワザとエラーを残しています。
データベースを作成した時のノリで「くりえいと~」と書いてみましたが、テーブルを作成するときはそれではだめです。
データベースは大きな箱を作るイメージなので細かい指定は要らなかったのですがテーブルを作る時は作るテーブルに
- どの様な型なのか?
- 文字数はどれぐらい入るのか?
- NULLは許可するのか?
など、細かく指定をしなければなりません。
create table tbl_001 ( num int) go
上記のソースコードで tbl_001がテーブル名で num がカラム名 int が型になります。
この記事も長くなってきたのでコマンドの使い方はここまでにします。