Do different databases use different name quote?

database, mysql

Solution

This use of quotes is called delimited identifiers. It's an important part of SQL because otherwise you can't use identifiers (e.g. table names and column names) that:

- Include whitespace: "my table"

- Include special characters and punctuation: "my-table"

- Include international characters: "私のテーブル"

- Are case-sensitive: "MyTable"

- Match SQL keywords: "table"

The standard SQL language uses double-quotes for delimited identifiers:

SELECT * FROM "my table";

MySQL uses back-quotes by default. MySQL can use standard double-quotes:

SELECT * FROM `my table`;
SET SQL_MODE=ANSI_QUOTES;
SELECT * FROM "my table";

Microsoft SQL Server and Sybase uses brackets by default. They can both use standard double-quotes this way:

SELECT * FROM [my table];
SET QUOTED_IDENTIFIER ON;
SELECT * FROM "my table";

InterBase and Firebird need to set the SQL dialect to 3 to support delimited identifiers.

Most other brands of database use double-quotes correctly.

Problem

For example, mysql quote table name using ``` SELECT * FROM `table_name`; ``` notice the ` Does other database ever use different char to quote their table name

Original source

Related problems