プログラミングの世界ではスクリプト(Script)やステートメント(Statement)など非常に似たような意味を持つ言葉がたくさんあります。
特にこれを理解していないと何もできないというわけではありませんが、参考書などを読み漁る際に理解しているのとしていないのでは理解度が格段に違ってきます。
そこで今回は多々ある言葉の中でも「ステートメント」に着目して解説してみたいと思います。
初心者の方はきちんとした知識を身に着けることが非常に大事だと思いますので、この記事でしっかりと覚えてみましょう。
ステートメントとは
ステートメント(Statement)を英語の辞書で調べると”名詞、声明、陳述、言明、申告”というワードが出てくると思いますが、その中に”明文”というワードもあります。
ここまでの説明で何となくわかった方もいると思いますが、プログラムの世界ではステートメント(Statement)とは命令文全体を指します。
SQLで言うなら「SELECT」や「INSERT」「DELETE」などで一つのクエリを構築しますが、この構築された文の全体をステートメント(Statement)と言います。
因みにMicrosoftのリファレンスには次のように明記されています。
SQL ステートメントは作業のアトミック単位であり、完全に成功するか完全に失敗するかのどちらかです。 SQL ステートメントは、識別子、パラメーター、変数、名前、データ型、および正常にコンパイルされる SQL 予約語で構成された命令のセットです。 BeginTransaction コマンドによってトランザクションの開始が指定されない場合、Analysis Services によって SQL ステートメントに対する “暗黙の” トランザクションが作成されます。 Analysis Services は常に、ステートメントが成功した場合に暗黙のトランザクションをコミットし、コマンドが失敗した場合に暗黙のトランザクションをロールバックします。
ステートメントの種類
ステートメント自体はこれであらかた理解いただけたと思いますので次はステートメントの種類について説明していきます。
ステートメントと言っても実は細かく分けるといくつかのグループに分かれます。
次のリストはステートメントを構造毎に分解したものと思ってください。
- バックアップと復元
- データ定義言語
- データ操作言語
- 権限ステートメント
- Service Brockerステートメント
- SETステートメント
次からはこれらを順に解説していきます。
バックアップと復元
バックアップおよび復元のステートメントは、バックアップを作成し、バックアップから復元する手段を提供します。
データ定義言語
データ定義言語はDDL(Data Definition Language)とも呼ばれます。
役割としては、データベース構造の作成や変更、削除といった機能を担っています。
このステートメントには次のものが含まれます。
- ALTER
- 照合順序
- CREATE
- DROP
- DISABLE TRIGGER
- ENABLE TRIGGER
- RENAME
- UPDATE STATISTICS
データ操作言語
データ操作言語はDML(Data Manipulation Language)と呼ばれます。
先ほどのデータ定義言語(DDL)がデータベース自体を操作するのに対し、こちらはデータベースに格納されるデータを挿入、更新、変更、削除するためのものだと思ってください。
DMLには次のステートメントがあります。
- BULK INSERT
- DELETE
- INSERT
- SELECT
- UPDATE
- MERGE
- TRUNCATE TABLE
権限ステートメント
権限ステートメントの役割は、どのユーザーがどのログインデータにアクセスして操作を実行できるかの決定です。
簡単に言ってしまえば、認証全般を担っているという認識で良いと思います。
Service Brokerステートメント
厳密に説明しようとするとかなり難しいですが、大まかな捉え方としては、サーバー間の情報通信のような高度アプリケーション全般を担っているという感じでしょうか。
一昔前に流行ったメーリングリストとよく似た構造を持っています。
Microsoftのリファレンスには以下のように明記されています。
Service Broker は、ネイティブのデータベース内サービス指向アプリケーションを作成することができるメッセージ配信フレームワークです。
SETステートメント
SETステートメントはセッション実行時の設定を処理する方法を指定します。
SQLを代表するステートメント
基本的なものにはなりますが、以下はSQLではお馴染みの代表的なステートメントです。
データベースからデータを検索する(SELECT文)
SELECT [Column] FROM [Table];
データベースにデータを追加する(INSERT文)
INSERT INTO [Table]([Column]) VALUES [値1、値2、値3,...];
データベースに登録されたデータを更新する(UPDATE文)
UPDATE [Table] SET [Column] = 値1, [Column] = 値2, [Column] = 値3,...;
データベースに登録されたデータを削除する(DELETE文)
DELETE FROM [Table];
条件式を作る(WHERE句)
DELETE FROM [Table] WHERE 条件式
これらは全てステートメントです。
まとめ
今回はステートメントについて初心者の方にも分かりやすく解説してみましたが、いかがでしたか?
スクリプトと混同している方もこの記事でしっかりと理解できたといっていただけると嬉しく思います。
用語については知っていると学習に係る時間が大幅に短縮できるばかりでなく、より深い意味での理解力が増します。
これを機にしっかりと覚えるようにしてみてください。