Visual Basic 中学校 関連用語集 |
読み方:エスキューエル、シーケル
別名:Structured Query Language
意味 |
SQLとは、データベースを操作・制御するための言語の名前。
日本語では「構造化照会言語」と訳されますが、ほとんどの人は「エスキューエル」と呼びます。
詳細 |
VBなどのプログラミング言語を使用して、データベースを操作・制御する場合でも、ほとんどの場合プログラムの内部でSQLを使用します。
VBのプログラム上はSQLを一切使用しない場合でも、コントロールやクラスが自動的にSQLを使用している場合がほとんどです。ですから、VBを使用するにしてもデータベースにアクセスするプログラムを書くためにはSQLの知識は必須です。
SQLはそれ自体が1つの言語であり、さまざまな構文やキーワードからなりたっています。代表的なものにはSELECT、UPDATE、INSERT、DELETE、WHERE、FROM、ORDER BY、GROUP BY、CREATE、DROP、ALTERなどがあります。
SQLの仕様は標準化団体であるANSIやISOによって定められ、たびたび改訂されていますが、市販のデータベース製品はこの仕様には完全には準拠しておらず、製品ごとにキーワードや構文の違いがあります。マイクロソフト社のデータベース製品のSQL Serverでは、標準のSQLと区別するためにSQLの仕様をT-SQL(Transact SQL)と呼んでいます。オラクル社のOracleでは同様に、PL/SQLと呼んでいます。
SQLを使ったプログラムでは、単一の命令を実行する場合といくつかの手順を組み合わせたロジックやアルゴリズムを実行する場合とがあります。
前者はVBなどのプログラミング言語上から使用されることが多く、その例は次のようになります。
sqlSelect.Connection = Cn sqlSelect.CommandText = "SELECT address FROM authors" Value = sqlSelect.ExecuteScalar |
このプログラムはデータベース上のauthorsテーブルに登録されている最初のaddressを取得します。この例は、SQLを使用している部分だけを抜粋したものであり、これだけでは機能しません。SELECT address FROM authorsの部分がSQL文です。
後者はストアドプロシージャと呼ばれ、データベース上で実装されることが多く、その例は次のようになります。
ALTER
PROCEDURE [dbo].[uspPrintError]
AS BEGIN SET NOCOUNT ON; -- Print error information. PRINT 'Error ' + CONVERT(varchar(50), ERROR_NUMBER()) + ', Severity ' + CONVERT(varchar(5), ERROR_SEVERITY()) + ', State ' + CONVERT(varchar(5), ERROR_STATE()) + ', Procedure ' + ISNULL(ERROR_PROCEDURE(), '-') + ', Line ' + CONVERT(varchar(5), ERROR_LINE()); PRINT ERROR_MESSAGE(); END; |
近年ではマイクロソフトはLINQという新しい構文を開発しており、従来SQLを使用していた操作も今後はLINQに置き換わっていくかもしれません。LINQはSQLの構文を改造した構文を採用しており、VBではVB2008以降で使用可能です。
Visual Basicとの関連 |
データベースプログラミングを行う場合にはSQLの知識は必須です。単純で小さなアプリケーションであればSQLを書かずに済ませることもできますが、SQLの知識がないと効率的なプログラムができませんし、問題が発生した場合の勘所もわからないでしょう。
とは言え、VBにはSQLを自動生成してくれたり、SQLの生成を支援する機能がいろいろと備わっています。
SQL Serverとの関連 |
SQL Serverはデータベースサーバーの製品名です。名前に「SQL」がついていて紛らわしいのですが、SQL ServerだけがSQLを使用できる製品ではありません。OracleやDB2など他のデータベース製品と立場は同じです。もちろん、データベースである以上、操作・制御するためにSQLを多用することに変わりありません。
この製品の名前付けはたとえばワープロの製品に「ワープロ」とか「日本語」とか言う名前を付けるのと同じです。
もともとマイクロソフトはこのような製品名を採用する傾向が強く、ワープロの「Word」(言葉)、データベースソフトの「Access」(アクセス)、グラフィックツールの「ペイント」(描く)、それに「notepad」(メモ帳)などはこの傾向に該当します。
関連用語 |
LINQ
ストアドプロシージャ
T-SQL
Transact SQL
PL/SQL
SQL Server
Oracle