A 回答 (3件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
>これの条件をテキスト入力に変更して
>DBから情報を引っ張ってくることは可能でしょうか??
どういう意味でしょう?
「何らかのプログラム上のテキストに入力された内容を、SQL文の条件式にしたい」ということですか?
それであれば、答えは「可能です。」
テキストの中身を一度変数に入れてやり、それとSQL構文に突っ込んでやればいいだけです。
ただそのプログラムの言語や環境回りが不明確なため、ロジックで回答を示すことはできません。
それとも違う意味でしょうか?
補足お願いします。
この回答への補足
返事が遅くなってしまいすみません。
>どういう意味でしょう?
>「何らかのプログラム上のテキストに入力された内容を、SQL文の条件式にしたい」ということですか?
HTMLで作った画面にScriptを使って接続しているのですが
友人にSQL構文でもできると言われたので質問させていただきました。
ネット環境ありです。
No.2
- 回答日時:
どういうインターフェースを想像しているのかがわかりませんが、例えば条件部分を標準入力から受け付けてSQLを発行するシェルスクリプトを組むとかすれば可能だと思います。
返事が遅くなってしまいすみません。
私の想像しているインターフェースは
HTML画面をScriptで接続というかたちでした。
>条件部分を標準入力から受け付けてSQLを発行するシェルスクリプトを組むとかすれば可能
ご指導ありがとうございます!!
その部分を中心に調べてみます。
No.3
- 回答日時:
この手の質問の際には、使用するDBMSの他に、プログラム環境も示さないと適切な答えが返せません。
例えば、PHPで組むとか、PERLでするとか、.net環境でのアクセスであるとか・・・これによって、構文は全く変わりますから・・・一般論で言うと、そのような場合には、2つの方針があります。
一つは、動的SQLと言います。プログラムでSQLを書く時、文字列に、"select **** from **** where ++++"といった感じの値を代入し、これをデータベース側に引き渡す何らかの関数に渡しますよね。この文字列を作成する時に、ユーザーから入力された値を組み込んだ形で作ってやれば良いだけです。
利点は、直裁的で至って簡単。欠点は、DBMSの最適化が効率よく働けなくなること。よほど注意してユーザーから入力された値を検証しないと、SQLインジェクションの可能性がでてくることです。
もう一つは、プリペーアードSQLとか、パラメーターバインドなどと呼ばれる手法です。
これに関しては、構文そのものが周辺環境に完全に依存します。上のような単語で検索してみれば事例は結構調べられると思います。
考え方は、SQL文の中で、ユーザーが入力する部分をパラメータ変数として記述し、SQLを実行する前にパラメータを代入した上でSQLを実行するという手順になります。
利点は、DBMSが最適化を行いやすいこと。パラメータそのものはSQLの一部として解釈されない(又は、システム側でチェック機能が働くため)、SQLインジェクションの可能性が、自分でチェックする時に比べて格段に下がることです。
ちなみに、この次によく出る質問は、ユーザーが指定したカラムだけを出力するように・・・・というパターンです。
これに対しては、前者の動的SQLで対処することになります。
極論は、「ユーザーが入力したSQL文をそのまま実行する」となります。これをやっているのが、DBMSに添付されているコマンドラインユーティリティーですね=^・。・^=
この回答への補足
返事がおそくなりすみません。
OKwaveを使うことが、初めてだったため、とりあえず質問という形をしてしまいました。
あまり詳しくはないのですが書かせていただきます。
HTML画面をScriptで組みます。
SQL構文を使ってDB検索機能を付ける考えです。
ネット環境はあります。
>"select **** from **** where ++++"
知らなかったのでためになりました!!
接続できるか試してみます^^。
>プリペーアードSQLとか、パラメーターバインドなどと呼ばれる手法
少し高度な感じがしますが、しっかり調べてから利用出来るようでしたら
試させていただきます。
>"select **** from **** where ++++"
知らなかったのでためになりました!!
接続できるか試してみます^^。
上記の文章…表現がおかしかったですね^^;。
違う構文だと思ってしまいました。。
訂正します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle SQL update方法 2 2022/06/22 14:07
- MySQL 複数DBテーブルからのデータ取得 3 2022/05/17 15:02
- MySQL SQLについて教えて下さい。 SELECT分で、あるカラムにある日付の 半年先のデータを取って来たい 3 2022/12/07 22:28
- Oracle SQLについて教えて下さい。 主キーを持ったカラムを主キーの機能を持たせたまま カンマ区切りで文字列 1 2023/03/27 22:47
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- PHP php my adminより取り出したデータ表示 2 2022/06/15 11:56
- システム 帳票出力を行う単体テストのテストデータが作成できません 2 2023/08/26 21:26
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データベースのINT型項目にNULL...
-
passwordが入れられません・・・・
-
アクセスで数値型のフィールド...
-
フォームで入力しても反映されない
-
Access(office)のマクロの「値...
-
日付のテキストボックスに(例...
-
ファイルメーカー 一ヵ月後の...
-
Excelで入力したデータを自動的...
-
オラクルのテーブルでの入力制限
-
ACCESS2000にて「うるう年」の...
-
Accessで西暦の年だけ表示したい
-
アクセスのテキストボックスの...
-
アクセス コンボボックスのリ...
-
Accessでの和暦の入力
-
アクセス2007 フォーム入力で...
-
ACCESS 時間の入力方法
-
このオブジェクトに値を代入す...
-
accessのテーブルの書式と定型入力
-
ACCESS2000 パラメータークエリー
-
Access2007、フォームのテキス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データベースのINT型項目にNULL...
-
passwordが入れられません・・・・
-
アクセスで数値型のフィールド...
-
フォームで入力しても反映されない
-
Excelで入力したデータを自動的...
-
ACCESS2000にて「うるう年」の...
-
Access(office)のマクロの「値...
-
入力規則違反-任意のエラーメ...
-
エクセル 自動入力
-
ACCESS 時間の入力方法
-
このオブジェクトに値を代入す...
-
アクセスのテキストボックスの...
-
Access2007 textboxに入力でき...
-
ユーザーフォームで数字にカン...
-
sqlldrの使用方法について
-
アクセス コンボボックスのリ...
-
Access2007、フォームのテキス...
-
Accessで西暦の年だけ表示したい
-
EXCELのユーザーフォームで入力...
-
ファイルメーカー 一ヵ月後の...
おすすめ情報