基本情報技術者、応用情報技術者、Java、IT活用

現役システムエンジニアによる基本情報処理者や応用情報処理技術者の資格への用語説明、Java、様々なITのお勉強をしたい方へ

SQLの基本 SELECT FROM WHERE ORDER BY について

SQLについて説明していきます。

覚えてしまったらそこまで難しくないのでしっかりと覚えておきましょう。

 

まずは下記2つのテーブルがあります。

主キーは1レコードを特定するための他のレコードと被らない情報です。

NULLも許可しません。

 

JUGYOIN (従業員テーブル)

制約 カラム名 カラム名説明
PK(主キー) JUGYOIN_ID VARCHAR(8) 従業員ID
  JUGYOIN_NAME VARCHAR(30) 従業員名
  BUSHO_CD VARCHAR(5) 所属部署コード

 

データ

JUGYOIN_ID JUGYOIN_NAME BUSHO_CD
0001 田中 5000
0002 鈴木 5000
0003 佐藤 4000

 

 

ではまずはこのテーブルからデータを抜き出してみます

 

SELECT句には抜き出したいカラムを指定します。

FROM句には取り出したいテーブル名を指定します。

 

従業員テーブルから従業員ID従業員名を取得したい時は

 

SELECT  JUGYOIN_ID,JUGYOIN_NAME

FROM JUGYOIN 

 

条件を指定したい時はWHERE 句を付けます。部署コードが5000の従業員を取得する。

型がCHARやVARCHARといった文字列型の場合は必ずシングルクォートでくくります。(INTEGER等の数値の場合は不要です。)

 

SELECT  JUGYOIN_ID,JUGYOIN_NAME

FROM JUGYOIN 

WHERE BUSHO_CD='5000'

 

結果

JUGYOIN_ID JUGYOIN_NAME BUSHO_CD
0001 田中 5000
0002 鈴木 5000

 

あいまい検索をしたい場合はLIKEを使います

SELECT  JUGYOIN_ID,JUGYOIN_NAME

FROM JUGYOIN 

WHERE JUGYOIN_NAME LIKE '%藤%'

 

結果

JUGYOIN_ID JUGYOIN_NAME BUSHO_CD
0003 佐藤 4000

 

INを使うと複数条件を指定して検索できます。

OR やAND 検索もできます。

部署コードが4000か5000 且つ 従業員IDが0001又は0003のもの

SELECT  JUGYOIN_ID,JUGYOIN_NAME

FROM JUGYOIN 

WHERE BUSHO_CD IN ('4000','5000')

AND (JUGYOIN_ID='0001' OR  JUGYOIN_ID='0003') 

 

結果

JUGYOIN_ID JUGYOIN_NAME BUSHO_CD
0001 田中 5000
0003 佐藤 4000

 

 

最後に、昇順にする場合は ORDER BY を付けます。

 

昇順は ASC 降順はDESC です。

今回は従業員IDの降順に指定してみます。

SELECT  JUGYOIN_ID,JUGYOIN_NAME

FROM JUGYOIN 

WHERE BUSHO_CD IN ('4000','5000')

ORDER BY  JUGYOIN_ID DESC

 

纏めると

SELECT カラム名(カンマ区切りで複数)

FROM テーブル名

WHERE 条件(IN AND OR を使う)

ORDER BY (ASC 昇順 DESC降順)

 

如何でしたか?まずはSQLの基本でした。また応用編も掲載していきたいと思います。

今後ともよろしくお願いします。

 

広告