¿Cuál es la diferencia entre comillas simples y comillas dobles en SQL?
Las comillas simples se usan para indicar el comienzo y el final de una cadena en SQL. Las comillas dobles generalmente no se usan en SQL, pero eso puede variar de una base de datos a otra.
Se adhieren 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 diferente de lo que realmente se llama 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'
O bien funciona en Oracle, SQL Server, MySQL ... pero sé que algunos han dicho que el IDE de TOAD parece dar algo de pena cuando se utiliza el enfoque de comillas simples.
Debe usar comillas simples cuando el alias de columna incluye un carácter de espacio, por ejemplo product id
, pero no es una práctica recomendada que un alias de columna sea más de una palabra.
SELECT * FROM USERS 'Users'
no funciona en SQL Server, pero loSELECT * FROM USERS "Users"
hace.SELECT PRODUCT.id 'product_id'
será no trabajar en Oracle. Las comillas simples son solo para literales de caracteres. No se pueden usar para identificadores en SQL (estándar) (aunque algunos DBMS simplemente ignoran el estándar SQL cuando se trata de identificadores citados)Una regla simple para que recordemos qué usar, en cuyo caso:
En MySQL y MariaDB, el símbolo ` (retroceso) es el mismo que el " símbolo. Puede usarlo " cuando su función
SQL_MODE
estáANSI_QUOTES
habilitada.fuente
Las comillas simples delimitan una constante de cadena o una constante de fecha / hora.
Las comillas dobles delimitan identificadores para, por ejemplo, nombres de tablas o columnas. Esto generalmente solo es necesario cuando su identificador no se ajusta a las reglas para identificadores simples.
Ver también:
Puede hacer que MySQL use comillas dobles según el estándar ANSI:
Puede hacer que Microsoft SQL Server use comillas dobles según el estándar ANSI:
fuente
En ANSI SQL, las comillas dobles citan nombres de objetos (por ejemplo, tablas) que les permite contener caracteres no permitidos de otra manera, o ser lo mismo que palabras reservadas (evítelo, en realidad).
Las comillas simples son para cadenas.
Sin embargo, MySQL es ajeno al estándar (a menos que se cambie su SQL_MODE) y permite que se usen de manera intercambiable para cadenas.
Además, Sybase y Microsoft también usan corchetes para las citas de identificadores.
Por lo tanto, es un poco específico del proveedor.
Otras bases de datos como Postgres e IBM se adhieren al estándar ansi :)
fuente
Yo uso esta mnemónica:
Esto no es 100% correcto según las especificaciones, pero esta mnemónica me ayuda (ser humano).
fuente
La diferencia radica en su uso. Las comillas simples se usan principalmente para referir una cadena en WHERE, HAVING y también en algunas funciones SQL incorporadas como CONCAT, STRPOS, POSITION, etc.
Cuando desee utilizar un alias que tenga espacio en el medio, puede usar comillas dobles para referirse a ese alias.
Por ejemplo
Aquí hay una subconsulta de una tabla de pedidos que tiene account_id como clave externa que estoy agregando para saber cuántos pedidos realizó cada cuenta. Aquí le he dado a una columna cualquier nombre aleatorio como "recuento de" por el propósito.
Ahora escribamos una consulta externa para mostrar las filas donde "cuenta de" es mayor que 20.
Puede aplicar el mismo caso a las expresiones de tabla común también.
fuente