2008-10-18 31 views

Respuesta

31

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

  • Incluir espacios en blanco: "mi mesa"
  • incluir caracteres y puntuacion especiales: "mi mesa "
  • incluir caracteres internacionales: "私 の テ ー ブ ル"
  • entre mayúsculas y minúsculas: "MyTable"
  • palabras clave
  • de ajuste de SQL: "mesa"

El lenguaje SQL estándar utiliza comillas dobles los identificadores delimitados:

SELECT * FROM "my table"; 

MySQL utiliza copias de las cotizaciones 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 utilizar comillas dobles estándar:

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

InterBase y Firebird necesitan para establecer el dialecto SQL a 3 para apoyar identificadores delimitados.

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

+0

Estoy tratando de formatear las últimas marcas de acuerdo con la sintaxis de rebajas, pero parece que no puedo hacerlo bien. –

+0

Pruebe esto: \ 'ham spam \ ' –

+0

Gracias, eso es lo que estoy haciendo. Parece correcto en la vista previa, pero después de guardar la edición, vuelve a mostrar las barras invertidas y a poner la palabra en una fuente monoespaciada. Ay. –

2

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

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

2

Sucintamente, sí.

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

Informix utiliza por omisión 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.

Cuestiones relacionadas