4 David 36 Boston age 36 30歳以上 ボストン在住の 人の年齢 id name age city 1 Alice 40 Chicago 2 Brian 23 Seattle 3 Cindy 29 Chicago 4 David 36 Boston select * from customer where age >= 30; select age from customer where city = ‘Boston’;
select * from customer order by age (asc); select * from customer order by age desc; 全件取得、カラム指定、並び替え( ORDER BY) ascending(昇順) デフォルトなので 書かなくてもよい descending(降順) id name age city 1 Alice 40 Chicago 2 Brian 23 Seattle 3 Cindy 29 Chicago 4 David 36 Boston
from customer where name <> ‘Brian’; select * from customer where name like ‘B%’; select * from customer where id in (1,2,3); select * from customer where id = 2 and age >= ‘30’; select * from customer where id = 2 or age >= ‘30’; 14 絞り込み( WHERE) 「!=」とも書ける id name age city 1 Alice 40 Chicago 2 Brian 23 Seattle 3 Cindy 29 Chicago 4 David 36 Boston
min(age) from customer; select max(age) from customer; select avg(age) from customer; 集計 id name age city 1 Alice 40 Chicago 2 Brian 23 Seattle 3 Cindy 29 Chicago 4 David 36 Boston
集約(GROUP BY) id name age city 1 Alice 40 Chicago 2 Brian 23 Seattle 3 Cindy 29 Chicago 4 David 36 Boston id name age city 1 Alice 40 Chicago 3 Cindy 29 Chicago id name age city 2 Brian 23 Seattle id name age city 4 David 36 Boston city age Chicago 40 Seattle 23 Boston 36
from customer); SQLabの問題をやってみる サブクエリ、 EXISTS id name age city 1 Alice 40 Chicago 2 Brian 23 Seattle 3 Cindy 29 Chicago 4 David 36 Boston age 40 id name age city 1 Alice 40 Chicago サブクエリで取得した データを元のクエリで使える
customer sub where sub.age < customer.age); サブクエリ、 EXISTS id name age 1 Alice 40 2 Brian 23 3 Cindy 29 4 David 36 サブクエリから元のクエリを参照 できる id name age 1 Alice 40 2 Brian 23 3 Cindy 29 4 David 36 id name age city customer sub ①
customer sub where sub.age < customer.age); サブクエリ、 EXISTS id name age 1 Alice 40 2 Brian 23 3 Cindy 29 4 David 36 サブクエリから元のクエリを参照 できる id name age 2 Brian 23 3 Cindy 29 4 David 36 id name age city 1 Alice 40 Chicago customer sub ②
customer sub where sub.age < customer.age); サブクエリ、 EXISTS id name age 1 Alice 40 2 Brian 23 3 Cindy 29 4 David 36 サブクエリから元のクエリを参照 できる id name age id name age city 1 Alice 40 Chicago customer sub ③
customer sub where sub.age < customer.age); サブクエリ、 EXISTS id name age 1 Alice 40 2 Brian 23 3 Cindy 29 4 David 36 サブクエリから元のクエリを参照 できる id name age 2 Brian 23 id name age city 1 Alice 40 Chicago 3 Cindy 29 Chicago customer sub ④
customer sub where sub.age < customer.age); SQLabの問題をやってみる サブクエリ、 EXISTS id name age 1 Alice 40 2 Brian 23 3 Cindy 29 4 David 36 サブクエリから元のクエリを参照 できる id name age 2 Brian 23 3 Cindy 29 4 David 36 customer sub ⑤ id name age city 1 Alice 40 Chicago 3 Cindy 29 Chicago 4 David 36 Boston
= customer.city_id; 結合(INNER JOIN, OUTER JOIN) id name age city_id 1 Alice 40 1 2 Brian 23 2 3 Cindy 29 1 4 David 36 4 customer id name 1 Chicago 2 Seattle 3 Arizona 4 Boston city id name age city_id city.name 1 Alice 40 1 Chicago INNER JOINは両方のテーブル に存在する要素のみ表示 ①
= customer.city_id; 結合(INNER JOIN, OUTER JOIN) id name age city_id 1 Alice 40 1 2 Brian 23 2 3 Cindy 29 1 4 David 36 4 customer id name 1 Chicago 2 Seattle 3 Arizona 4 Boston city id name age city_id city.name 1 Alice 40 1 Chicago 2 Brian 23 2 Seattle INNER JOINは両方のテーブル に存在する要素のみ表示 ②
= customer.city_id; 結合(INNER JOIN, OUTER JOIN) id name age city_id 1 Alice 40 1 2 Brian 23 2 3 Cindy 29 1 4 David 36 4 customer id name 1 Chicago 2 Seattle 3 Arizona 4 Boston city id name age city_id city.name 1 Alice 40 1 Chicago 2 Brian 23 2 Seattle 3 Cindy 29 1 Chicago INNER JOINは両方のテーブル に存在する要素のみ表示 ③
= customer.city_id; 結合(INNER JOIN, OUTER JOIN) id name age city_id 1 Alice 40 1 2 Brian 23 2 3 Cindy 29 1 4 David 36 4 customer id name 1 Chicago 2 Seattle 3 Arizona 4 Boston city id name age city_id city.name 1 Alice 40 1 Chicago 2 Brian 23 2 Seattle 3 Cindy 29 1 Chicago 4 David 36 4 Boston INNER JOINは両方のテーブル に存在する要素のみ表示 ④
customer.city_id = city.id; 結合(INNER JOIN, OUTER JOIN) id name age city_id 1 Alice 40 1 2 Brian 23 2 3 Cindy 29 1 4 David 36 4 customer id name 1 Chicago 2 Seattle 3 Arizona 4 Boston city id name customer.id customer.name age 1 Chicago 1 Alice 40 1 Chicago 3 Cindy 29 OUTER JOINは元とするテーブルに 存在する要素は全て表示 ① ※left outer join = left join = outer join だが、right と紛らわしいので left は明示するべき
customer.city_id = city.id; 結合(INNER JOIN, OUTER JOIN) id name age city_id 1 Alice 40 1 2 Brian 23 2 3 Cindy 29 1 4 David 36 4 customer id name 1 Chicago 2 Seattle 3 Arizona 4 Boston city id name customer.id customer.name age 1 Chicago 1 Alice 40 1 Chicago 3 Cindy 29 2 Seattle 2 Brian 23 OUTER JOINは元とするテーブルに 存在する要素は全て表示 ②
customer.city_id = city.id; 結合(INNER JOIN, OUTER JOIN) id name age city_id 1 Alice 40 1 2 Brian 23 2 3 Cindy 29 1 4 David 36 4 customer id name 1 Chicago 2 Seattle 3 Arizona 4 Boston city id name customer.id customer.name age 1 Chicago 1 Alice 40 1 Chicago 3 Cindy 29 2 Seattle 2 Brian 23 3 Arizona null null null OUTER JOINは元とするテーブルに 存在する要素は全て表示 ③
customer.city_id = city.id; SQLabの問題をやってみる 結合(INNER JOIN, OUTER JOIN) id name age city_id 1 Alice 40 1 2 Brian 23 2 3 Cindy 29 1 4 David 36 4 customer id name 1 Chicago 2 Seattle 3 Arizona 4 Boston city id name customer.id customer.name age 1 Chicago 1 Alice 40 1 Chicago 3 Cindy 29 2 Seattle 2 Brian 23 3 Arizona null null null 4 Boston 4 David 36 OUTER JOINは元とするテーブルに 存在する要素は全て表示 ④