情報処理とは何から、データベースの基本的な話(情報処理試験のデータベーススペシャリスト程度の話まで)を書く、土日のシリーズ「Hello World程度のデータベース」です。
いま、SQLをやっています。
SQLは検索(select)、挿入(insert)、削除(delete)、更新(update)とあって、前回でSELECTが終わったので、今回はINSERTです。
■INSERTの種類
INSERTには
1行追加する
1レコード全部指定
項目を指定して追加
複数行追加する
という方法があります。
■1行追加する
INSERT INTO テーブル名 VALUES (値1,値2,・・・・)
と1レコード分の値を指定して入力できます。
たとえば、
![](https://www.geocities.co.jp/xmldtp/ac_sqlselect3.jpg)
というテーブルがあったとき
INSERT INTO SYUSSEKI_TBL VALUES (4, 1, 120); |
と書けば、値を追加します。
ただ、こうすると、1レコードの値をすべて指定しないといけませんが、指定しない項目はデフォルト値でいい場合は、
INSERT INTO テーブル名(項目1,項目2・・・) VALUES (値1,値2,・・・・)
のように、項目を指定して挿入できます(省略不可の項目を省略することは出来ません)
たとえば、
![](https://www.geocities.co.jp/xmldtp/ac_sqlselect10.jpg)
というテーブルに対して(映ってないところに項目が続きます)
INSERT INTO OUBO_TBL ( OUBOID, SEI, SEI_KANA, MEI, MEI_KANA, OUBONEN ) VALUES (5, '平野', 'ひらの', '麻樹子', 'まきこ', 2005); |
というように、項目を指定してもOKです(文字の値は’’で囲みます)
なお、項目を指定したほうが、将来テーブル構造の変更が起こった場合のことを考えると、いいかもしれません。(項目を書いておかないと、項目が増えたら、そのたびに修正しないといけない)
■複数の行の追加
上記のVALUES(値・・・)のところを、SELECT文に変えると、検索結果を挿入することが出来ます。たとえば、
INSERT INTO SHAIN_TBL ( SHAINID, SEI, SEI_KANA, MEI, MEI_KANA ) SELECT OUBO_TBL.OUBOID,OUBO_TBL.SEI, OUBO_TBL.SEI_KANA, OUBO_TBL.MEI, OUBO_TBL.MEI_KANA FROM OUBO_TBL WHERE OUBO_TBL.OUBOID=5; |
のように、応募テーブルの検索結果を社員テーブルに追加することも出来ます。
ということで、とりあえずINSERTはここまで