SQLとは?
SQLとはデータベースを操作するための言語である。
SQLを使用することによって、データベースに挿入されているデータを「検索する」「抽出する」「書き変える」といったことが可能になる。
イメージとしては、データベースを操作するためのプログラミング言語のようなもの。
プログラミング言語はコンピューター全般に処理を送るためのものですが、SQLはデータベースに特化した言語。
そもそもデータベースとは何か?
データベースとは、蓄積されたデータの集まりである。
データベース自体は特別なものではなく、たとえば電話帳、企業の一覧表、LINEの連絡先一覧などもデータベースに該当する。
電子媒体だけがデータベースというわけではなく、紙媒体で管理されているデータも広く見ればデータベース。
データベースはデータがただ蓄積されているだけではなく、データを引き出しやすいように整理されているのが特徴であり重要なポイント。
SQLの種類
・データを定義するDDL(Data Definition Language)
・データを操作するDML(Data Manipulation Language)
・データを制御するDCL(Data Control Language)
具体的な説明
・DDLはDBやテーブルを作成する、削除する
データベースを大幅に変更する命令になる。
命令 | 機能 |
---|---|
CREATE | データベースやテーブルの作成 |
ALTER | データベースやテーブルの更新 |
DROP | データベースやテーブルの削除 |
・DMLはデータを探す、登録する、更新する
SQLには大きく分けて3種類ありますが、その中でもDML(データ操作言語)はもっとも使用頻度の多いSQLである。
命令 | 機能 |
---|---|
INSERT | データの登録 |
UPDATE | データの更新 |
DELETE | データの削除 |
SELECT | データの検索 |
・DCLは変更を確定する、取り消す
使用頻度は少ない。
命令 | 機能 |
---|---|
COMMIT | DBの変更の確定 |
ROLLBACK | DBの変更の取り消し |
GRANT | ユーザーに操作権限を付与 |
REVOKE | ユーザーの操作権限を無効化 |
また、SQLはどのような種類のリレーショナルデータベースに対しても、基本的に同じ文法で操作ができる。 それはISO(国際標準化機構)で規格化が行われているから!!
SQLの使える主要なデータベース
※以下データベースはDBと記述します
・MySQL
MySQLは、Oracle社が開発ならびにサポートするオープンソースのDBです。
無償のGPLライセンスと、商用ライセンスがあり、基本的には無償で使用することが可能です。
MySQLはリレーショナルDBといって、データを表形式で扱います。
他のデータベースの種類には、階層型とネットワーク型があります。
現状多く使われているのはリレーショナルDBで、人気のデータベースはほとんどがリレーショナルDBです。
MySQLは高い柔軟性、拡張性があることが特徴的で、複数のテーブルの結合などがしやすいです。
処理速度も速く、使いやすいDBと言えるでしょう。その結果、もっともシェアの大きいDBとなっています。
・PostgreSQL
PostgreSQLはオープンソースのリレーショナルDB管理システムです。
すべてオープンソースで無償で利用できます。
PostgreSQLはもともとは、カリフォルニア大学バークレー校で開発されたIngresDBの後継としてできたものです。
リレーショナルDBという点ではMySQLと同じで細かな違いはあるものの大まかな扱い方はどちらも共通します。
PostgreSQLはMySQLよりも機能性が高く、使い方が多少難しい分できることが多いという特徴があります。
具体的には、プログラミングの際にDBの処理を組み込みやすいということが挙げられます。
オブジェクト指向のプログラミング言語(Javaなど)には継承といって、一度定義したロジックを使いまわせる機能があります。PostgreSQLはテーブルで継承が使える分プログラミングとの相性が良いので、プログラマーに好まれる傾向があります。
・Oracle Database
Oracle Databaseとは、Oracle社が開発・販売しているリレーショナルDB管理システムです。
Oracle Databaseは無償で使う方法と、有償版があります。Oracle DatabaseをMySQLなどと比較すると細かな違いは複数ありますが、大まかな使い方は同じです。
もともとOracle Databaseを使っていたシステムが、MySQLに移行するケースが多いです。
Oracle Datebaseは高い堅牢性、同時に複数人が編集しないようにロックを行う、プラットフォーム間の移植が容易、Oracle社からのサポートが充実している、費用が高い、といった特徴があります。
Oracle Datebaseはコストがかかりますが、その分バグ対応などのサポートを受けられるという点がメリットと言えるでしょう。
・Microsoft SQL Server/Access
Microsoft社が提供するMicrosoft SQL Server/Accessは、同社が提供しているExcelなどとも互換性があるリレーショナルDB管理システムです。
SQL ServerとAccessは類似するツールですが、Accessの方がより手軽に使用できるDB、SQL Serverの方が本格的なDBと考えるとわかりやすいでしょう。
Windows製品との親和性が高い。ただしMySQLやPostgreSQLは、より安価でかつWindowsを含めた幅広い環境に適応しているので、具体的にWindows Serverやその他のWindows製品と連携させる方法が決まっている場合にMicrosoft SQL ServerやAccessがおすすめです。
最後に
データはシステム開発やビジネスにおいてとても重要なものなのでSQLをしっかりと理解し、
環境や予算・使い勝手・親和性などを考慮して使用データベースを選択する必要があると感じた。
インフラ部分との関係も深いと思うのでプログラミングだけでなく、データベースやインフラ部分も少しづつ理解を深められるよう学習していく