2021.08.31
SQLの概要
●SQLとは
リレーショナルデータベースを操作するための言語をSQL(Structured Query Language)と言います。
リレーショナルデータベースとは行と列によって構成された「表形式のテーブル」と呼ばれるデータの集合をお互いに関連付けたデータベースのことです。SQLはデータベース言語の一つで、データベースの定義や操作を行うことができます。
SQLはANSIやISO、JISなどで標準規格化されており、一度学習すれば異なるリレーショナルデータベース(RDB)でもほぼ同じように利用可能することができます。
・SQLの基礎知識
SQLはデータベース言語の中で最も普及している言語の一つです。データベース管理システム(DBMS)上でデータベースを制御する言語であり、ユーザーやシステムからの命令を受けてリレーショナルデータベース(RDB)に問い合わせを行い結果を返します。
SQLで使用できるデータベースにはOracle社のOracle Database、Microsoft社のMicrosoft SQL ServerやオープンソースのMySQLなどがあり、それぞれ異なるデータベースエンジンを搭載していますがどれもSQLで操作可能です。
SQLはデータベース言語という説明をしましたが、データベースを管理するソフトウェアを操作・制御することが目的です。そのためプログラミング言語のようにシステムを開発することはできません。それではデータベース言語とプログラミング言語はどのように違うのか確認しておきましょう。
[データベース言語]
データベースとは、集めたデータをデータベース管理システム(DBMS)で整理し、操作できるようにしたものです。リレーショナルデータベース(RDB)はデータベースの中で多く使用されているもので、データ同士の関係を表形式のテーブルで表現し、テーブルが連携してデータの構造を表現しています。SQLでデータベースに対して行える操作としては下記のようなものがあります。
—–
・データの検索
・データの追加
・データの更新
・データの削除
・テーブルの作成
・テーブルの削除
・テーブルの主キーの設定
・ユーザー権限の付与
—–
このようにデータベースに関するあらゆる操作をSQLで行うことができるため、データベースを操作する上で欠かせないのがSQLになります。
[プログラミング言語]
プログラミング言語はC言語やJava、PHP、Pythonなどの言語がありますが、いずれもコンピューターを操作するための言語です。C言語やJavaはコンピューター上で動作するアプリケーションを作成することができます。またPHPやPythonはWeb上で動作するWebアプリケーション、Webサービスを開発する際に利用することが多い言語です。
・SQLの特徴
SQLは対話式のように文をやり取りして命令を行います。プログラミング言語はソースコードに命令を順番に記述して実行しますが、SQLは命令文をデータベースに一方的に送るだけです。そのため基本的には1文で完結し、複雑な処理をする場合はデータベースから帰ってきた処理の結果に応じてまた命令を送るといったようにデータベースと対話するようにやり取りをします。
SQLでデータベースを操作するための命令を送る方法は次の2種類あります。
・対話型
ユーザーがプログラムのコマンドラインでSQLコマンドを打ち込み、直接操作する方法を対話型と言います。この場合は処理の結果が表示されるのを待って次の命令を送ります。
・埋め込み型
Javaなど他のプログラミング言語で記述したソースコードに直接SQL文を書き込み動的に操作する方法です。他のプログラムに埋め込むことでSQLをシステムの一部として使用します。例えば、命令文を入れ子構造にして命令1の結果に応じて「~なら命令2、そうでなければ命令3」などの処理を行うことで最終的な結果を得ることができます。