mysql tablas ¿Las diferentes bases de datos usan citas de nombres diferentes?



lista de comandos mysql (3)

SQL Server usa [corchetes] o "comillas dobles" cuando la opción QUOTED_IDENTIFIER está activada.

Creo que las comillas dobles están en el estándar SQL-92.

Por ejemplo, mysql quote table name using

SELECT * FROM `table_name`;

nota el `

¿Alguna otra base de datos utiliza alguna vez caracteres diferentes para citar el nombre de la tabla?


Answer #1

Este uso de comillas se denomina identificadores delimitados. Es una parte importante de SQL porque de lo contrario no puede usar identificadores (por ejemplo, nombres de tablas y columnas) que:

  • Incluir espacios en blanco: "mi mesa"
  • Incluye caracteres especiales y signos de puntuación: "my-table"
  • Incluye caracteres internacionales: "私 の テ ー ル ル"
  • Son sensibles a las mayúsculas y minúsculas: "MyTable"
  • Concordancia SQL palabras clave: "tabla"

El lenguaje SQL estándar usa comillas dobles para identificadores delimitados:

SELECT * FROM "my table";

MySQL usa comillas por defecto. MySQL puede usar comillas dobles estándar:

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

Microsoft SQL Server usa corchetes por defecto. Microsoft puede usar comillas dobles estándar:

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

InterBase y Firebird necesitan establecer el dialecto SQL en 3 para admitir identificadores delimitados.

La mayoría de las otras marcas de bases de datos usan comillas dobles correctamente.


Answer #2

Sucintamente, sí.

El estándar SQL usa comillas dobles alrededor del nombre para indicar un 'identificador delimitado'.

Por defecto, Informix utiliza comillas simples y dobles indistintamente para indicar cadenas de caracteres. Sin embargo, al establecer la variable de entorno DELIMIDENT, puede activar el comportamiento estándar de SQL: comillas simples alrededor de cadenas y comillas dobles alrededor de identificadores delimitados.

Otras personas han enumerado otros comportamientos para otros DBMS; No necesito repetir eso.





database