MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLの引用符の使い方を解説!バッククォートとシングルクォートの違い

MySQLでは、主に「バッククォート(`)」と「シングルクォート(')」という2種類の引用符を使い分けます。それぞれ役割が異なり、バッククォートはテーブル名やカラム名(識別子)を囲むために使用し、シングルクォートは文字列などの値を囲むために使用します。

バッククォートとシングルクォートの基本的な違い

  • バッククォート(`):テーブル名・カラム名など、データベース内のオブジェクト名を囲むのに使います。予約語や特殊文字を含む名前を安全に扱いたい場合に特に有効です。
  • シングルクォート('):INSERT文やWHERE句などで指定する文字列の値を囲むのに使います。

それでは、実際の例を見ていきましょう。まずは動作確認用のテーブルを作成します。

サンプルテーブルの作成

mysql> create table QuotesDemo
    -> (
    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> UserName varchar(20),
    -> UserAge int
    -> );
Query OK, 0 rows affected (2.53 sec)

次に、INSERTコマンドを使ってレコードを挿入します。ここで注目してほしいのは、カラム名をバッククォートで囲み、挿入する値('John'など)をシングルクォートで囲んでいる点です。

mysql> insert into QuotesDemo(`UserName`,`UserAge`) values('John',23);
Query OK, 1 row affected (0.21 sec)
mysql> insert into QuotesDemo(`UserName`,`UserAge`) values('Carol',21);
Query OK, 1 row affected (0.24 sec)
mysql> insert into QuotesDemo(`UserName`,`UserAge`) values('Sam',22);
Query OK, 1 row affected (0.11 sec)

SELECT文で全レコードを表示する

作成したテーブルからすべてのレコードを取得してみましょう。この例では、テーブル名をバッククォートで囲んでいます。

mysql> select *from `QuotesDemo`;

出力結果

+----+----------+---------+
| Id | UserName | UserAge |
+----+----------+---------+
|  1 | John     |      23 |
|  2 | Carol    |      21 |
|  3 | Sam      |      22 |
+----+----------+---------+
3 rows in set (0.00 sec)

両方の引用符を組み合わせたクエリ

次のクエリでは、テーブル名とカラム名にバッククォート、検索条件の値にシングルクォートを使用しています。これがMySQLにおける引用符の典型的な使い分けです。

mysql> select *from `QuotesDemo` where `UserName` = 'Carol';

出力結果

+----+----------+---------+
| Id | UserName | UserAge |
+----+----------+---------+
|  2 | Carol    | 21      |
+----+----------+---------+
1 row in set (0.00 sec)

補足:バッククォートが必要なケース

通常、テーブル名やカラム名はバッククォートで囲まなくても動作しますが、以下のような場合には必須になります。

  • カラム名やテーブル名がMySQLの予約語(order、group、descなど)と重複している場合
  • 名前にハイフンやスペースなどの特殊文字が含まれている場合

また、ダブルクォート(")も識別子として使用できますが、これはSQLモードがANSI_QUOTESに設定されている場合のみです。デフォルト設定ではダブルクォートは文字列を囲むものとして扱われるため、注意が必要です。

このように、MySQLでは引用符の種類ごとに役割が明確に分かれています。「識別子にはバッククォート、値にはシングルクォート」という基本ルールを押さえておけば、SQLエラーを防ぎ、可読性の高いクエリを書くことができます。

  1. MySQL 8.0で新たに導入されたオプションと変数の一覧

    MySQL 8.0で新たに追加されたオプション・変数とは MySQL 8.0では、パフォーマンスの向上や運用管理の柔軟性を高めるために、数多くの新しいオプションおよびシステム変数が導入されました。ここでは、その中から代表的なものを紹介します。各項目には、変数の意味と、追加されたバージョンを併記しています。 ステータス変数(Com_*系) Com_clone: 実行されたCLONEステートメントの数を示します。MySQL 8.0.2で追加されました。 Com_create_role: 実行されたCREATE ROLEステートメントの数を示します。MySQL 8.0.0で追加されました。 Co

  2. MySQLがサポートするプラットフォーム一覧|対応OSとアーキテクチャを徹底解説

    MySQLは非常に多くのプラットフォームに対応したデータベース管理系统であり、仮想環境へのデプロイにも柔軟に対応できます。本記事では、MySQLが公式にサポートしているオペレーティングシステムと、それぞれの対応アーキテクチャ(CPUアーキテクチャ)について詳しく解説します。 Oracle Linux / Red Hat Enterprise Linux / CentOS エンタープライズ用途で広く採用されているRHEL系ディストリビューションでは、以下のバージョンがサポート対象です。 Oracle Linux 8 / Red Hat Enterprise Linux 8 / CentOS