Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Noms et identificateurs
Les noms identifient les objets de base de données, y compris les tables et les colonnes, ainsi que les utilisateurs et les mots de passe. Les termes nom et identificateur peuvent être utilisés indifféremment. Il existe deux types d’identificateurs, les identificateurs standard et les identificateurs entre guillemets ou délimités. Les identifiants ne doivent comporter que UTF 8 caractères imprimables. ASCIIles lettres dans les identifiants standard et délimités ne distinguent pas les majuscules des minuscules et sont pliées en minuscules dans la base de données. Dans les résultats des requêtes, les noms de colonne sont retournés en minuscules par défaut. Pour retourner les noms de colonne en majuscules, définissez le paramètre de configuration describe_field_name_in_uppercase sur la valeur true
.
Identificateurs standard
SQLLes identifiants standard respectent un ensemble de règles et doivent :
-
Commencez par un caractère alphabétique ou un trait de soulignement à un ASCII octet, ou par un caractère multioctet de UTF -8 de deux à quatre octets de long.
-
Les caractères suivants peuvent être des caractères alphanumériques ASCII à un octet, des traits de soulignement ou des signes dollar, ou des caractères multioctets de UTF 8 à quatre octets de deux à quatre octets.
-
Avoir une longueur comprise entre 1 et 127 octets, sans les guillemets pour les identifiants délimités.
-
Ne contenir ni guillemets ni espaces.
-
Ne soyez pas un mot SQL clé réservé.
Identificateurs délimités
Les identificateurs délimités (aussi appelés identificateurs entre guillemets) commencent et se terminent par des guillemets ("). Si vous utilisez un identificateur délimité, vous devez utiliser les guillemets pour chaque référence à cet objet. L'identifiant peut contenir n'importe quel caractère imprimable standard de UTF -8 autres que le guillemet double lui-même. Par conséquent, vous pouvez créer des noms de colonne ou de table qui incluent tout caractère autre que les caractères illégaux, tels que les espaces ou le symbole pourcentage (%).
ASCIIles lettres dans des identifiants délimités ne distinguent pas les majuscules des minuscules et sont pliées en minuscules. Pour utiliser des guillemets droits dans une chaîne de caractères, vous devez les faire précéder d’un autre caractère de guillemets droits.
Identifiants sensibles à la casse
Les identifiants sensibles à la casse (également appelés identifiants en casse mixte) peuvent contenir des lettres majuscules et minuscules. Pour utiliser des identifiants sensibles à la casse, vous pouvez définir la configuration enable_case_sensitive_identifier
sur true
. Vous pouvez définir cette configuration pour le cluster ou une session. Pour plus d’informations, consultez Valeurs des paramètres par défaut dans le Guide de gestion Amazon Redshift et enable_case_sensitive_identifier.
Nom des colonnes système
Les noms de colonnes du SQL système Postgre suivants ne peuvent pas être utilisés comme noms de colonnes dans des colonnes définies par l'utilisateur. Pour plus d'informations, consultez https://www.postgresql.org/docs/8.0/static/ddl-system-columns.html
oid
tableoid
xmin
cmin
xmax
cmax
ctid
Exemples
Ce tableau présente des exemples d’identificateurs délimités, le résultat obtenu et une explication :
Syntaxe | Résultat | Explication |
---|---|---|
"group" | groupe | GROUPétant un mot réservé, son utilisation dans un identifiant nécessite des guillemets doubles. |
"""WHERE""" | "where" | WHEREest également un mot réservé. Pour inclure des guillemets droits dans la chaîne, échappez chaque caractère de guillemets droits par d’autres caractères de guillemets droits. |
"This name" | this name | Les guillemets droits sont nécessaires pour préserver l’espace. |
"This ""IS IT""" | "This ""IS IT""" | Les guillemets entourant IS IT doivent être précédés d’un guillemet supplémentaire pour faire partie du nom. |
Pour créer un groupe nommé table avec une colonne nommée this "is it" :
create table "group" ( "This ""IS IT""" char(10));
Les requêtes suivantes retournent le même résultat :
select "This ""IS IT""" from "group"; this "is it" -------------- (0 rows)
select "this ""is it""" from "group"; this "is it" -------------- (0 rows)
La syntaxe complète suivante table.column
renvoie aussi le même résultat :
select "group"."this ""is it""" from "group"; this "is it" -------------- (0 rows)
La CREATE TABLE commande suivante crée un tableau avec une barre oblique dans le nom d'une colonne :
create table if not exists city_slash_id( "city/id" integer not null, state char(2) not null);