【SQL初心者用】SQLとは
SQLはデータベースを操作するための言語です。データベースにデータを挿入したり、検索したりする際に利用します。
データベースのなかには、数多くのデータが保存されていますが、SQLを使用することで必要なデータを効率的に操作することが可能です。
SQLはさまざまなデータベースで利用でき、Oracle、MYSQL、PostgreSQL、SQLiteなどがSQLで操作可能です。
1. SQLで出来ること
SQLでデータベースに対して行える操作として、主に次のものがあります。
・データ検索
・データの追加
・データの更新
・データの削除
・*テーブルの作成
・テーブルの削除
・テーブルの主キーの設定
・ユーザー権限の付与
*データベースにおける「テーブル」とは
データベースには様々な種類のデータが格納されています。
そのデータはバラバラではなく、データの種類毎に規則正しく保存されているのが特徴です。
このデータベースの種類毎の単位を「テーブル」と呼びます。
2. データベース言語とプログラミング言語について
SQLは厳密にはプログラミング言語ではありません。
データベースを操作するための言語になるため、SQLはデータベース言語となります。
2-1. SQLの種類
◆データ操作言語
データ操作言語はDMLと省略して呼ばれ、データベースに対してデータを追加・更新・削除などを行うためのSQL命令文の種類となります。
DMLで利用される命令文として、次のようなものがあります。
・SELECT(データの検索)
・INSERT(データの追加)
・UPDATE(データの更新)
・DELETE(データの削除)
SQL命令文の中でも特に利用頻度が高いものとなります。
◆データ定義言語
データ定義言語はDDLと省略して呼ばれ、テーブルなどを作成・削除したり設定を変更したりするためのSQL命令文の種類です。
DDLで利用される命令文としては、次のようなものがあります。
・CREATE(テーブルの作成)
・ALTER(テーブルの設定変更)
・DROP(テーブルの削除)
・TRUNCATE(テーブルデータ削除)
データベースの管理者であるならば必ず覚えなければなりません。
RUNCATE(テーブルデータ削除)はDMLのDELETE文(データの削除)と同じくデータを削除する命令ですが、テーブル内の全てのデータを削除するものです。
DELETE文と合わせて利用することが多いです。
◆データ制御言語
データ制御言語は省略してDCLと呼ばれます。
DML(データ操作言語)やDDL(データ定義言語)の利用を制御するためのSQL命令文の種類です。
DCLで利用される命令文としては、次のようなものがあります。
・GRANT(権限付与)
・REVOKE(権限剥奪)
こちらもDDLと同じでデータベース管理者は必ず覚えておくべきものになります。
DCLを使う事で、ユーザー単位・テーブル単位にDMLやDDLの使用を制限できます。
2-2. SQLの特徴
現在の*DBMSでは、*リレーショナル型を多く採用しています。
そのためSQLを理解することで、殆どのDBMSを利用することが可能です。
*DBMSとは
データベース管理システムのことで、コンピューター上のデータベースの整理やデータ検索、更新、共有などを行うソフトウェアのことです。
*リレーショナル型とは
列と行で構成されているデータベースのことです。
表のようであり、Excelなどの表計算ソフトを思い浮かべれば分かりやすいかと思います。
列に重複しない項目をそれぞれ設置し、行に各データを入力します。
◆一方的に命令をデータベースに送る
SQLは対話のように文をやりとりして命令を行います。
プログラミング言語はソースコードに命令を順番に記述して実行していますが、SQLはシンプルな命令文を一方的にデータベースに送るだけです。
基本的に1文で完結し複雑な処理を行う場合は返って来た処理の結末に応じてまた命令を送るというようにデータベースと対話するように命令文をやりとりします。
◆あくまでデータベースを操作する言語
SQLはデータベースを操作するための言語であり、アプリを作成したり操作したりする機能はありません。
アプリやシステムを開発する時には他のプログラムやプログラミング言語と組み合わせて使用します。
アプリからデータベースを利用したい場合は、アプリにSQLの命令文を記述します。
*RDBMSを操作して返ってきた値をアプリで利用し、さらに処理を繰り返します。
*RDBMSとは
リレーショナルデータベース管理システム
2-3. SQLでデータベースを操作する方法
SQLでデータベースを操作するための命令を送るには、2つの方法があります。
◆対話型
ユーザーがプログラムのコマンドラインなどでSQLのコマンドを打ち込み、直接操作する方法で対話型と呼ばれています。
この場合は処理の結果が表示されるのを待って次の命令を送ります。
◆埋め込み型
Javaなど他のプログラミング言語で記述したソースコードに直接SQL文を埋め込み、動的に操作する方法です。
他のプログラムに埋め込むことで、SQLをシステムの一部として使用します。
命令文をネスト構造(入れ子)にして、命令1の結果に応じて「~ならば命令2、そうでなければ命令3」などの処理を行うことで、最終的な結果を得ることができます。
これをサブクエリといいます。
2-4. SQLの重要性
コンピューターを使う時には、殆どの場合何らかのデータベースへのアクセスが生じます。
ビッグデータの活用によるマーケティングが話題になっています。
ビッグデータを処理するインターフェースとして、SQLが提供されていることが一般的です。
そのため、SQLは重要なデータベース言語として見直されています。
◆クラウドサービスへの対応
クラウドサービスを使用する際にも、SQLは欠かせない技術です。
実際にAWSではデフォルトのRDBとして、MySQLが採用されています。
最新のクラウドサーバーに移行しても決して廃れることのない言語です。
◆ほぼ全てのIT分野で必須
AIやloTといった先端IT分野の活用が急激に広がると考えられ、これからは一部の業界や企業だけでなく広く一般化していく可能性があります。
先端ITではいずれもデータ収集と分析が必須であるため、どちらの分野においてもRDBとSQLの知識が役立つことは間違いありません。
3. まとめ
SQLはデータベースを操作するためのデータベース言語です。
SQLは国際標準化されているため、一度覚えてしまえば様々なデータベースで利用することが出来ます。
プログラミング言語とは異なるものであることも覚えておきましょう。
ただしプログラミング言語の記述のなかで、データベースを操作するためにSQLを利用することが可能です。