
いつも楽しく拝見させて頂いています。
初心者ですが宜しくお願いします。
シングルクォーテーションとダブルクォーテーションの使用方法について質問させて頂きます。
select文でテーブル名を指定するときはそのまま(たとえば'名前'じゃなく名前)しないとエラーになります。そういう風なシングルクォーテーション(又はダブルクォーテーション)を使ってはいけないところ、またシングルクォーテーションにしないといけないところ、ダブルクォーテーションにしないといけないところを教えて頂けますでしょうか?もし両方OKならその違い等も教えていただけるとうれしいです。
以上宜しくお願いします。
No.2ベストアンサー
- 回答日時:
文字定数は、「'」で囲む必要があります。
例)SELECT 'ABC' →文字定数の'ABC'と解釈される
SELECT ABC →ABCは、表名や列名と解釈される
数値定数は、多くのRDBMSでは「'」で囲みませんが、MySQLでは独自仕様として囲むことが可能です。
例)SELECT 123 →数値定数の123
SELECT '123' →一般的なRDBMSでは文字として扱われる。MySQLでは数値としても扱える
殆どのRDBMSには予約語があり、RDBMSでは予約語を頼りに構文解析します。表名や列名に英単語やその組み合わせを使おうとすると、予約語とぶつかってしまうことがあります。
例)SELECT FROM FROM →予約語のSELECT FROMの間に「*」や列名が指定されておらず、RDBMSは構文誤りと認識する
それを回避するために、標準SQLでは「"」で表名や列名を囲みます。MySQLでは、文字コードにANSIを使う場合は、「"」で、それ以外には独自仕様で「`」(バッククォーテーション)を使います。
例)SELECT "FROM " FROM →多くのRDBMSでは「"」で囲むことで、RDBMSに最初の「FROM」は、列などの名前であることを知らせる
SELECT `FROM` FROM →ANSI以外のMySQLでは、「`」(バッククォーテション)で囲む
また、「-」(ハイフォン)を表名や列名に使う場合、「"」で囲まないと、SQLでは減算と解釈されます。このように、「"」で囲むことで、記号なども名前に使用することができます。
例)SELECT ABC-DEF →列ABCと列DEFの減算と解釈される
SELECT "ABC-DEF" →列「ABC-DEF」と解釈される
SELECT `ABC-DEF' →ANSI以外のMySQLでは、「"」でなく「`」(バッククォーテション)を使用
文字コードでバッククォーテーションを使ったりダブルクォーテーションを使うことがあるんですね。ありがとうございました。とても参考になりました。
No.1
- 回答日時:
テーブル名やフィールド名はバッククォーテーション「`」です。
値や文字列はシングルクォーテーションを使うのが一般的です。
シングルクォーテーションはダブルクォーテーションと同等ですが、
SQLは多くのプログラミング言語と連携してつかうケースが多く、
例えばPHPで書く場合
$sql="SELECT * FROM `hoge` WHERE `fuga`='$piyo'";
とするときれいにかけますが
$sql='SELECT * FROM `hoge` WHERE `fuga`="$piyo"';
としても$piyoは変数として処理されません。
これは多くのプログラム言語でシングルクォーテーションで括った
場合は変数を展開しないという決まりがあるからです。
したがってSQLではシングルクォーテーションを括り文字として
使った方がスマートです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ホテル・旅館 ホテルの厚意でのアップグレードの場合 5 2023/06/10 13:18
- レディース トイレットペーパー? 女性に質問です。 男性の回答はお控え下さいm(_ _)m 女性に質問です。 ト 2 2023/02/25 21:11
- お菓子・スイーツ サーティワンについてで アイスの入れる袋 小、パイント、クォート、中、大、ってそれぞれ何個のシングル 2 2022/09/17 10:51
- 一眼レフカメラ SFP モジュールについて 1 2023/06/04 14:54
- 日用品・生活雑貨 節約のためにはシングルロールでしょうか?トイレットペーパーはダブルとシングルの2種類ありますが節約の 4 2022/12/11 18:20
- 電気・ガス・水道業 ビジネスホテルのシングル一室にかかる電気代はについて質問いたします。 わかる方いらっしゃいましたが、 3 2022/06/08 19:17
- お酒・アルコール 水割りが得かロックが得か 6 2022/07/18 07:58
- ホテル・旅館 新宿近辺で素泊まりで安いホテルを探しています ホテル松の井 新宿ノースホテル 1 2023/06/27 03:56
- ホテル・旅館 新宿近辺で素泊まりで安いホテルを探しています ホテル松の井 新宿ノースホテル 3 2023/06/22 11:33
- JavaScript HTML,JS初心者です。 2つのselectボックスが有り その選択の組み合わせにより 指定した文 3 2022/03/31 23:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【初歩】ラジオボタンをつかっ...
-
SQLでカラムを追加し、条件に合...
-
PHP 画像のアップロード Qiita
-
SQLです!!教えてください。
-
下の画像はSQLの4大命令の性質...
-
`picture` varchar(255) のコマ...
-
php テーブルを作れない
-
WHERE `年月日` = '晴' OR `年...
-
SQLです教えてくださいお願いし...
-
SQLを作ったのですがうまくいき...
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
SQLです教えてください。
-
SQLです教えてくださいお願いし...
-
SQLです!!教えてください。
-
SQL任意に並び替えをしたい
-
MySQLのテーブル作成でハイフン...
-
同一日に複数レコードがある場...
-
MAMP 99ドル約1.6万円 高い...
-
(初心者)MySQLやmaraDBで、crea...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
mysqlコマンドでSQL文が実行で...
-
シングルクォーテーションとダ...
-
cseデータ閲覧時に文字化け
-
mysqlへのインポート処理がうま...
-
ERROR 1054 (42S22) 原因不明です
-
MySQLのLOAD DATA INFILEコマン...
-
mysqlをバックアップするツール...
-
SELECTした値との比較
-
MySQLリファレンスマニュアル(...
-
mysqlの操作について
-
mysqlのmatch() against()で検...
-
PHP+mysql データ重複登録
-
mysql超初心者です。テーブルへ...
-
MAX()でENUMの内部番号が最大の...
-
now()
-
PHPの質問です、ご回答いただけ...
-
MySQLで困っています。。
-
MySQLカラム名は日本語と英数字...
-
mysqlがインストールされている...
-
副問合せにLIKE文を使う方法は...
おすすめ情報