「スクリプト」という言葉を聞くと、まず一番最初に想像するのは命令文という方はかなりいると思います。
書籍にもスクリプト = 命令文または命令言語 のように記述されているものが多く、初心者の方はそれを読んで「スクリプトとは記述するもの」という認識が強くなっているのではないでしょうか?
そこで今回はこの「スクリプト」というものの本当の意味やちょっと掘り下げた使い方までを解説してみたいと思います。
スクリプトとは
SQLに関して言うなら、スクリプトとはスクリプトファイルという形で保存された一連のSQLコマンドを指します。
よく書籍で「スクリプトを記述する」と言うような形で書かれたものを見かけますが、厳密にはスクリプトはファイルなので記述するという言葉は若干ニュアンスが違います。
あくまでも記述するのはステートメント(Statement)であり、スクリプトはファイルに記述されたコマンドだということを覚えておいてください。
スクリプトファイルの便利な使い方
スクリプトに関してはシンプルな内容なので、解説するものがほとんどありません。
よってここからはスクリプトファイルを使って開発をスムーズにする方法について説明していきたいと思います。
バッチファイル
「バッチを充てる」という言葉を耳にしたこともあるかと思いますが、この”バッチ”というのはバッチファイルの事です。
バッチファイルとはコマンド群が記述されたスクリプトファイルのことで、このバッチを実行することで、予めファイルに記述されたコマンドが即座に実行できます。
バッチファイル自体はただのプレーンテキストファイルですが、保存時に拡張子を「○○○.bat」とすることでバッチファイル化できます。
ここでは解説のために簡単なバッチファイルの作り方と実行確認をしてみたいと思います。
まずは下のコードを見てください。
@echo off sqlcmd -S DESKTOP-T3J7G2K\SQLEXPRESS -U Sample_User -P SamplePasword1234 USE Sample_DATABASE SET XACT_ABORT ON; BEGIN TRANSACTION; IF OBJECT_ID('dbo.sample_table', 'U') IS NOT NULL DROP TABLE dbo.sample_table; CREATE TABLE dbo.sample_table( sample_ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY, sample_Name VARCHAR(50) NULL, sample_Age INT NULL, sample_Sex INT NULL, sample_Birth Datetime NULL ); INSERT INTO dbo.sample_table(sample_Name, sample_Age, sample_Sex, sample_Birth) VALUES ('Alex', 40, 1, 1980-10-15), ('Ben', 35, 1, 1985-12-18), ('Tomath', 30, 1, 1990-08-08), ('Sophia', 20, 2, 2000-10-10), ('Emma', 25, 2, 1995-10-15), ('Mia', 25, 2, 1995-01-20), ('Ethan', 28, 1, 1992-10-15), ('Lucas', 25, 1, 1995-03-05), ('Luna', 33, 2, 1987-09-22), ('James', 31, 1, 1989-04-18); COMMIT TRANSACTION;
これは単純にテーブルを作成し、その中にいくつかのレコードを登録するだけの簡単なものですが、これをバッチ化しておくことでSQLの学習には一役買ってくれます。
SQL学習中の方は何度もデータベースの書き換えを行っていると思いますが、その都度データベースを初期化し、再度データを登録するというのは大変骨の折れる作業です。
これを一連の流れとしてバッチ化することで、一瞬にして自動でデータの登録まで完了させることが出来ます。
バッチファイルを作る
それでは早速、バッチファイルの作り方について説明しましょう。
まずメモ帳などのテキストファイルを開きます。
次にこのファイルに実行したいSQLステートメントを直接記述します。
記述が終わったら保存しますが、この時ファイル名には「○○○.bat」という形で拡張子は”.bat”にします。
これでバッチファイルの作成は完了です。
次はコマンドプロンプトを開きます。
コマンドプロンプトを開いたらこのファイルを実行します。
今回は”sample_batch.bat”という名前で保存したので、プロンプトにはこのまま「sample_batch.bat」と入力します。
これでEnterキーを押せば自動でSQLログインした後でデータベースを選択し、そのデータベースにテーブルを作成、作成されたテーブルにレコード登録まで完了されているはずです。
確認のために「SELECT * FROM sample_table;」と入力してみましょう。
実行手順を表示させる
上に記述してあるコードの中に「@echo off」があったと思います。
これはプロンプトにこれ以降の全ての手順を非表示にするという意味です。
また「@」はecho offの部分を非表示にするという意味です。
よって全ての手順を表示させたい場合には、この「@echo off」の行を削除すれば良いということになります。
学習時には動作を追うために手順を表示させた方が良い場合も多いため、この行を削除する事をお勧めします。
まとめ
いかがでしたか?
今回はスクリプトファイルの作り方やバッチ化の手順について解説してみました。
学習時には何かとデータベースを弄ることが多いため、こういったテクニックを知っておくことで非常に作業を効率化することが出来ます。
バッチ化も難しい話ではないので、しっかりと覚えて使いこなせるようにしてみましょう。