INSERT文
■INSERT文
INSERTはテーブルにデータを登録します。
INSERT文の構文は以下になります。
INSERT INTO TABLE名 (列名1,列名2,・・・) VALUES (値1,値2)
例えば部署テーブルにデータ(レコード)を登録する場合、以下となります。
INSERT INTO DEPARTMENT (DEPARTMENT_CD, DEPARTMENT_NM) VALUES ('100', '営業1部')
確認問題
■部署テーブルに適当にレコードを後5件登録して下さい。
>答え
例えばですが、以下のように登録できます。
INSERT INTO DEPARTMENT (DEPARTMENT_CD, DEPARTMENT_NM) VALUES ('100', '営業1部')
INSERT INTO DEPARTMENT (DEPARTMENT_CD, DEPARTMENT_NM) VALUES ('101', '営業2部')
INSERT INTO DEPARTMENT (DEPARTMENT_CD, DEPARTMENT_NM) VALUES ('200', '技術1部')
INSERT INTO DEPARTMENT (DEPARTMENT_CD, DEPARTMENT_NM) VALUES ('201', '技術2部')
INSERT INTO DEPARTMENT (DEPARTMENT_CD, DEPARTMENT_NM) VALUES ('300', '人事部')
部署CDはプライマリキーですので、同じ値を登録することができません。
登録しようとすると以下のようなエラーとなります。
ERROR: 重複キーが一意性制約"department_pk"に違反しています
DETAIL: キー (department_cd)=(100) はすでに存在します
また部署CDの値を見て頂けるとお気づきになるかもしれないですが、
100番台は営業部、200番台は技術部というように意味を持つことが多いです。
反対に意味を持たない値の場合はIDとしてカラムの名前を定義することが多いです。
(この場合は部署IDとかになる)
■社員テーブルに登録するINSERT文を考えてみて下さい。
>答え
INSERT INTO STAFF (STAFF_CD, DEPARTMENT_CD, NAME, AGE, SEX, MAIL, BLOOD_TYPE, JOINED_DATE) VALUES
('10001', '101', '鈴木一郎', 25, '男', 'ZZZ@a.co.jp', 'A', '2016/04/01')
どうでしょう?合っていましたでしょうか?
基本的な構文は同じです。AGEはINTEGERなので、シングルクォテーションがなくても登録可能です。
JOINED_DATEはDATE型なので日付以外を登録するとエラーとなります。