はじめてのSQL

SQL はじめてのSELECT文書き方

はじめてのSQL入門 データベース言語SQLってなに? どんな言語でどんな役割があるのかな基本的なSQLの仕組みを解説...
SQLで基本の4大命令
SELECT文 【検索】 テーブルからデータを指定して取得する
UPDATE文 【更新】テーブルのデータを書き換える
INSERT文 【追加】テーブルにデータを追加する
DELETE文 【消去】テーブルに存在するデータを削除する
今回はこの中から一番頻繁に使われるSELECT文について説明していきます

SQLで共通する基本ルール

  • 文の途中でも改行を入れる事が出来る
  • 行の先頭や途中でも空白を入れる事が出来る
  • 大文字でも小文字でもどちらでもOK
  • 『/*』~『/*』はコメントとして無視される
  • 1つのSQL分の終わりには『;』セミコンロの記号を付ける

 

 

SELECT文書き方

SELECTとはテーブルからデータを指定して取得する検索機能で
テーブルから指定のした情報を獲得するのが目的です

今回は会計事務所データベースより従業員テーブルを使って説明していきますね

従業員テーブル  ~横に3つの列~
社員コード社員名性別
01山田 太郎
02鈴木 花子
03横井 次郎
04福田 美津子
~縦にに4つの行~

基本的な SELECT文 の構造

改行無しの書き方
SELECT社員名(SELECTの後に列名を書く)FROM従業員(FROMの後にどのテーブルからかを書く)

改行有りの書き方
SELECT    社員名(SELECTの後に列名を書く)
  FROM    従業員(FROMの後にどのテーブルからかを書く)

上記は同じSELECT文でどちらも有効ですでが SELECT文の指定が多くなってくるとどこに何を指示しているのか解りやすくする為に今後は改行有りで説明していきます

この結果検索された表示結果は以下のようになります
従業員テーブル 
社員名
山田 太郎
鈴木 花子
横井 次郎
福田 美津子

このように従業員テーブルから社員名だけが取り出された形になります

他にも同時に取り出したい時はどうすれば良いの?

その場合はSELECTの後に取り出したい
列の名前を『』カンマで区切って書いていきます

SELECT    社員名 性別
  FROM    従業員

検索結果
従業員テーブル  
社員名性別
山田 太郎
鈴木 花子
横井 次郎
福田 美津子


全部を取り出したい時はどうすれば良いの?
その場合は*を使う事で全件の取り出しが可能です

SELECT    *   
  FROM    従業員

検索結果
従業員テーブル  
社員コード社員名性別
01山田 太郎
02鈴木 花子
03横井 次郎
04福田 美津子

SELECT文での『*』を利用して全件の取り出しが便利ですが データベースの設計変更等で列が増えたり減ったりすると検索結果も変わっる他予期せぬバグの原因にもなるので極力利用は控えた方が良いと思います



男の人だけの情報を取り出したい時はどうすれば良いの?
その場合はWHEREを使う事で条件にあてはまる情報だけを取り出してくれます

SELECT  社員名 , 性別   
  FROM   従業員
WHERE    性別 男   ←ここに条件を書く

ここで使われている比較演算子と言い
上記の場合性別が男と等しいという意味になり 
それに合う条件の情報を取り出して来た事になります

検索結果
従業員テーブル  
社員名性別
山田 太郎
横井 次郎
比較演算子早見表
比較演算子 意味
左右の値が等しい
左側は右より小さい
左側は右よりも大きい
<= 左側は右側の値以下
>= 左側は右側の値以上
<> 左右の値が等しくない
【比較演算子とは】初心者 早見表さまざまな条件式で使われる比較演算子ですが 書き方を間違えると全く反対の意味になってしまいますが ついついこの場合はと混乱する事ありませんか?...

ASを付けると別名が定義できるよ

SELECT文ではASを後ろに付ける事で列やテーブル名に別名を付ける事もできます 今回例題として使用している従業員テーブルはわかりやすく理解して頂く為にシンプルな名称になってますが プロジェクトによっては長く解りにくい物もあるのでそういった時に便利です

SELECT  社員名 AS Employee name ,性別 AS seibetu
  FROM    従業員 AS employee

検索結果
employeeテーブル  
Employee nameseibetu
山田 太郎
鈴木 花子
横井 次郎
福田 美津子

まとめ

SELECT文はデータベースから情報を検索して取り出してくれます WHEREを使う事で検索条件に細かい指定をする事もでき ASを使う事で分かりやすい任意のものに変更する事も可能です