Oracle Database(以下Oracle DB)は世界でもトップクラスのシェアを誇るDBです。
今回は、Oracle DBでのINSERT文についてご紹介します。
SQL文の知識は他のDBでも使えることが多いです。
また、プログラミング言語と比べて変化も速くないので、ここで身に付けたことは今後も活かせるでしょう。
記事の信頼性:未経験からIT企業の受託企業へ転職に成功。現役プログラマーの「しう」がOracle DBのINSERT文について書いています。
INSERT文【行の追加】
INSERT文での行の追加方法をご紹介します!
Oracle DBでは、列リストを指定する場合と、指定しない場合があります。
- INSERT文の構文
- 列リストの指定あり
- 列リストの指定なし
の順にみていきましょう!
INSERT文の構文
INSERT文の構文は次ようになります!
INSERT INTO <表名> (<列名>, ・・・)
VALUES (<値>, ・・・)
列名は省略することもできます。
INSERT文は実務でも使う場面が多いので、身につけておきましょう。
テスト用のデータを入れたい時にINSERT文を利用したりするねんな。
開発現場でテストする際には必須のSQL文やで!
列リストの指定あり
列リストの指定ありの場合は、次のように利用します!
INSERT INTO s1 (n, s1)
VALUES (1, 'SIU')
次のSELECT文で追加された内容を確認しましょう。
SELECT * FROM s1;
n列に1を、s列にSIUを追加していることがわかりますね。
この時、<列>の数と追加をする<値>の数が同じでないとエラーになります。
列の数がnとsで2つ、値の数が 1 とSIUで2つと同じになっています。
列リストの指定なし
列リストの指定なしの場合は、次のように利用します!
INSERT INTO s1
VALUES (1, 'SIU')
こちらも下の写真のように、追加をすることができています。
この列リストを指定しない場合は、表の<列>の数と同じになるように<値>の数を指定する必要があります。
また、VALUESの後に記載する順番や型にも気を付けるようにしましょう。
複数の列を追加する場合【サブクエリの利用】
INSERT文では複数の行からデータを追加することもできます!
サブクエリを利用した構文は次のようになります。
INSERT INTO <表名> (<列名>, ・・・)
SELECT ・・・
今まで、2行目の
VALUES (<値>, ・・・)
で追加していた部分が
SELECT ・・・
に変わっていますね。
これはSELECT文で複数行から取得した値を利用しています。
具体的なコードは次のようになります!
INSERT INTO t0
SELECT n, s1, s2 FROM t0
このコードでは
SELECT n, s1, s2 FROM t0
の部分で、t0テーブルからn, s1, s2の値を取得しています。
そして、取得した値を
INSERT INTO t0
で追加しています。
このようにサブクエリを利用することで、他の表からデータを追加することもできます。
この書き方は開発現場でも出てくるから身につけておいてや!
複数のテーブルからデータを取得するような、ややこしいSQL文と遭遇したりするねん笑
マルチテーブルINSERT
マルチテーブルINSERTでは、複数のテーブルにまとめて行の追加をすることができます!
Oracle DBには便利な機能がついていますね。
👇マルチテーブルINSERTについては、こちらの記事でまとめています。
参考にしてくださいね。
まとめ
いかがでしたか?
今回は、Oracle DBのINSERT文について
- INSERT文【行の追加】
- 複数の列を追加する場合【サブクエリの利用】
- マルチテーブルINSERT【複数テーブルにINSERT】
の順番でご紹介しました!
INSERT文はOracle DB以外でも利用します。
ぜひ、身に付けてみてくださいね!
☟あわせて読みたい 「しう」のオススメブログ
コメント