SQLの雑多な機能
目次
便利な機能
コメント
・範囲コメント
1 2 3 |
/* ←ここから範囲コメント 何書いても飛ばす ここまでが範囲コメント→ */ |
・行コメント
1 2 3 |
-- ← ここから行末までが行コメント select * ← 行頭じゃなくても行コメント from users; |
列の別名
SQLでは列や式に別名(Alias)をつけることができる。
別名をつける理由は以下の通り。
(a)ヘッダのラベル名を変えるため
(b)長い列名や複雑な式に簡単な名前をつけて参照するため
(c)同じ名前を2回書かずに済ますため
1 2 |
select id as ID, name as 名前, height as 身長 from members; |
(asは省略可能)
1 2 3 4 5 6 |
id | 名前 | 身長 ----+------+------ 102 | ミカサ | 170 105 | サシャ | 168 (2 rows) |
※実行結果のラベルは「ID」だけ変わらずに「id」のままになっている。
なぜかというと、SQLでは基本的に大文字と小文字を区別しない仕様なので、
「ID」と指定しても「id」と同じだと見なされるため。
この場合は「"ID"」のようにダブルクォーテーションで囲むとよい。
テーブルの別名
SQLでは、テーブルにも別名(Alias)が付けられる。
1 2 3 4 5 |
select m.id, m.name, m.height from members m where m.gender = 'F' order by m.id; |
こうする理由は2つある。
(a)SQLのキーワードと同じ名前の列名を使うとき、キーワードでないことを明示するため。
(b)1つのSQLで複数のテーブルを扱う場合、どのテーブルの列名なのかを明示するため。
演算子
文字列結合演算子
文字列を結合するには「||」という演算子を使います。
1 |
select 'Hello, ' || 'World' || '!'; |
1 2 3 4 |
?column? --------------- Hello, World! (1 row) |
パターンマッチ演算子
「like」という演算子を使うと、文字列がパターンにマッチしているかどうかを調べることができる。
「%」・・・どんな文字列にもマッチする(0文字でもよい)。
「_」・・・どんな1文字にもマッチする。
・「ン」で終わる名前だけを検索
1 2 3 |
select name from members where name like '%ン'; |
in演算子
「in」演算子は、複数の値を列挙して、その中に指定値が含まれているかどうかを調べる演算子。
1 2 3 4 |
select * from members where name in ('エレン', 'ミカサ', 'アルミン') order by id; |
null
nullとは値(データ)がないことを表すキーワード。
nullかどうかを調べるには、「is null」と「is not null」を使う。
1 2 3 |
select name from members where height is null; |
感想
パターンマッチ演算子や、in演算子はたまに使うので覚えておこうと思いました!また更新します!