Quelle est la différence entre les guillemets simples et les guillemets doubles en SQL ?
Les guillemets sont généralement utilisés pour les noms d'objets (par exemple, le nom de la colonne "Prénom"). Cela fait partie de la norme SQL-92.
Quelle est la différence entre les guillemets simples et les guillemets doubles en 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 en SQL, mais cela peut varier d'une base de données à l'autre.
Utilisez uniquement des guillemets simples.
C'est l'usage principal de toute façon. Vous pouvez utiliser des guillemets simples pour un alias de colonne - lorsque vous souhaitez que le nom de la colonne auquel vous faites référence dans votre code d'application soit différent du nom de la colonne dans la base de données. Par exemple : PRODUCT.id
serait plus lisible sous la forme product_id
Vous pouvez donc utiliser l'une des méthodes suivantes :
SELECT PRODUCT.id AS product_id
SELECT PRODUCT.id 'product_id'
L'un ou l'autre fonctionne avec Oracle, SQL Server, MySQL mais je sais que certains ont dit que l'IDE TOAD semble avoir des difficultés à utiliser l'approche entre guillemets simples.
Vous devez utiliser des guillemets simples lorsque l'alias de la colonne comprend un caractère espace, par exemple, product id
mais il n'est pas recommandé qu'un alias de colonne comporte plus d'un mot.
Les guillemets sont généralement utilisés pour les noms d'objets (par exemple, le nom de la colonne "Prénom"). Cela fait partie de la norme SQL-92.
@LukLed : Vous voulez dire une colonne alias ? Si vous le dites - je n'ai jamais vu et/ou utilisé que le AS column_name
ou lorsque vous fournissez l'alias dans la notation guillemets simples après la référence de la colonne. Il faut mettre l'alias entre guillemets simples s'il y a un caractère espace (ce que je ne recommande pas) dans l'alias de la colonne.
Non. Je voulais parler des noms de colonnes, mais cela concerne aussi les alias. Je conseille d'utiliser des guillemets doubles pour les alias et les noms comportant des caractères inhabituels, en raison de la norme SQL-92. SELECT * FROM USERS 'Users'
ne fonctionne pas dans SQL Server, mais SELECT * FROM USERS "Users"
fait.
Une règle simple qui nous permet de nous rappeler ce qu'il faut utiliser dans tel ou tel cas :
Exemples :
INSERT INTO "USERS" ("LOGIN", "PASSWORD", "DT_BIRTH") VALUES ('EDUARDO', '12345678', '1980-09-06');
Dans MySQL et MariaDB, l'option ` (backtick) est le même que celui de la touche " symbole. Et notez que vous ne pouvez pas utiliser " pour les chaînes littérales lorsque votre SQL_MODE
a ANSI_QUOTES
activé.
Pour clarifier, le backtick (`) peut être utilisé pour délimiter les identifiants, que ANSI_QUOTES soit activé ou non, mais si ANSI_QUOTES est activé, alors "vous ne pouvez pas utiliser les guillemets doubles pour citer des chaînes littérales, car cela est interprété comme un identifiant." ( source ). (Tout ceci suppose que vous parlez de MySQL, attention).
Les guillemets simples délimitent une constante de type chaîne de caractères ou une constante de type date/heure.
Les guillemets doubles délimitent les identifiants, par exemple les noms de tables ou de colonnes. Cela n'est généralement nécessaire que lorsque votre identifiant ne correspond pas aux règles applicables aux identifiants simples.
Voir aussi :
Vous pouvez faire en sorte que MySQL utilise les guillemets doubles conformément à la norme ANSI :
SET GLOBAL SQL_MODE=ANSI_QUOTES
Vous pouvez faire en sorte que Microsoft SQL Server utilise les guillemets doubles conformément à la norme ANSI :
SET QUOTED_IDENTIFIER ON
Dans le langage SQL ANSI, les guillemets doubles encadrent les noms d'objets (par exemple, les tables), ce qui leur permet de contenir des caractères non autorisés par ailleurs, ou d'être identiques à des mots réservés (à éviter absolument).
Les guillemets simples sont réservés aux chaînes de caractères.
Cependant, MySQL ne tient pas compte de la norme (à moins que son SQL_MODE ne soit modifié) et permet de les utiliser de manière interchangeable pour les chaînes de caractères.
En outre, Sybase et Microsoft utilisent également des crochets pour la citation des identifiants.
C'est donc un peu spécifique aux fournisseurs.
D'autres bases de données, comme Postgres et IBM, adhèrent en fait à la norme ansi :)
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
1 votes
Quel type/vendeur de Sql ?