Nomi e identificatori - Amazon Redshift

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);