🦔
[SQL基礎]SELECT, WHERE, ORDER BY, LIMIT, OFFSET
SQLの基礎についてです。
私のSQL学習ツールは以下のものたちです!問題もあるので解きながら学習しています。
SELECT文
"データベースから、データを取得する命令"
【基本型】
SELECT [取得したい要素] FROM [使用テーブル];
以下のようなtableがあったとする.
id | name | age |
---|---|---|
1 | narita | 25 |
2 | hamaya | 25 |
3 | kawakami | 31 |
■ 特定要素のみの取得
このuserテーブルのnameのみを取得したい。そうすると、
SELECT name FROM user;
■ 複数の指定
では今度は、このuserテーブルのidとnameを取得したい。そうすると、
SELECT id,name FROM user;
このように,
で繋げて記述で可能
■ tableの全てを取得したい
このuserテーブルの全てを取得したい。そうすると、
SELECT * FROM user;
*
で全ての取得が可能!
WHERE: 条件文
SQLのSELECT文や他のクエリ文で使用される条件を指定する
(テーブルデータの検索条件を指定する)ための句(節)。
データのフィルタリングや検索条件の指定に使用される。
【基本型】
SELECT [取得したい要素] FROM [使用テーブル] WHERE [条件文];
条件文は比較演算子や論理演算子を使用して構築される。
比較演算子,論理演算子
比較演算子
演算子 | 説明 |
---|---|
= | 等しい |
<> | 等しくない |
!= | 等しくない |
< | より小さい |
> | より大きい |
<= | 以下 |
>= | 以上 |
BETWEEN | 範囲内 |
IN | リスト内のいずれかに一致 |
LIKE | パターンに一致 |
IS NULL | NULLである |
IS NOT NULL | NULLでない |
論理演算子
演算子 | 説明 |
---|---|
AND | かつ |
OR | または |
NOT | 否定 |
ORDER BY: 並べ替え(ソート)を行う
ORDER BYは並べ替え(ソート)を行ってくれる機能.
【基本型】
SELECT [表示要素名] FROM [テーブル名] ORDER BY [ソートする要素名] [昇順・降順の指定];
■ 昇降順の指定
- ASC :昇順(小さい値から大きい値への順)
- DESC :降順(大きい値から小さい値への順)
ex.
// テーブル名: employees
id | name | age | salary
---+---------+-----+-------
1 | John | 30 | 50000
2 | Alice | 25 | 60000
3 | Bob | 35 | 40000
4 | Claire | 28 | 55000
5 | David | 32 | 45000
このtableからage
を昇順でソートした場合
SELECT * FROM employees ORDER BY age ASC;
■ 二つ以上も可能。
- ageは昇順、salaryは降順で取得する場合
SELECT * FROM employees ORDER BY age ASC,salary DESC;
- ageを昇順で並び替え、ageが同じ場合はsalaryを昇順に
SELECT * FROM employees ORDER BY age ASC,salary;
LIMIT: 取得する行数を決める
LIMIT句は、SQLクエリの結果から特定の行数だけを取得するために使用される。
クエリ結果の先頭から指定した数の行を取得することができるもの。
これに関しては、使えるものと使えないものがある。
mySQLは使用可能。oracleDBは使えない。
【基本型】
SELECT 列1, 列2, ... FROM テーブル名 LIMIT 行数;
以下のようなtableがあったとする。
//テーブル名: employees
id | name | age | salary
---+---------+-----+-------
1 | John | 30 | 50000
2 | Alice | 25 | 60000
3 | Bob | 35 | 40000
4 | Claire | 28 | 55000
5 | David | 32 | 45000
このテーブルから上位3つの行を取得する場合、このように使用できる。
SELECT * FROM employees LIMIT 3;
取得する行数を指定するだけでなく、開始位置も指定することができる。
OFFSET: 開始位置を指定する
同じ上記のemployeesテーブルの、3番目の行から2つの行を取得する場合、
SELECT * FROM employees LIMIT 2 OFFSET 2;
今日は以上!
Discussion