Quelle est la différence entre les guillemets simples et les guillemets doubles dans SQL?
Les guillemets simples sont utilisés pour indiquer le début et la fin d'une chaîne en SQL. Les guillemets doubles ne sont généralement pas utilisés dans SQL, mais cela peut varier d'une base de données à l'autre.
Restez à utiliser des guillemets simples.
C'est la principale utilisation de toute façon. Vous pouvez utiliser des guillemets simples pour un alias de colonne - où vous voulez que le nom de la colonne que vous référencez dans votre code d'application soit autre que ce que la colonne est réellement appelée dans la base de données. Par exemple: PRODUCT.id
serait plus lisible en tant que product_id
, vous utilisez donc l'un des éléments suivants:
SELECT PRODUCT.id AS product_id
SELECT PRODUCT.id 'product_id'
Soit fonctionne dans Oracle, SQL Server, MySQL… mais je sais que certains ont dit que l'IDE TOAD semble donner du fil à retordre lors de l'utilisation de l'approche des guillemets simples.
Vous devez utiliser des guillemets simples lorsque l'alias de colonne comprend un caractère espace, par exemple product id
, mais il n'est pas recommandé qu'un alias de colonne soit composé de plusieurs mots.
SELECT * FROM USERS 'Users'
ne fonctionne pas dans SQL Server, maisSELECT * FROM USERS "Users"
fonctionne.SELECT PRODUCT.id 'product_id'
ne pas travailler dans Oracle. Les guillemets simples sont uniquement pour les littéraux de caractères. Ils ne peuvent pas être utilisés pour les identifiants en SQL (standard) (bien que certains SGBD ignorent simplement le standard SQL en ce qui concerne les identifiants entre guillemets)Une règle simple pour nous de nous rappeler quoi utiliser dans ce cas:
Dans MySQL et MariaDB, le symbole ` (backtick) est le même que le " symbole. Vous pouvez utiliser " lorsque votre
SQL_MODE
estANSI_QUOTES
activé.la source
Les guillemets simples délimitent une constante chaîne ou une constante date / heure.
Les guillemets doubles délimitent les identificateurs, par exemple les noms de table ou les noms de colonne. Cela n'est généralement nécessaire que lorsque votre identifiant ne correspond pas aux règles des identifiants simples.
Voir également:
Vous pouvez faire en sorte que MySQL utilise des guillemets doubles selon la norme ANSI:
Vous pouvez faire en sorte que Microsoft SQL Server utilise des guillemets doubles selon la norme ANSI:
la source
Dans ANSI SQL, les guillemets doubles citent des noms d'objets (par exemple des tables) qui leur permettent de contenir des caractères non autorisés autrement, ou d'être les mêmes que des mots réservés (éviter cela, vraiment).
Les guillemets simples sont pour les chaînes.
Cependant, MySQL est inconscient de la norme (à moins que son SQL_MODE ne soit modifié) et leur permet d'être utilisés de manière interchangeable pour les chaînes.
De plus, Sybase et Microsoft utilisent également des crochets pour la citation des identifiants.
C'est donc un peu spécifique au fournisseur.
D'autres bases de données telles que Postgres et IBM adhèrent en fait à la norme ansi :)
la source
J'utilise ce mnémonique:
Ce n'est pas 100% correct selon les spécifications, mais ce mnémonique m'aide (l'être humain).
la source
La différence réside dans leur utilisation. Les guillemets simples sont principalement utilisés pour référencer une chaîne dans WHERE, HAVING et également dans certaines fonctions SQL intégrées comme CONCAT, STRPOS, POSITION, etc.
Lorsque vous souhaitez utiliser un alias avec un espace entre les deux, vous pouvez utiliser des guillemets doubles pour faire référence à cet alias.
Par exemple
Voici une sous-requête d'une table de commandes ayant account_id comme clé étrangère que j'agrège pour savoir combien de commandes chaque compte a passées. Ici, j'ai donné à une colonne un nom aléatoire comme "nombre de" pour des raisons de finalité.
Écrivons maintenant une requête externe pour afficher les lignes où "count of" est supérieur à 20.
Vous pouvez également appliquer le même cas aux expressions de table commune.
la source