0.はじめに
このテキストはSQL Serverはもちろんデータベースという分野の素人である私が業務上の都合からSQL Serverを導入する過程で得た知識と雑感をゴチャ混ぜに記録したものです。
私の素人度合いは簡潔に言えば「コンピューターを比較的よく触るタイプのオタク」程度です。
現時点の私の知識で間違いがないようには確認していますが未だに素人の域を出ない人間の書いたものですので誤りを含む可能性は十分に高いです。あくまでも記録や日記の類とご承知の上でご覧ください。
1.ExcelやCSVファイルではダメなんですか?
まず、素人として疑問に思うことはデータベースがただの「表」と何が違うのかという点ではないでしょうか。
私の場合はExcelが得意ではないので敢えてExcelを使いたいとは思わなかったのですが、データベースの代わりにExcelでデータを管理するということは確かに可能で、例えば学校の先生なんかはExcelで生徒のテストの点数なんかを表にしていることでしょう。この目的であればDBを使い慣れた人でもExcelタイプの表計算ソフトを使いそうな気がします。
ではもっと大量のデータではどうなのかという問題ですが、中途半端にスキルがある人ならVBAでExcelを使いこなすとか、CSVデータならPythonなんかでテキスト的に処理するとか、そのような手法も使えるわけです。
結論としてはExcelやCSVファイルで「表」を管理しても何の問題もないと思います。私は会社に使えと言われたので使いました。嫌々の恐る恐る始めたデータベース遊びですが、今となってはメリットをそれなりに感じています。
で、メリットは何なのか。それは「処理の速さ」「処理指示の簡潔さ(SQLのパワフルさ)」「データの安全性」なのだと思います。しかしこれらは使いながら感じない限りは理解しにくいところです。
使ってみましょう。
2.SQL Serverをインストール(?)する。
インストールにはてなを付けてすみません。素人概念としてはインストール作業なのですが、厳密に言えばソフトウェアのインストールとサーバー機能の構築作業が必要になります。この区別はあまり考えずに進めましょう。
画面のキャプチャーなんかを見ながら進めたい方は適当にググってください。
要約すると:
①お金持ちでない私たちはExpress版のインストーラーをダウンロードしてきて安易に利用規約へ合意などをする。
②「データベースエンジンサービス」「規定のインスタンス」「混合モード(SQL Server認証とWindows認証)」などを選びながら進めてインストールを完了する。
③SSMSを嫌々インストールする。
さて、インストール作業終了です。インストールはおそらく上手くいっています。
SSMSなどを使ってSQL Serverにログインしましょう。できましたか? 私はできませんでした。
OS側に色々とイレギュラーな設定をしているとログイン関係で問題が起こりがちなようです。
散々問題に見舞われた経験からおまじないをいくつか紹介します。
おまじない:
・エラー223(パイプの他端が云々)のログインエラーが出た時は構成マネージャーからクライアントプロトコルの共有メモリを無効化してTCP/IPと名前付きパイプを有効化する。
・構成マネージャーからSQL Server Browserを自動起動に設定する。
・他PCから接続することがある場合はTCP/IPのプロパティで全て受信待ちが「はい」であることを確認して、TCP1433とUDP1434のポートをファイアウォールで許可設定する。
・Windowsの「サービス(歯車アイコン)」からSQL Serverを探してプロパティ>ログオンで「デスクトップとの対話をサービスに許可」をオンに設定する。
・一人で、SSMSから使うなら結局Windows認証の方が楽かもしれない。
こんなところです。
3.使ってみる
私の中でデータベースは銀行みたいなイメージです。預けてないお金は出てきませんしインポートしていないデータはSELECTもFROMもできません。
まずログインはできているものとして、SSMSでログインに成功するとおそらくObjectExplorerのみが表示されているはずです。
ここでコンピューター名(インスタンス名)のツリーを展開して「Databases」を右クリックして新しいデータベースを作ります。
階層の名前が分かりにくいので紹介しますと、上位側から「インスタンス」>「データベース」>「テーブル(他にビューなど)」となっています。。
新しく作ったデータベースを右クリックしてTasks>Import Dataと進んでCSVなどのデータをインポートしてみましょう。なんだか面倒でいやになってきますね。
使い方の説明はここまでです。あとは便利に使いましょう。
4.SQLiteって素晴らしくない?
あのですね、「データベースというものを触ってみたいなあ」程度の考えでSQL Serverを使い始めるのは無理があるんですよ。
独学でデータベース(SQL)を学ぶにあたってサーバー型である必要はなくて、セキュリティもこんなにガチガチじゃなくていいんですよね。
そんなこんなで私は今はSQLiteのデータベースをTable Plusから触って快適につかっています。
データベース自体をファイルとして持ち運べるしデータのインポートもうるさいことを言われないし(その代わり型の安全性はない)、ファイル型になっているおかげでプログラムのデータ置き場として使いやすいし、「『表』をSQLで操作したい」程度のニーズによく応えてくれます。
SQLiteの入門編はそれこそもっと簡単なので適当にググっても躓くことなく使えると思います。
SQLiteはいいぞ。