目次
01. コメント
02. SELECT文の基本
03. 条件の指定
04. 条件の指定で論理演算子を使用
05. その他
SQLのコメントの書き方
select * from employee -- コメント
where id = '1'
/*
コメント
*/
select * from employee
where id = '1'
--は1行のコメントを書けます。
/* ~ */は、複数行のコメントが可能です。
全項目の全件を抽出(*)
select * from employee
アスタリスク(*)は全項目を意味します。
whereの条件がない場合は、全件が対象になります。
列を指定して抽出(射影)
select id,name from employee
列(id,name)を指定して列の値を抽出することを射影といいます。
列を指定して抽出(選択)
select * from employee
where id = '1'
行(id = '1')を指定して抽出することを選択といいます。
データの件数を取得(count)
select count(*) from employee
データの件数を取得する場合はcountを使用します。
取得する列名に別名をつける(AS)
select id,name as "test-name" from employee
select id,name "test-name" from employee
別名を付ける場合は「as 名称」または「名称」(※asはつけない)を指定します。
id | test-name |
---|---|
1 | suzuki |
2 | tanaka |
3 | sato |
文字列を結果として表示
select id, '12345' as "test-id" from employee
検索結果に固定の文字列(12345)がある列を追加することも可能です。
id | test-id |
---|---|
1 | 12345 |
2 | 12345 |
3 | 12345 |
列の結果を結合する(||) 連結演算子
select id || name as test1 from employee
select 'test' || id || name as test2 from employee
列の結果を結合する場合はパイプ2つ(||)を付けます。文字列('test')の結合もできます。
※MySQLの場合は、set sql_mode='PIPES_AS_CONCAT' ;の指定が必要。
test1 |
---|
1suzuki |
2tanaka |
3sato |
test2 |
---|
test1suzuki |
test2tanaka |
test3sato |
条件の否定(<> / !=)
select * from employee
where id <> '2'
<>は否定です。
select * from employee
where id != '1'
Oracleの否定は!=です。
nullを検索する (IS NULL)
select * from employee
where romaji IS NULL
nullが対象になります。空文字,空白は対象になりません。
nullではない値を検索する(IS NOT NULL)
select * from employee
where romaji IS NOT NULL
nullでない値が対象になります。
重複行は表示しない(distinct)
select distinct name from employee
重複行は表示しません。nullの場合は、nullとして表示されます。
複数のnullがあった場合はnullでまとめられます。
複数の条件をORで指定する(IN演算子)
select * from employee
where romaji in ('suzuki','tanaka')
それぞれの条件を確認し、条件を満たした行が対象になります。OR演算子と同じ働きです。
IN演算子の否定 (not in)
select * from employee
where romaji not in ('suzuki','tanaka')
inの前にnotを指定します。
部分一致の検索をを行う(LIKE演算子)
select * from employee
where romaji like 'suzu%'
先頭がsuzuで始まる値を検索します。前方一致検索と呼ばれます。%は0文字以上の任意の文字列を表します。
like '%suzu%'とした場合、文字列にsuzuがあれば対象になります。あいまい検索または部分一致検索と呼ばれます。
LIKE演算子の否定 (not like)
select * from employee
where romaji not like 'suzu%'
likeの前にnotを指定します。
範囲検索を行う(BETWEEN演算子)
select * from employee
where id between 2 and 4;
idが2から4までを指定しています。IDの2,3,4を検索します。
BETWEEN演算子の否定 (not between)
select * from employee
where id not between 2 and 4;
betweenの前にnotを指定します。
AかつB 論理積(AND演算子)
select * from employee
where name='田中' and romaji = 'tanaka'
両方とも条件を満たした行が対象になります。
AまたはB 論理和(OR演算子)
select * from employee
where romaji = 'suzuki' or romaji = 'tanaka'
それぞれの条件を確認し、条件を満たした行が対象になります。
Aでない 否定(NOT演算子)
select * from employee
where not romaji = 'suzuki'
条件を満たした行以外の行が対象になります。
列の値を計算する(四則演算)
select price + 10, price - 10, price * 10 , price / 10 from sales
四則演算(足し算、引き算、掛け算、割り算)ができます。
nullを足すと結果はnullになります。例:1 + null = null
選択された行をまとめて列の値を算出する(集約関数)
SELECT SUM(price),AVG(price),MAX(price),MIN(price)
FROM syouhin;
以下は集約関数です。
SUM(合計を返す),AVG(平均を返す),MAX(最大値を返す),MIN(最小値を返す)
関連の記事