データベースを操る言語 SQLに迫る!
こんにちは! 本村です。
さて、今回は「データベースを操るプログラミング言語」というテーマでお話ししたいと思います。
主に”SQL”とよばれる言語についてです。
Chapter1:SQLとは?
早速ですが、”SQL”とはデータベースに蓄積したデータを操作したり定義するためのプログラミング言語のことです。因みにデータベースとは、検索や蓄積が簡単にできるように整理された情報の集まりを指しています。さらに付け加えますと、SQLは厳密にいうとプログラミング言語ではなく、あくまでもデータベースを操作するための言語であり、”データベース言語”とよばれています。
一旦、プログラミング言語とデータベース言語の違いについて整理します。
プログラミング言語
プログラミング言語は手続き型の言語で、プログラムの本体を作るときに使います。実際には、プログラムの行う処理手順を記述し、コンピュータに何をどう処理するのかを指示します。
データベース言語
データベースとは、集めたデータをDBMS(データを管理するプログラム)で整理し、操作できるようにしたものです。データベース言語はDBMSに求める処理を命令する制御言語で、宣言型言語(非手続き型言語)といいます。加えて、データベース言語はデータを管理して、ユーザーが指定した条件に合致するものを見つけ出すためのもので、それ以上の機能はありません。また、データベース言語はシンプルに構成されていて、他言語とは文法や仕様が全く異なります。
まとめると、SQLの機能には、データの取得・登録・更新・削除やデータを特定するための条件検索が行えることです。
プログラミング言語はコンピューターを操作するための言語
データベース言語はデータベースに対してのみ命令可能なシンプルな言語
Chapter2:SQLの特徴
この章では、SQLの歴史と特徴を混ぜ合わせてお話ししていこうと思います。
1970年代にIBMが”System(リレーショナルデータベース管理システム=RDBMS)”を開発しました。
*因みに世界初です。
そういった操作を行う”SEQUEL(Structured English Query Language)”
が、現在のSQLのベースになっています。今更ですが、SQLは日本語読みでシークェル又はシーケルと読みます。
データベース言語の中で、一番普及している言語の一つであるSQLは、DBMS上でデータやデータベースを制御する言語であり、ユーザーやシステムからの命令を受けてRDBにクエリ(問い合わせ)を行い、結果を返します。ここで、返ってきた結果はモニターなどに表示されます。
この辺りでそろそろSQLの特徴についてまとめていこうと思います。
通常、SQLは対話のように文をやりとりして命令を行います。プログラミング言語はソースコードに命令を順番に記述して実行しますが、SQLは命令文を一方的にデータベースへ送るだけのものです。
通常は1文で完結し、複雑な処理を行う場合は、返ってきた処理の結果に応じてまた命令を送るというように応対のラリーが続くイメージです。
本来、SQLはデータベースを操作するための言語であり、アプリケーションを作成したり操作したりする機能は搭載していません。アプリケーションからデータベースを利用したい場合は、アプリケーションにSQLの命令分を記述します。
最後にSQLでデータベースを操作する方法のお話しで締めたいと思います。
SQLでデータベースを操作するための命令を送るには、二つの方法があり、一つ目が”対話型”とよばれるものです。対話型とは、ユーザーがプログラムのコマンドラインなどでSQLのコマンドを入力する直接操作が可能な方法です。
続いて、二つ目が”埋め込み型”です。例えば、Javaなどのプログラミング言語で記述したソースコードへダイレクトにSQL文を埋め込み、動的に操作する方法になります。他のプログラムに埋め込むことで、SQLをシステムの一部として使用します。命令文をネスト構造(入れ子)の状態にして、命令1の結果に応じて「〜ならば命令2、そうでなければ命令3」といった処理を行うことで、最終的な結果を得ることができます。因みに以上のようなことを”サブクエリ”といいます。
今回は、データベースを操る言語 SQLの概要についてお話ししてきました。