In questo articolo esploreremo i diversi tipi di tabelle SQL e le procedure consigliate per la creazione di tabelle definite dall'utente in SQL Server.
Le tabelle sono oggetti primari per la memorizzazione dei dati nei database relazionali. Per visualizzare una tabella, considera un foglio di calcolo Excel. Il foglio di calcolo organizza i dati in formato riga e colonna. Allo stesso modo, i database relazionali utilizzano più tabelle (fogli) per organizzare i dati.
- Riga :identifica univocamente un record. Ad esempio, i dati della riga 1 appartengono a un dipendente di nome [Raj]. Non può memorizzare dati per un altro dipendente.
- Colonna :Ogni colonna definisce un attributo della tabella. Ad esempio, la colonna [Nome] memorizza il nome di tutti i dipendenti. Non puoi memorizzare altri dati come [Città] in questa colonna.
Supponiamo di aver bisogno di una tabella [Impiegato] in un database SQL. Questa tabella memorizza i record dei dipendenti di un'azienda. Per la colonna [EmpID] è necessario un numero positivo (senza punto decimale). In questo caso, il tipo di dati [intero] è il più adatto. Dopo aver definito la colonna [EmpID] come intero, SQL Server non consente di inserire valori che non soddisfano il tipo di dati intero. Ad esempio, non è possibile inserire la stringa "Raj" nella colonna [EmpID[.
Creazione di una tabella SQL
Ad alto livello, per creare una tabella SQL, dovremmo avere le seguenti informazioni:
- Qual è l'istanza SQL e il nome del database per l'archiviazione degli oggetti?
- In quale schema vuoi salvare la tabella?
- Quali sono i nomi delle colonne per la tua tabella specifica?
- Quali sono i tipi di dati per queste colonne?
- Le colonne consentono di memorizzare valori NULL?
- Usi la colonna della chiave primaria? Se sì, quale colonna fungerà da colonna della chiave primaria?
- Vuoi creare indici non in cluster?
Per questa dimostrazione, utilizziamo le seguenti risposte a queste domande per creare la tabella dei dipendenti.
- Risposta 1:il nome del database di destinazione è [AzureDemoDatabase]
- Risposta 2:vogliamo memorizzare le tabelle nello schema DBO predefinito
- Risposta 3:la tabella [Dipendente] dovrebbe avere cinque colonne:[ID], [Nome], [Cognome], [Città] e [DOB]
- Risposta 4:la tabella [Impiegato] deve utilizzare i seguenti tipi di dati.
- [ID]:intero
- [Nome]:Varchar(50) NON NULL
- [Cognome]:Varchar(30) NON NULL
- [Città]:Varchar[50] NULL
- [DOB]:DATA NON NULLA
- Proprietà NULL come definite sopra
- Sì, la colonna [ID] è una colonna della chiave primaria
- No, sono necessari solo indici cluster
Tipi di tabelle SQL
Le tabelle di SQL Server possono essere suddivise nelle seguenti categorie.
Tabelle di sistema
SQL Server archivia la configurazione dell'istanza e le proprietà del database in un set speciale di tabelle. Queste tabelle sono note come tabelle di sistema. Gli utenti non sono autorizzati ad apportare modifiche a queste tabelle direttamente. SQL Server non consente di eseguire query direttamente su tabelle di sistema specifiche. Fornisce invece le stored procedure di sistema, le funzioni, gli oggetti di gestione di SQL Server e gli oggetti di gestione della replica per eseguire query su questi componenti. Puoi fare riferimento a documenti Microsoft per comprendere le tabelle di sistema in modo più dettagliato.
Tabelle temporanee
A volte, abbiamo bisogno di memorizzare temporaneamente i dati nel database per il calcolo, la manipolazione o la memorizzazione di risultati intermedi. In questi casi, possiamo utilizzare tabelle temporanee che sono sempre conservate nel database di sistema TempDB.
SQL Server dispone di due tipi di tabelle temporanee:
- Locale: Ogni tabella temporanea locale inizia con un segno (#). Il suo ambito è limitato alla connessione corrente. SQL Server elimina automaticamente queste tabelle una volta che l'utente si disconnette.
- Globale: Ogni tabella temporanea globale inizia con un segno (##). Tutti gli utenti possono fare riferimento alle tabelle temporanee globali. Se tutti gli utenti che fanno riferimento alla tabella globale sono connessi, SQL Server la elimina.
–Tabella TEMPORANEA ( Locale )
Crea tabella #TableA
(
ID int,
[Nome] varchar(50)
)
–Tabella temporanea globale
Crea tabella ##TableB
(
ID int,
[Nome] varchar(50)
)
Tabella permanente o definita dall'utente
Gli utenti possono definire la propria struttura della tabella, colonne, tipi di dati, vincoli e indici in base ai requisiti dell'applicazione. Queste tabelle sono chiamate tabelle definite dall'utente.
Queste tabelle sono sempre archiviate nel database a meno che qualcuno non le elimini esplicitamente. Pertanto, queste sono anche conosciute come tabelle permanenti.
Esistono diversi modi per creare una tabella definita dall'utente in SQL Server.
- GUI di SQL Server Management Studio
- Utilizzo dello script T-SQL
–Tabella permanente
Crea tabella TabellaA
(
ID int,
[Nome] varchar(50)
)
Tabelle esterne
Le tabelle esterne sono un particolare tipo di tabella che può essere usata da SQL Server 2016 in poi. Queste tabelle fanno riferimento ad altre origini dati come l'archiviazione BLOB di Azure, Hadoop, Oracle, Excel, ODBC, Bigdata, MongoDB e Teradata usando la funzionalità PolyBase di SQL Server.
Puoi fare riferimento a questa documentazione per esplorare ulteriormente PolyBase in SQL Server.
Tabelle con grafici
I database a grafo di SQL Server utilizzano una raccolta di diversi nodi (vertici) e bordi (relazioni).
- Tabella dei nodi :la tabella dei nodi è una raccolta di nodi con tipi simili. Ad esempio, la tabella dei nodi persona ha tutti i nodi persona in un grafico.
- Tavolo Edge :Il tavolo Edge è una raccolta di bordi simili. Ad esempio, una tabella amici contiene tutti i bordi che collegano una persona a un'altra persona.
Per approfondire l'argomento, fai riferimento alle categorie di database di grafici.
Linee guida per la creazione di una tabella definita dall'utente in SQL Server
- Definisci una convenzione di denominazione appropriata per i nomi delle tabelle.
- Utilizza schemi diversi per raggruppare oggetti tabella simili.
- Assicurati sempre che l'integrità referenziale sia mantenuta utilizzando i vincoli di SQL Server come Chiave primaria e Chiave esterna.
- Definisci sempre un tipo di dati adatto e la sua lunghezza per leggere e scrivere rapidamente i dati.
- Utilizza le tecniche di normalizzazione del database per ridurre la ridondanza dei dati e migliorare l'integrità dei dati.
- Comprendi i diversi moduli di normalizzazione e come usarli. (Puoi fare riferimento a questo articolo: Che cos'è la normalizzazione del database in SQL Server?)
- Definisci indici adatti per i carichi di lavoro delle tue query.
- Consulta sempre i professionisti del database per consigli sulla modellazione del database e sull'applicazione delle migliori pratiche