SELECT 列名, 列名, ... FROM テーブル名 WHERE 条件式;
・WHERE句がなければ全行表示。
ログイン画面から実行。
oddtbs=> select tel, name from emp where gender = 2;
tel | name
---------+----------
22-2222 | 斎藤洋子
11-1111 | 鈴木律子
88-8888 | 吉田美樹
(3 rows)
SELECT データ, データ, ... FROM テーブル名 WHERE 条件式;
ログイン画面から実行。
oddtbs=> select code, name || 'さんの電話番号は' || tel || 'です' from emp;
code | ?column?
--------+-------------------------------------
564001 | 鈴木義男さんの電話番号は11-1111です
564002 | 斎藤洋子さんの電話番号は22-2222です
564008 | 吉田隆士さんの電話番号は88-8888です
564007 | 鈴木律子さんの電話番号は11-1111です
564003 | 吉田美樹さんの電話番号は88-8888です
(5 rows)
SELECT データ[ AS 別名], データ[ AS 別名], ... FROM テーブル名 WHERE 条件式;
ログイン画面から実行。
oddtbs=> select code as 番号, name || 'さんは' || age || '才です' as 名前と年齢 from emp;
番号 | 名前と年齢
--------+------------------------
564001 | 鈴木義男さんは58才です
564002 | 斎藤洋子さんは44才です
564008 | 吉田隆士さんは24才です
564007 | 鈴木律子さんは33才です
564003 | 吉田美樹さんは33才です
(5 rows)
INSERT INTO テーブル名(列名, 列名, ...) VALUES(値, 値, ...);
・指定されていない列はNULLがはいる。
次のSQLをファイルとして作成。(emp_insert012.sql)
ログイン画面から実行。
oddtbs=> \i emp_insert012.sql
...
確認
oddtbs=> select * from emp;
code | name | gender | age | tel
--------+----------+--------+-----+---------
| 鈴木義男 | | | 11-1111
564002 | 斎藤洋子 | | |
| 山田美樹 | | 33 |
564004 | 田中秀明 | | | 44-4444
(4 rows)
基本的にNULLは = などの演算子では比較しても無意味なので、IS NULLやIS NOT NULLという特殊な演算子で比較する。
ログイン画面から実行。
oddtbs=> select * from emp where code = null; code | name | gender | age | tel ------+------+--------+-----+----- (0 rows) oddtbs=> select * from emp where code is null; code | name | gender | age | tel ------+----------+--------+-----+--------- | 鈴木義男 | | | 11-1111 | 山田美樹 | | 33 | (2 rows) oddtbs=> select * from emp where code is not null; code | name | gender | age | tel --------+----------+--------+-----+--------- 564002 | 斎藤洋子 | | | 564004 | 田中秀明 | | | 44-4444 (2 rows)
NULLはINSERTやUPDATEのなかでは通常の値と同じように扱うことができる。
次のSQLをファイルとして作成。(emp_insert013.sql)
ログイン画面から実行。
oddtbs=> \i emp_insert013.sql
...
ログイン画面から実行。
oddtbs=> select * from emp; code | name | gender | age | tel --------+----------+--------+-----+--------- | 鈴木義男 | | | 11-1111 564002 | 斎藤洋子 | | | | 山田美樹 | | 33 | 564004 | 田中秀明 | | | 44-4444 (4 rows) oddtbs=> update emp set tel = null; UPDATE 4 oddtbs=> select * from emp; code | name | gender | age | tel --------+----------+--------+-----+----- | 鈴木義男 | | | 564002 | 斎藤洋子 | | | | 山田美樹 | | 33 | 564004 | 田中秀明 | | | (4 rows)