Sei pronto per iniziare a creare database e tabelle con Structured Query Language? In questo articolo, esploriamo il processo di creazione delle tabelle manualmente con i comandi CREATE DATABASE e CREATE TABLE. Se sei nuovo di SQL, potresti prima rivedere alcune nozioni di base su SQL.
Requisiti aziendali
Prima di sederci alla tastiera, dobbiamo assicurarci di avere una solida conoscenza delle esigenze del cliente. Qual è il modo migliore per ottenere questa visione? Parlando con il cliente, ovviamente! Dopo esserci seduti con il direttore delle risorse umane di XYZ, abbiamo appreso che sono una società di vendita di widget e sono principalmente interessati a rintracciare informazioni sul loro personale di vendita.
XYZ Corporation divide le proprie forze di vendita in regioni orientali e occidentali, ognuna delle quali è suddivisa in molti territori coperti da singoli rappresentanti di vendita. Il reparto risorse umane desidera monitorare il territorio coperto da ciascun dipendente e le informazioni sulla retribuzione e la struttura di supervisione di ciascun dipendente. Per soddisfare questi requisiti, abbiamo progettato un database costituito da tre tabelle, mostrate nel diagramma Entità-Relazione in questa pagina.
Scelta di una piattaforma di database
Abbiamo deciso di utilizzare un sistema di gestione del database (o DBMS) basato su Structured Query Language (SQL). Pertanto, tutti i nostri comandi per la creazione di database e tabelle dovrebbero essere scritti tenendo presente l'ANSI SQL standard.
Come ulteriore vantaggio, l'utilizzo di SQL conforme ANSI garantirà che questi comandi funzioneranno su qualsiasi DBMS che supporti lo standard SQL, inclusi Oracle e Microsoft SQL Server. Se non hai ancora selezionato una piattaforma per il tuo database, Opzioni software database ti guiderà attraverso il processo di selezione.
Creazione del database
Il nostro primo passo è creare il database stesso. Molti sistemi di gestione dei database offrono una serie di opzioni per personalizzare i parametri del database in questo passaggio, ma il nostro database consente solo la semplice creazione di un database. Come con tutti i nostri comandi, è possibile consultare la documentazione del proprio DBMS per determinare se eventuali parametri avanzati supportati dal proprio sistema specifico soddisfano le proprie esigenze. Usiamo il comando CREATE DATABASE per configurare il nostro database:
CREARE il personale del DATABASE
Prendete nota speciale della maiuscola utilizzata nell'esempio sopra. È prassi comune tra i programmatori SQL utilizzare tutte le lettere maiuscole per parole chiave SQL come "CREATE" e "DATABASE" mentre si usano tutte lettere minuscole per nomi definiti dall'utente come il nome del database "personale". Queste convenzioni forniscono una facile leggibilità. Ora che abbiamo progettato e creato il nostro database, siamo pronti per iniziare a creare le tre tabelle utilizzate per archiviare i dati personali di XYZ Corporation. La nostra prima tabella comprende i dati personali per ciascun dipendente della nostra azienda. Dobbiamo includere il nome, lo stipendio, l'ID e il manager di ciascun dipendente. È buona prassi progettuale separare l'ultimo e il primo nome in campi separati per semplificare la ricerca e l'ordinamento dei dati in futuro. Inoltre, terremo traccia del manager di ciascun dipendente inserendo un riferimento all'ID dipendente del manager in ogni record del dipendente. Diamo prima un'occhiata alla tabella dei dipendenti desiderata. L'attributo ReportsTo memorizza l'ID manager per ciascun dipendente. Dai record di esempio mostrati, possiamo determinare che Sue Scampi è il manager di entrambi Tom Kendall e John Smith. Tuttavia, non vi sono informazioni nel database sul gestore di Sue, come indicato dalla voce NULL nella sua riga. Ora possiamo usare SQL per creare la tabella nel nostro database del personale. Prima di farlo, assicuriamoci di essere nel database corretto inviando un comando USE: Utilizzare personale;
In alternativa, il "personale del DATABASE"; comando avrebbe eseguito la stessa funzione. Ora possiamo dare un'occhiata al comando SQL usato per creare la tabella dei nostri dipendenti: CREA i dipendenti di TABLE (employeeid INTEGER NOT NULL, cognome VARCHAR (25) NOT NULL, firstname VARCHAR (25) NOT NULL, segnala a INTEGER NULL);
Come nell'esempio precedente, si noti che la convenzione di programmazione impone di utilizzare tutte le lettere maiuscole per le parole chiave SQL e le lettere minuscole per le colonne e le tabelle con nome utente. Il comando sopra può sembrare inizialmente confuso, ma in realtà c'è una semplice struttura dietro di esso. Ecco una visione generalizzata che potrebbe chiarire un po 'le cose: CREATE TABLE table_name (Opzioni del tipo di dati attribute_name, …, attributo_nome opzioni di tipo di dati); Nell'esempio precedente, il nome della tabella è dipendente e includiamo quattro attributi: employeeid, lastname, firstname e reportsto. Il tipo di dati indica il tipo di informazioni che desideriamo memorizzare in ogni campo. L'ID dipendente è un numero intero semplice, quindi utilizzeremo il tipo di dati INTEGER per entrambi i campi employeeid e reportto. I nomi dei dipendenti saranno stringhe di caratteri di lunghezza variabile e non ci aspettiamo che nessun dipendente abbia un nome o un cognome più lungo di 25 caratteri. Pertanto, useremo il tipo VARCHAR (25) per questi campi. Possiamo anche specificare NULL o NOT NULL nel campo delle opzioni dell'istruzione CREATE. Ciò indica semplicemente al database se sono consentiti valori NULL (o vuoti) per quell'attributo quando si aggiungono le righe al database. Nel nostro esempio, il dipartimento delle risorse umane richiede che vengano archiviati un ID dipendente e un nome completo per ciascun dipendente. Tuttavia, non tutti i dipendenti hanno un manager (l'amministratore delegato ne parla a nessuno!) Quindi accettiamo voci NULL in quel campo.Si noti che NULL è il valore predefinito e l'omissione di questa opzione implicherà implicitamente i valori NULL per un attributo. Ora diamo un'occhiata alla tabella dei territori. Da un rapido sguardo a questi dati, sembra che abbiamo bisogno di memorizzare un intero e due stringhe di lunghezza variabile. Come con il nostro esempio precedente, non ci aspettiamo che l'ID della regione consumi più di 25 caratteri. Tuttavia, alcuni dei nostri territori hanno nomi più lunghi, quindi espanderemo la lunghezza consentita di quell'attributo a 40 caratteri. Diamo un'occhiata all'SQL corrispondente: CREA i territori della TABELLA (territoryid INTEGER NOT NULL, territorio Descrizione VARCHAR (40) NOT NULL, regionid VARCHAR (25) NOT NULL);
Infine, utilizzeremo la tabella EmployeeTerritories per archiviare le relazioni tra dipendenti e territori. Informazioni dettagliate su ciascun dipendente e territorio sono memorizzate nelle nostre due tabelle precedenti. Pertanto, abbiamo solo bisogno di memorizzare i due numeri di identificazione interi in questa tabella. Se abbiamo bisogno di espandere queste informazioni possiamo usare un JOIN nei nostri comandi di selezione dei dati per ottenere informazioni da più tabelle. Questo metodo di memorizzazione dei dati riduce la ridondanza nel nostro database e garantisce un utilizzo ottimale dello spazio sulle nostre unità di archiviazione. Tratteremo approfonditamente il comando JOIN in un futuro tutorial. Ecco il codice SQL per implementare il nostro tavolo finale: CREA TABELLA employeeterritories (employeeid INTEGER NOT NULL, territoryid INTEGER NOT NULL); Se sei particolarmente astuto oggi, potresti aver notato che abbiamo omesso "accidentalmente" uno dei requisiti di progettazione durante l'implementazione delle nostre tabelle del database. Il direttore delle risorse umane della XYZ Corporation ha richiesto che il database monitorasse le informazioni sugli stipendi dei dipendenti e abbiamo trascurato di fornirle nelle tabelle del database che abbiamo creato. Tuttavia, non tutto è perduto. Possiamo usare il comando ALTER TABLE per aggiungere questo attributo al nostro database esistente. Vogliamo memorizzare lo stipendio come valore intero. La sintassi è abbastanza simile a quella del comando CREATE TABLE, qui è: Dipendenti di ALTER TABLE AGGIUNGERE lo stipendio INTEGER NULL;
Si noti che abbiamo specificato che i valori NULL sono consentiti per questo attributo. Nella maggior parte dei casi, non vi è alcuna opzione quando si aggiunge una colonna a una tabella esistente. Ciò è dovuto al fatto che la tabella contiene già righe senza voci per questo attributo. Pertanto, il DBMS inserisce automaticamente un valore NULL per riempire il vuoto. Creare la nostra prima tabella
Attributi e tipi di dati
Valori NULL
Costruire le tabelle rimanenti
Il meccanismo SQL consente di modificare la struttura di un database dopo la creazione