Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Nomi e identificatori
I nomi identificano oggetti di database, comprese tabelle e colonne, nonché utenti e password. È possibile usare i termini nome e identificatore in modo intercambiabile. Ci sono due tipi di identificatori, gli identificatori standard e gli identificatori delimitati o racchiusi tra virgolette. Gli identificatori devono essere composti da soli UTF -8 caratteri stampabili. ASCIIle lettere negli identificatori standard e delimitati non fanno distinzione tra maiuscole e minuscole e vengono piegate in minuscolo nel database. Nei risultati delle query, i nomi delle colonne vengono restituiti in lettere minuscole per impostazione predefinita. Per restituire i nomi delle colonne in lettere maiuscole, impostare il parametro di configurazione describe_field_name_in_uppercase su true
.
Identificatori standard
SQLGli identificatori standard rispettano una serie di regole e devono:
-
Inizia con un carattere alfabetico ASCII a byte singolo o un carattere di sottolineatura oppure un carattere multibyte di UTF -8 caratteri da due a quattro byte di lunghezza compresa tra due e quattro byte.
-
I caratteri successivi possono essere caratteri alfanumerici ASCII a byte singolo, caratteri di sottolineatura o simboli del dollaro oppure -8 caratteri multibyte lunghi da due a quattro byte. UTF
-
Abbiano una lunghezza compresa tra 1 e 127 byte, senza comprendere le virgolette per gli identificatori delimitati.
-
Non contengano virgolette e spazi.
-
SQLNon essere una parola chiave riservata.
Identificatori delimitati
Gli identificatori delimitati (conosciuti anche come identificatori tra virgolette) iniziano e terminano con le virgolette doppie ("). Se vedi un identificatore delimitato, è necessario usare le virgolette doppie per ogni riferimento a quell'oggetto. L'identificatore può contenere tutti gli UTF -8 caratteri stampabili standard diversi dalle virgolette doppie stesse. Pertanto, è possibile creare nomi di colonna o tabella che comprendono caratteri altrimenti non ammessi, come spazi o il simbolo di percentuale.
ASCIIle lettere negli identificatori delimitati non fanno distinzione tra maiuscole e minuscole e vengono piegate in minuscolo. Per usare una virgoletta doppia in una stringa, è necessario farla precedere da un altro carattere di virgoletta doppia.
Identificatori con distinzione maiuscolo/minuscolo
Gli identificatori con distinzione tra maiuscole e minuscole (noti anche come identificatori misti) possono contenere lettere maiuscole e minuscole. Per utilizzare gli identificatori con distinzione tra maiuscole e minuscole, è possibile impostare la configurazione da enable_case_sensitive_identifier
a true
. È possibile impostare questa configurazione per il cluster o per una sessione. Per ulteriori informazioni, consulta Valori di parametro predefiniti nella Guida alla gestione di Amazon Redshift e enable_case_sensitive_identifier.
Nomi di colonna di sistema
I seguenti nomi di colonna del SQL sistema Postgre non possono essere usati come nomi di colonna nelle colonne definite dall'utente. Per ulteriori informazioni, consulta. https://www.postgresql.org/docs/8.0/static/ddl-system-columns.html
oid
tableoid
xmin
cmin
xmax
cmax
ctid
Esempi
Questa tabella mostra esempi di identificatori delimitati, l'output risultante e una discussione:
Sintassi | Risultato | Discussione |
---|---|---|
"group" | gruppo | GROUPè una parola riservata, quindi il suo utilizzo all'interno di un identificatore richiede virgolette doppie. |
"""WHERE""" | "dove" | WHEREè anche una parola riservata. Per includere le virgolette nella stringa, eseguire l'escape per ciascuna virgoletta utilizzando virgolette supplementari. |
"This name" | this name | Le doppie virgolette sono necessarie per conservare lo spazio. |
"This ""IS IT""" | this "is it" | Perché diventino parte del nome, è necessario che ciascuna delle virgolette che circonda IS IT sia preceduta da altre virgolette. |
Per creare una tabella chiamata group con una colonna di nome this "is it":
create table "group" ( "This ""IS IT""" char(10));
Le seguenti query restituiscono lo stesso risultato:
select "This ""IS IT""" from "group"; this "is it" -------------- (0 rows)
select "this ""is it""" from "group"; this "is it" -------------- (0 rows)
Anche la seguente sintassi table.column
completa restituisce lo stesso risultato:
select "group"."this ""is it""" from "group"; this "is it" -------------- (0 rows)
Il CREATE TABLE comando seguente crea una tabella con una barra nel nome di colonna:
create table if not exists city_slash_id( "city/id" integer not null, state char(2) not null);