Bancos de dados diferentes usam citação de nome diferente?

Por exemplo, o nome da tabela de cotação mysql usando

SELECT * FROM `table_name`; 

observe o `

O outro database já usa caracteres diferentes para citar o nome da tabela

Esse uso de cotações é chamado de identificadores delimitados. É uma parte importante do SQL, porque senão você não pode usar identificadores (por exemplo, nomes de tabelas e nomes de colunas) que:

  • Incluir espaço em branco: “minha mesa”
  • Inclua caracteres especiais e pontuação: “my-table”
  • Incluir caracteres internacionais: “私 の テ ー ブ ル”
  • Faz distinção entre maiúsculas e minúsculas: “MyTable”
  • Corresponder palavras-chave SQL: “table”

A linguagem SQL padrão usa aspas duplas para identificadores delimitados:

 SELECT * FROM "my table"; 

O MySQL usa aspas por padrão. O MySQL pode usar aspas duplas padrão:

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

O Microsoft SQL Server usa colchetes por padrão. A Microsoft pode usar aspas duplas padrão:

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

O InterBase e o Firebird precisam definir o dialeto SQL como 3 para suportar identificadores delimitados.

A maioria das outras marcas de database usa aspas duplas corretamente.

O SQL Server usa [colchetes] ou “aspas duplas” quando a opção QUOTED_IDENTIFIER está ativada.

Eu acredito que aspas duplas estão no padrão SQL-92.

Sucintamente sim.

O padrão SQL usa aspas duplas em torno do nome para indicar um ‘identificador delimitado’.

O Informix, por padrão, usa aspas simples e duplas de forma intercambiável para indicar cadeias de caracteres. No entanto, definindo a variável de ambiente DELIMIDENT, você pode ativar o comportamento padrão do SQL – aspas simples em torno de strings e aspas duplas em torno de identificadores delimitados.

Outras pessoas listaram outros comportamentos para outros SGBDs; Eu não preciso repetir isso.