さて、今回はデータベースについての基本的な知識とSQLの最も基本的な文法であるデータベースの検索について軽く解説していきたいと思います。
①データベースについて
まずは、データベースについて軽く説明しておきます。
たとえば、図書館などにはコンピューターが置かれ、本を検索できるようになっています。
このシステムでは、書名や出版年を手掛かりに読みたい本がどこに置いてあるのか、貸し出し中かどうかなどがわかります。これができるのは、書名や出版年、棚の位置、貸し出し状況などの情報を保存し、必要に応じて取り出すことができる仕組みのおかげです。
こうした情報はデータとして大量に保存し、効率よくアクセスできるように加工したデータの集まりをデータベース(DB)と呼びます。
そして、このデータベースを管理するコンピューターシステムをデータベースマネジメントシステム、略してDBMSといいます。
では、なぜDBMSが必要なのかというと、Excelやテキストファイルなどのデメリットを解消しているからです。
では、Excelやテキストファイルのデメリットは何かというと、以下のような点が挙げられます。
- 多人数でのデータ共有に向かない
- 大量のデータを扱える形式になっていない
- 読み書きを自動化するのにプログラミング技術が必要
- 万一の事故に対応できない
DBMSを使えば、大量のデータを多人数でも安全かつ簡単に扱えます。
②DBMSはリレーショナルデータベースが主流
リレーショナルデータベース、略してRDBは「関係データベース」とも言われ、Excelシートのように列と行からなる2次元表の形式でデータを管理しています。
そして、このRDBはSQLというデータベース言語で操作することができます。
このような種類のDBMSをRDBMS(Relational Database Management System)といいます。
現在ではデータベースの形式としては、このRDBMSが主流となっており、代表的なRDBMSとしては次の5つがあります。
- Oracle Database
- SQL Server
- DB2
- PostgreSOL
- 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の集約関数について解説していきたいと思います。以上!
コメント