【MySQL】INSERT構文を使ってデータを挿入する

mysqlMySQL
書いてる人
あいりゅー

プログラミングを学びながら更新しています。
iPhone/iPad/Mac/Apple WatchなどのApple製品はこちらで主に更新しています。
麻雀の反省をひたすら掲載してるブログもやってます。

あいりゅーをフォローする

このページについて

このページではMySQLでテーブルに対してデータを挿入するINSERT構文の使い方を解説しています。INSERT構文のオプションなども紹介しています。

INSERT構文とは

そもそもINSERT構文が何かというと、これは既存のテーブルに対して新しい行(レコード)を挿入する時に使います。そもそもテーブルを作成していないという方はテーブルを作成する方法まとめを参考に、テーブルを作成してください。

INSERT構文の解説

それではINSERT構文の解説をしていきます。前提としてuseで使用するデータベースを指定することと、すでにテーブルが作成されている事の2つが条件となります。

insertの基本的な構文は以下の通りです。

insert into テーブル名 values(内容1,内容2);

テーブル名はそのままの意味ですね。使用しているデータベース内に指定したテーブル名があればそのテーブルを使用しますが、別のデータベース内にあるテーブル名を指定すると1146(42S02)というエラーになります。

その後にあるvaluesはカラムの数だけ書きます。つまりテーブルのカラムが4つならvalues(内容1,内容2,内容3,内容4)となります。これはカラムの順番通りになっているので、あらかじめカラムの順番とか調べておきましょう。そしてカラムのデータ型に一致していない場合はエラーとなるのでそこも注意しましょう。

内容を省略した場合どうなるのかというと、そのカラムの設定によってデフォルト値というのが挿入されます。PRIMARYキーに設定したカラムは必ず一意のデータが入る必要がありますし、何も入力しなかった場合にはエラーとなります。(自動インクリメントにした場合はエラーになりません。)

逆にキー設定していない、NULLが扱えるユニークキーなどを未入力にした場合、NULLが入ります。カラムの設定でデフォルト値を変更していれば、その内容が自動で挿入されます。

3カラム(id,name,lv)に対して特定のカラムのみにデータを挿入する場合はカラムを指定します。カラム指定の方法は以下のように書きます。

insert into テーブル名 (カラム1,カラム2,カラム3) values(カラム1の内容,カラム2の内容,カラム3の内容);

カラムの位置とカラムの内容が対応しているのがポイントです。この通りに記述すればカラムがズレて登録されるミスもなくなります。仮にこれをカラム3だけに登録した場合は、カラム1と2はデフォルト値が扱えるならNULLが入ります。特定のカラムにだけデータを入れた行を挿入する場合は

insert into テーブル名 (カラム2,カラム3) values(カラム2の内容,カラム3の内容);

のように書きます。

計算結果を入れる

カラムの内容を参照してカラムに計算結果を入れることもできます。以下が正常に機能するパターンです。

insert into テーブル名 (カラム1,カラム2) values (カラム1,カラム1+1);

この場合カラム1に数値を入れれば、カラム2には「カラム1の数値に1加算した数値」が入ることになります。実際に実行するとこのようになります。

計算結果

逆に正常に機能しないパターンは以下の書き方です。

insert into テーブル名 (カラム1,カラム2) values(カラム2+1,1);

この場合は「カラム2の数値に対して1加算したものをカラム1に挿入」という書き方になりますが、カラム1にデータを挿入する時点ではカラム2はまだデータがありません。なのでこの場合は参照エラーとなり、挿入ができません。そのためカラム1には計算結果ではなく0が挿入されます。

カラム計算

INSERTの注意点

INSERT構文はあくまでも「行を挿入」する機能です。なのでどこか1つのカラムのみにデータを挿入したいと思って使ったとしても「新たに行を追加して特定のカラムにだけデータを挿入」という処理になります。このケースの場合、正しい構文はUPDATEになります。

まとめ

INSERT構文は「新しい行を挿入」する文です。そのため特定の一ヶ所だけを挿入とかいう使い方はできません。上手く扱うことができれば計算結果を自動で入れたりと、細かい使い方もできます。

MySQLの用語集
MySQLでよく使う・よく見る用語集です。知っておくと検索とかも便利になります。
ローカル環境の整え方
MAMPを使ってローカル環境を整える方法を紹介。
MySQLデータベースに接続する方法
MAMPのデータベースと、レンタルサーバーのデータベースに接続する方法
MySQLの基本コマンド
MySQLへ接続してまず使う基本コマンドの一覧です。
データベースの作成
ターミナル・phpMyAdminでのデータベースの作成方法をそれぞれ解説。
テーブルの作成
ターミナル・phpMyAdminのそれぞれでテーブルを作成する方法と、作成と同時にPRIMARYやUNIQUEの付与などの方法を紹介。
キーの種類と機能
カラムに設定出来るキーの種類と機能を解説。
正規化
リレーショナルデータベースを使う上で必須となる正規化について。データの追加や更新などで手間を省く方法としても使えます。
ALTER TABLE
ALTER TABLE構文を使って作成済みのテーブルに対して操作を行う。PRIMARYの付与やカラムの移動・名前変更・追加・削除なども行えます。
INSERT構文
INSERT構文を使って指定テーブルにデータ(行)を挿入する方法の解説です。
UPDATE構文
UPDATE構文を使って指定テーブルのカラムを一括更新、もしくは指定レコードの指定カラムのみを更新する方法の解説です。
SELECT構文
SELECT構文を使って指定したテーブルからデータを取得する方法の解説です。
JOIN
JOINを使ってテーブル同士を結合する方法の解説です。
タイトルとURLをコピーしました