¿Cuál es la diferencia entre comillas simples y dobles en SQL?

Resuelto Vineet asked hace 14 años • 7 respuestas

¿Cuál es la diferencia entre comillas simples y comillas dobles en SQL?

Vineet avatar Jan 03 '10 01:01 Vineet
Aceptado

Las comillas simples se utilizan para indicar el principio y el final de una cadena en SQL. Las comillas dobles generalmente no se usan en SQL, pero pueden variar de una base de datos a otra.

Limítese al uso de comillas simples.

Ese es el uso principal de todos modos. Puede usar comillas simples para un alias de columna, donde desea que el nombre de la columna a la que hace referencia en el código de su aplicación sea distinto del nombre real de la columna en la base de datos. Por ejemplo: PRODUCT.idsería más legible como product_id, por lo que utiliza cualquiera de los siguientes:

  • SELECT PRODUCT.id AS product_id
  • SELECT PRODUCT.id 'product_id'

Cualquiera de los dos funciona en Oracle, SQL Server, MySQL... pero sé que algunos han dicho que TOAD IDE parece dar algo de pena cuando se utiliza el enfoque de comillas simples.

Debe utilizar comillas simples cuando el alias de columna incluye un carácter de espacio, por ejemplo, product idpero no se recomienda que un alias de columna tenga más de una palabra.

OMG Ponies avatar Jan 02 '2010 18:01 OMG Ponies

Una regla sencilla para que recordemos qué usar y en qué caso:

  • [ S ] las comillas simples son para [ S ] cadenas literales (los literales de fecha también son cadenas);
  • Las comillas dobles [ D ] son ​​para identificadores de base de datos [ D ];

Ejemplos:

INSERT INTO "USERS" ("LOGIN", "PASSWORD", "DT_BIRTH") VALUES ('EDUARDO', '12345678', '1980-09-06');

En MySQL y MariaDB, el símbolo ` (comilla invertida) es el mismo que el símbolo " . Y tenga en cuenta que no puede usar " para cadenas literales cuando esté SQL_MODEhabilitado ANSI_QUOTES.

NaN avatar Oct 26 '2012 15:10 NaN

Las comillas simples delimitan una constante de cadena o una constante de fecha/hora.

Las comillas dobles delimitan identificadores, por ejemplo, nombres de tablas o nombres de columnas. Por lo general, esto solo es necesario cuando su identificador no cumple con las reglas para identificadores simples.

Ver también:

  • ¿Las diferentes bases de datos utilizan comillas de nombres diferentes?

Puedes hacer que MySQL use comillas dobles según el estándar ANSI:

SET GLOBAL SQL_MODE=ANSI_QUOTES

Puede hacer que Microsoft SQL Server utilice comillas dobles según el estándar ANSI:

SET QUOTED_IDENTIFIER ON
Bill Karwin avatar Jan 02 '2010 18:01 Bill Karwin

En ANSI SQL, las comillas dobles citan nombres de objetos (por ejemplo, tablas), lo que les permite contener caracteres que de otro modo no estarían permitidos, o ser iguales a palabras reservadas (evite esto, en realidad).

Las comillas simples son para cadenas.

Sin embargo, MySQL ignora el estándar (a menos que se cambie su SQL_MODE) y permite que se usen indistintamente para cadenas.

Además, Sybase y Microsoft también utilizan corchetes para citar identificadores.

Entonces es un poco específico del proveedor.

Otras bases de datos como Postgres e IBM en realidad se adhieren al estándar ansi :)

MarkR avatar Jan 02 '2010 18:01 MarkR