データベース初心者必見!入門編その2〜データ検索のためのSQL文〜

2015/06/29

はじめに

今回は、入門編その1の続きでSQLを使用してデータベースの操作を行います。SQLの中でも、データベースに対して行うデータの検索について紹介いたします。

SQLについて

SQL(Structured Query Language)とは、リレーショナルデータベースにおいて、データの操作や定義を行うためのデータベース言語(問い合わせ言語)です。

SQL文は、英語の文法とよく似ています。英語では人に命令するときに動詞を先頭に持ってきて、その後に具体的な内容を述べます。SQL文も英語と同様に、まず目的となる操作に応じたキーワードを記述します。そのキーワードがSQLです。

データの検索(SELECT文)

テーブルのすべての列を問い合せる

データベースに対する操作の中で最も頻繁に行われるものがデータの検索です。データを検索する操作のことを問い合わせクエリーと呼ぶこともあります。問い合わせとは、ひとつまたは複数のテーブルから条件に一致するデータを抽出することです。

ひとつのテーブルから全列を検索する構文は以下の通りです。

SELECT * FROM テーブル名

テーブル名には、存在する任意のテーブルを指定することができます。 試しにデータベース入門その1で使用したemployeeテーブルから全列検索してみます。

SELECT * FROM employee

実行結果

スクリーンショット 2015-06-29 12.31.42

今回は、employeeテーブルのすべての列が表示されました。

英単語「Select」は日本語だと「選ぶ」です。そして、「*」は「すべての列」を意味しています。

すると、今回のSQLは「employeeテーブルから全ての列を選ぶ」と訳すとこができます。

列を指定して問い合わせる

今度は、目的の列のみが表示された結果を取得します。

SELECT name FROM employee

実行結果

スクリーンショット 2015-06-29 12.13.51

employeeテーブルの中から、「name」列だけを検索することができました。 SQLの詳細を説明します。

SELECT 列名 FROM テーブル名

SELECTの後に任意の列名を指定することで、検索する列を指定します。全ての列名を検索するときには「*」を記述していた部分を変えるだけです。SELECTの後には列を指定するのですが、全列を指定するのは手間がかかるので「*」が全列を指定するという役割を果たしています。

では、複数列を指定するにはどうしたらいいのでしょうか。 複数列を指定して検索するには。列名をカンマ「,」で区切って記述します。 次のSQLを実行して下さい。

SELECT name,age FROM employee

実行結果

スクリーンショット 2015-06-29 12.20.03

employeeテーブルの中から2つの列を指定して検索することができました。 列名を「,」で区切ることで、さらに多くの列も任意に指定することができます。

DISTINCT演算子

先ほどのemployeeテーブルを下記のように少し変更します。

スクリーンショット 2015-06-29 12.28.35

そして次のSQLを実行して下さい。

SELECT depertment_number FROM employee

実行結果

スクリーンショット 2015-06-29 12.30.42

empolyeeテーブルからdepertment_number列のみ指定して検索しました。 depertment_number列はデータの部署を登録するための列です。同じカテゴリに分類されるデータもありますので、結果では、オレンジ部のように値が重複しています。 このようなデータの重複を取り除いて問い合わせを行うためにはDISTINCT演算子があります。

SELECT DISTINCT depertment_number FROM employee

実行結果

スクリーンショット 2015-06-29 12.37.54

depertment_number列の値の重複を覗いて検索することができました。 DISTINCT演算子は列名のリスト全体に対する演算子なので。必ずSELECTの後に記述する必要があります。 また、DISTINCTの代わりにALL演算子を使うと、重複しに関係なく全てのデータが検索されます。(明示的にALLを記述しなくても全てのデータが検索されます。

最後に

今回は、データの検索について紹介いたしました。他にも、もっと条件を加え、さらにデータを絞るための操作もあります。 次回は、それについて紹介したいと思います。

投稿者情報

パンダマン

パンダマン

パンダマンです。

主にWebシステム開発等を担当しております。
設計・プログラミング。サーバー管理なんでもやります。

今、担当しているプロジェクトではJavaの今まで触れたことのないフレームワークを使うことになり勉強中です。
学生にC言語のプログラミングの基礎を教えたりもしています。
最近「キングダム」にはまっています。

>> パンダマンが執筆した他の記事を読む

法人向け人気レンタルサーバー
法人向け人気専用サーバー
個人向け人気レンタルサーバー