SELECT文で学ぶデータ抽出の基本

ナナさん、SELECT文って何ですか?データを抽出するためのものだって聞いたんですけど。

そうだね、ミサキ。SELECT文はデータベースから必要な情報を取得するための基本的な文なんだよ。今日はその基本から詳しく説明していくね。
SELECT文の基本構文
SELECT文の基本構文はとてもシンプルです。以下のように書きます。
SELECT 列名 FROM テーブル名;
例えば、employees
テーブルからname
とage
を取得したい場合は、次のようになります。
SELECT name, age FROM employees;
この文を実行すると、employees
テーブルの全ての名前と年齢が表示されるよ。
データ抽出の条件指定(WHERE句)
さらに特定の条件に合ったデータを抽出したい場合には、WHERE
句を使います。これにより、必要なデータだけを絞り込むことができます。
SELECT 列名 FROM テーブル名 WHERE 条件;
例えば、age
が30以上の従業員だけを取得する場合は、以下のように書きます。
SELECT name, age FROM employees WHERE age >= 30;
これで、条件に合ったデータだけが得られますね。
複数テーブルからのデータ取得(JOIN)
時には、複数のテーブルからデータを取得したいことがあります。その場合は、JOIN
を使います。最も一般的なものはINNER JOIN
です。
SELECT 列名 FROM テーブル1 INNER JOIN テーブル2 ON テーブル1.共通列 = テーブル2.共通列;
例えば、employees
テーブルとdepartments
テーブルを結合して、従業員の名前と部署名を取得する場合は次のようになります。
SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.id;
これで、各従業員が属する部署の情報も一緒に取得できます。
結果のソート方法(ORDER BY句)
取得したデータを特定の順番で表示したい場合は、ORDER BY
句を使います。これにより、結果を昇順または降順にソートできます。
SELECT 列名 FROM テーブル名 ORDER BY 列名 ASC|DESC;
例えば、従業員の名前をアルファベット順に並べたい場合は、次のようになります。
SELECT name FROM employees ORDER BY name ASC;
ASC
は昇順、DESC
は降順を意味します。
重複データの排除(DISTINCT句)
場合によっては、重複データを排除したいことがあります。この時に使うのがDISTINCT
句です。
SELECT DISTINCT 列名 FROM テーブル名;
例えば、employees
テーブルから重複しない部署名を取得するには、以下のように書きます。
SELECT DISTINCT department_name FROM employees;
これで、同じ部署名が一度だけ表示されるようになります。
集約関数の使用(COUNT, SUM, AVG等)
集約関数を使うと、データの集計を行うことができます。よく使われる集約関数には次のようなものがあります。
COUNT()
:行数をカウントするSUM()
:合計値を求めるAVG()
:平均値を求める
例えば、全ての従業員の年齢の合計を求める場合は、次のように書きます。
SELECT SUM(age) FROM employees;
この結果、全従業員の年齢を合計した値が得られます。
結果の制限(LIMIT句)
最後に、取得するデータの数を制限したい場合はLIMIT
句を使用します。これにより、取得する行数を指定できます。
SELECT 列名 FROM テーブル名 LIMIT 数;
例えば、最初の5人の従業員の名前を取得する場合は、以下のように書きます。
SELECT name FROM employees LIMIT 5;
これで、最初の5名の従業員の名前だけが表示されます。
まとめ
今日はSELECT文を使ってデータを抽出する基本について学びました。基本構文から条件指定、複数テーブルのデータ取得、結果のソート、重複データの排除、集約関数の使用、結果の制限まで色々な機能がありますね。

わかりました!データベースから必要な情報を簡単に取得できるんですね。

その通り!データベースの基本を理解することで、より効率的に情報を扱えるようになるよ。これからも頑張って学んでいこうね!