SQLの基本をまとめてみた

SQL

さて、今回はデータベースについての基本的な知識とSQLの最も基本的な文法であるデータベースの検索について軽く解説していきたいと思います。

①データベースについて

まずは、データベースについて軽く説明しておきます。

たとえば、図書館などにはコンピューターが置かれ、本を検索できるようになっています。

このシステムでは、書名や出版年を手掛かりに読みたい本がどこに置いてあるのか、貸し出し中かどうかなどがわかります。これができるのは、書名や出版年、棚の位置、貸し出し状況などの情報を保存し、必要に応じて取り出すことができる仕組みのおかげです。

こうした情報はデータとして大量に保存し、効率よくアクセスできるように加工したデータの集まりをデータベース(DB)と呼びます。

そして、このデータベースを管理するコンピューターシステムをデータベースマネジメントシステム、略してDBMSといいます。

では、なぜDBMSが必要なのかというと、Excelやテキストファイルなどのデメリットを解消しているからです。

では、Excelやテキストファイルのデメリットは何かというと、以下のような点が挙げられます。

  1. 多人数でのデータ共有に向かない
  2. 大量のデータを扱える形式になっていない
  3. 読み書きを自動化するのにプログラミング技術が必要
  4. 万一の事故に対応できない

DBMSを使えば、大量のデータを多人数でも安全かつ簡単に扱えます。

②DBMSはリレーショナルデータベースが主流

リレーショナルデータベース、略してRDBは「関係データベース」とも言われ、Excelシートのように列と行からなる2次元表の形式でデータを管理しています。

そして、このRDBはSQLというデータベース言語で操作することができます。

このような種類のDBMSをRDBMS(Relational Database Management System)といいます。

現在ではデータベースの形式としては、このRDBMSが主流となっており、代表的なRDBMSとしては次の5つがあります。

  1. Oracle Database
  2. SQL Server
  3. DB2
  4. PostgreSOL
  5. MySQL

③SQLの基本的な文法について

それでは次に、SQLの基本文法についてざっくりと解説していきます。

SELECT句

一番代表的なSELECT句から見ていきましょう。

たとえば、下のようなテーブルがあったとしましょう。

 shohin_id |   shohin_mei   | shohin_bunrui | hanbai_tanka | shiire_tanka |  torokubi
-----------+----------------+---------------+--------------+--------------+------------
 0001      | Tシャツ        | 衣服          |         1000 |          500 | 2009-09-20
 0002      | 穴あけパンチ   | 事務用品      |          500 |          320 | 2009-09-11
 0003      | カッターシャツ | 衣服          |         4000 |         2800 |
 0004      | 包丁           | キッチン用品  |         3000 |         2800 | 2009-09-20
 0005      | 圧力鍋         | キッチン用品  |         6800 |         5000 | 2009-01-15
 0006      | フォーク       | キッチン用品  |          500 |              | 2009-09-20
 0007      | おろしがね     | キッチン用品  |          880 |          790 | 2008-04-28
 0008      | ボールペン     | 事務用品      |          100 |              | 2009-11-11
(8 行)

テーブル名はShohinという名前でテーブルを作成しています。

ここで、上の表からshohin_id、shohin_mei、shiire_tankaを取り出してみましょう。

SELECT shohin_id, shohin_mei, shiire_tanka
FROM Shohin;

上のコードを実行すると下のようになります。

 shohin_id |   shohin_mei   | shiire_tanka
-----------+----------------+--------------
 0001      | Tシャツ        |          500
 0002      | 穴あけパンチ   |          320
 0003      | カッターシャツ |         2800
 0004      | 包丁           |         2800
 0005      | 圧力鍋         |         5000
 0006      | フォーク       |
 0007      | おろしがね     |          790
 0008      | ボールペン     |
(8 行)

SELECT句で指定した項目だけをテーブルから取り出すことができます。

FROM句ではテーブル名を入力します。

WHERE句

SELECT shohin_mei, shohin_bunrui  
FROM Shohin
WHERE shohin_bunrui = '衣服';

これで、商品の分類が「衣服」のものだけ取り出せる。
記述順は、必ずFROM句のあとに書くこと。

   shohin_mei   | shohin_bunrui
----------------+---------------
 Tシャツ        | 衣服
 カッターシャツ | 衣服
(2 行)

上のテーブルのように衣服カテゴリーに属する「Tシャツ」と「カッターシャツ」を取り出すことに成功しました。

論理演算子

さて、続いて論理演算子についてです。
種類としてはAND演算子とOR演算子があります。
それぞれ見ていきましょう。

AND演算子

AND演算子は、「複数の検索条件が両方成り立つときに出力される結果」を出します。
日本語で言う「かつ」ですね。

たとえば、「商品分類がキッチン用品かつ販売単価が3000円以上」なら、下のようになります。

SELECT shohin_mei, shiire_tanka
FROM Shohin
WHERE Shohin_bunrui = 'キッチン用品'
AND hanbai_tanka >= 3000;

実行結果は以下のようになります。

shohin_mei | shiire_tanka
------------+--------------
 包丁       |         2800
 圧力鍋     |         5000
(2 行)

OR演算子

OR演算子は、「複数の検索条件が片方または両方成り立つときに出力される結果」を出します。
日本語で言うと「または」です。

たとえば、「商品分類がキッチン用品または販売単価が3000円以上」なら、下のようになります。

SELECT shohin_mei, shiire_tanka
FROM Shohin
WHERE shohin_bunrui = 'キッチン用品'
OR hanbai_tanka >= 3000;

出力結果は以下のようになります。

  shohin_mei   | shiire_tanka
----------------+--------------
 カッターシャツ |         2800
 包丁           |         2800
 圧力鍋         |         5000
 フォーク       |
 おろしがね     |          790
(5 行)

DISTINCT句

さあ、最後にDISTINCT句について見ていきます。

DISTINCT句は、データの重複を省く機能があります。

こんなときに、DISTINCT句を使えばデータを重複なく取り出すことができます。

具体的には、以下のようなコード。

SELECT DISTINCT shohin_bunrui
FROM Shohin;

出力結果は以下のようになります。

 shohin_bunrui
---------------
 キッチン用品
 衣服
 事務用品
(3 行)

さて、今回はSQLの基本である検索機能について見てきました。
SELECT句はデータベースの中から必要なデータを取り出す最も基本的な文法なので、初心者の方は参考にしてみてください。
次回はSQLの集約関数について解説していきたいと思います。以上!

コメント

タイトルとURLをコピーしました