質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL Workbench

MySQL Workbenchは、オープンソースのデータベースモデリングツールです。ビジュアルなデータベース設計・SQL開発・サーバー設定・ユーザー管理・バックアップといった様々な管理ツールを備えます。

Q&A

解決済

2回答

820閲覧

SQL文 INSERT INTOについて質問です

morita05041984

総合スコア3

MySQL Workbench

MySQL Workbenchは、オープンソースのデータベースモデリングツールです。ビジュアルなデータベース設計・SQL開発・サーバー設定・ユーザー管理・バックアップといった様々な管理ツールを備えます。

0グッド

0クリップ

投稿2022/11/03 01:31

SQL文で疑問に感じたことがございます。
当方、初心者でしてお手柔らかにお願いいたします。

質問です。

INSERT INTO テーブル名 VALUES(?,?,?),[レコード名1,レコード名2, レコード名3]

と、データー追加のコードがありますが、

『INSERT INTO テーブル名 VALUES(レコード名1,レコード名2,レコード名3)』ではだめなのでしょうか。

これは、もう決まりなのでこういうものなんだと、機械的に覚えるべきものなのでしょうか。

どうぞよろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2022/11/03 01:43

普通の SQL ではそんな書き方はできないと思いますが、どのデータベース (PostgreSQL とか MySQL とか) をお使いでしょうか? また、そのコードは何か別の言語 (Java とか PHP とか) に埋め込まれてたりしますか?
archiver

2022/11/03 01:54

構文的な質問なのだから、まず基本の構文はきちんと書きましょうよ。 質問の意味合い的には列名の列挙が省略できるか、ということでしょうか? INSERT INTO テーブル名 (列1,列2,列3) VALUES (値1,値2,値3) ↓ INSERT INTO テーブル名 VALUES (値1,値2,値3) こういう風に書けるかということですかね?
Orlofsky

2022/11/03 07:03

タグは修正できます。 MySQLではPL/pgSQLを使えません。
退会済みユーザー

退会済みユーザー

2022/11/03 23:35

質問者さん、無言ですが、回答が出ているのでそれに対するフィードバックを返してください。役に立った/立たなかったぐらいはすぐに返せるのでは? 役に立たなかったならどこがダメかを書くとより期待に近い回答が出てくるかも。とにかく無言は NG です。
morita05041984

2022/11/05 12:00

大変申し訳ございませんでした。 脱調により一日手術を行っておりまして、返信が遅れてしました。 質問力も乏しく本当に申し訳ない次第です。 >>INSERT INTO テーブル名 VALUES (値1,値2,値3) こういう風に書けるかということですかね? まさにこの通りです。 なぜ?の記号を使うのかが腑に落ちなくて・・。 でもよく考えましたらこのソースがすべて完成して、それから値を入れる(HTMLのインプットタグに数値をいれるてその数値をデーターベースに追加するつもりです)ので、プログラム作成時はハテナにしておく必要があるのではないかと、いま解釈したのですが…あってますかね
morita05041984

2022/11/05 12:06

そもそもvalueは値をいれるものですよね。テーブル作成時は、なにもデーターがないのでとりあえずハテナにしているのかなと、質問しながら何となく理解してきたような気がします。 VALUES(レコード名1,レコード名2,レコード名3)にできないかと質問させていただきましたが、こんなトンチンカンな質問、ありえないですよね。すみません
退会済みユーザー

退会済みユーザー

2022/11/05 14:09 編集

> なにもデーターがないのでとりあえずハテナにしているのかなと 違いますよ。SQL 文をパラメータ化しているのです。「パラメータ化クエリ」などをキーワードにググってください。 ちなみに、疑問符 (?) で指定される位置パラメータマーカーと、名前を付ける名前付きパラメータというのがあります。
morita05041984

2022/11/06 10:20

hoshi-takanori 様 SurferOnWww様 本当にありがとうございました!位置パラメータマーカーを使うのは、プレースホルダ―で誤動作や、セキュリティ面を考慮したものだということですね!!
退会済みユーザー

退会済みユーザー

2022/11/06 10:31 編集

ちょっと理解が違うと思いますよ。 SQL 文をパラメータ化するという手段に、? という位置パラメータを使うか、名前付きバラメータを使うというやり方があるということです。 パラメータ化の「目的」は SQL インジェクションの防止とパフォーマンスの向上です。その他いろいろ副次的な効用もありますが。 ? を使うのは単なる手段の一つです。「目的」と「手段」をゴッチャにしないように。
morita05041984

2022/11/07 10:09

SurferOnWww様 ご回答ありがとうございました!!! インジェクション防止と、パフォーマンス向上をするためにパラメーター化クエリを行うのですね。 パラメーター化クエリを行うために、位置パラメータ(疑問符)を利用すると理解しました あ、あってますかね…
退会済みユーザー

退会済みユーザー

2022/11/07 12:11

位置パラメータ(疑問符)を使うのはクエリをパラメター化するための手段の一つという言い方の方が適当かも。
退会済みユーザー

退会済みユーザー

2022/11/07 12:15 編集

ところで、私は回答したのですから、私への返信は解答欄下のコメント欄にお願いします。
退会済みユーザー

退会済みユーザー

2022/11/08 23:19

このスレッドの課題が解決したのであれば解決に役に立った回答にベストアンサーをつけてこのスレッドはクローズしてください。
guest

回答2

0

SurferOnWww様

返答のやり方もわからず失礼いたしました。

本当にありがとうございました!!

投稿2022/11/07 18:24

編集2022/11/07 18:26
morita05041984

総合スコア3

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/11/07 22:54

自己解決というのは違うでしょ。
guest

0

ベストアンサー

「postgresql insert 構文」をキーワードにググるとかしてみたのでしょうか? 以下のような記事がヒットして、それに質問者さんの疑問に答える情報は十二分に書かれていると思いますけど。

6.1. データの挿入
https://www.postgresql.jp/docs/9.0/dml-insert.html

一度以下の記事を読んでください。

質問するときのヒント
https://teratail.com/help/question-tips

投稿2022/11/03 02:42

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問