Linux LPIC - SQL - SELECT



 ◆ SQLとは

 SQL(Structured Query Language)とは、RDB(リレーショナルデータベース)を操作するための言語。
 リレーショナルデータベースは現在広く用いられているデータベースの方式であり、データはテーブル表に
 格納されます。テーブルは列(
フィールド)と行(レコード)から構成して、テーブルのデータが関連付け
 られます。下図は社員テーブルの「支店ID」と支店テーブルの「支店ID」の列の関連付け(リレーショナル)


      



 SQLは大きく分けて、
DDLDMLDCLの3種類から構成されます。DMLには、SELECT(データの選択)
 INSERT(追加)、UPDATE(更新)、DELETE(削除)等があります。以降はDMLにフォーカスして解説。

種類 和訳 説明
 DDL ( Data Definition Language ) データ定義言語  データベースやテーブル作成時に使用
 DML ( Data Manipulation Language ) データ操作言語  データ操作時に使用
 DCL ( Data Control Language ) データ制御言語  トランザクション制御時に使用

 リレーショナルデータベースの管理システムをRDBMS(Relational DataBase Management System)といい、
 代表的なオープンソフトウェアにMySQL、商用製品にはOracle Database DB2、MS SQL Serverがあります。


 ◆ SQL - SELECT

 データベースからデータを抽出するには
SELECT文というSQLの命令を使用します。構文は以下です。

 ◆ 構文 : SELECT 列名 FROM テーブル名 ;

 ◆ 実行例 : employeeテーブルから「 name 」列の取り出し
 > SELECT name FROM employee;


    




 ◆ 実行例 : employeeテーブルから「id」と「name」列の取り出し
 > SELECT id,name FROM employee;


   




 ◆ 実行例 : employeeテーブルから全ての列の取り出し
 > SELECT * FROM employee;


  


 SELECT文でデータを抽出する際に以降で紹介。

 ・ WHERE
 ・ ORDER BY
 ・ GROUP BY

 上記を使用することで、検索条件を指定しデータを
 抽出したり検索結果をソートして表示したり、指定
 した列について、グループ化して表示させられます。
 以降で、これら3つを詳細を解説していきます。


 ◇ WHERE
 ⇒ データを抽出する際に、特定の条件を満たしたものだけを取得するためには
WHEREを併用します。

 ◆ 構文 : SELECT 列名 FROM テーブル名 WHERE 検索条件;

 ◆ 実行例 : employeeテーブルから branchid が 20 である「 id と name列 」の取り出し
 > SELECT id,name FROM employee WHERE branchid = 20;


      




 ◇ ORDER BY
 ⇒ データを抽出する際に、検索結果をソートして表示するためには
ORDER BYを併用します。

 ◆ 構文 : SELECT 列名 FROM テーブル名 ORDER BY 列名;

 ◆ 実行例 : employeeテーブルから「 salary列 」を昇順にソートして、全ての列の取り出し
 > SELECT * FROM employee ORDER BY salary;


  




 ◇ GROUP BY
 ⇒ データをグループ化し計算した上で抽出する際には
GROUP BYを併用します。

 ◆ 構文 : SELECT 列名 FROM テーブル名 GROUP BY グループ化する列名;

 ◆ 実行例 : employeeテーブルで「 branchid 列 」をグループ化して抽出し、salary の合計を算出。
 > SELECT branchid, SUM(salary) FROM employee GROUP BY branchid;


  



 上記の
SUMはSQLで使用する関数です。グループ化したデータの処理を行える関数には、その他には
 MAX(最大値)、MIN(最小値)、COUNT(データ数)などがあります。



LPIC Web教科書

Copyright(C) 2002-2017 ネットワークエンジニアとして All Rights Reserved