¿Cuál es la diferencia entre comillas simples y dobles en SQL?
¿Cuál es la diferencia entre comillas simples y comillas dobles en SQL?
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.id
serí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 id
pero no se recomienda que un alias de columna tenga más de una palabra.
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_MODE
habilitado ANSI_QUOTES
.
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
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 :)