Comprensione di tutti i Risultati Relazionale

  

Questo articolo può aiutarvi a comprendere meglio le complesse SQL contenente multitable unisce, clausole-related group, e funzioni di aggregazione, di gran lunga i temi più problematici per gli sviluppatori di database più. Imparerete anche il modo corretto di gestire le eccezioni database e inserirli come effettiva funzionalità nella vostra applicazione ColdFusion. Si impara, anche, come migliorare le prestazioni di query caching in memoria per un rapido accesso. È possibile memorizzare le clausole SQL e Bachus forme Naur finché non si è blu in faccia, ma è ancora finire una partita a "pronto-il-fuoco-obiettivo" cercando di scrivere SQL complesse che funziona davvero, a meno che non avete un quadro chiaro delle esattamente come i processi di istruzioni SQL. Il tuo primo passo per visualizzare con chiarezza SQL è quello di comprendere la natura del set di risultati relazionale. Il codice in questo articolo non è supportata da Access, quindi se volete seguire insieme le liste in questo articolo, eseguire il file di questa nuova banca dati contiene ulteriori Dati e tabelle per illustrare i vari tipi di join e dei risultati che essi producono. Tutti abbiamo aggiunto al titolo di questa parte per un motivo importante che è stato già detto in precedenza. Tutti i risultati delle query SQL si presentano sotto forma di una singola tabella di righe e colonne. Se il risultato è dalla query di una singola tabella o di una complicato query relazionale che coinvolge 15 tabelle non importa, tutti i risultati delle query in forma di una singola tabella di righe e colonne. consideri il codice, che produce un risultato relazionale query che, come tutti i risultati di query, è nella forma di un a tavolo singolo.

SELECT c.CompanyID, c.CompanyName, e.Lastname, e.Firstname, e.Salary DA Company c INNER JOIN Employee e ON c.CompanyID = e.CompanyID

Si noti che il risultato di unire i risultati di due tabelle in un'unica tabella. What's this? Non è forse questo uno di quei diagrammi di Venn? Ricordo che quando il signor Suber, il junior insegnante di matematica di scuola superiore, ha detto che lei ha veramente userebbero un giorno, nel mondo reale, e si opposero? Tempo a chiamarlo e chiedere scusa! Un INNER JOIN è l'intersezione dei due insiemi di dati contenuti nelle due tabelle da unire. Concettualizzazione Perché questo è fondamentale per la scrittura SQL impeccabile? Perché ora possono facilmente visualizzare qualsiasi tipo di join tra due tabelle: Possiamo ora facilmente descrivere ciò che sta realmente accadendo con ciascuno di questi tipi di join. INNER JOIN Un risultato consiste delle colonne selezionate da entrambe le tabelle, ma contiene solo le righe JOIN che corrispondono ai valori chiave (specificato nella clausola ON) in entrambe le tabelle si è iscritto. A LEFT OUTER JOIN risultato consiste delle colonne selezionate da entrambe le tabelle, e contiene tutte le righe della tabella lato sinistro, indipendentemente dal fatto che uno di essi JOIN corrispondono ai valori fondamentali nel diritto-tavolino. Le colonne di query selezionato dalla sinistra comodino contengono i dati da tale tabella. Per ogni riga del risultato della query, se un valore chiave JOIN dalla sinistra corrisponde a un tavolino JOIN valore della chiave dal lato destro del tavolo, le colonne di query selezionato dalla destra comodino contengono i dati della colonna di tale tabella, se non , le colonne nulli.

SELECT c.CompanyID, c.CompanyName, e.Lastname, e.Firstname, e.Salary DA Company c LEFT OUTER JOIN Employee e ON c.CompanyID = e.CompanyID

A RIGHT OUTER JOIN risultato consiste delle colonne selezionate da entrambe le tabelle, e contiene tutte le righe della tabella lato destro indipendentemente dal fatto che uno di essi corrispondono ai valori chiave JOIN nella parte sinistra della tabella di fianco. Le colonne di query selezionato dalla destra comodino contengono i dati da tale tabella. Per ogni riga del risultato della query, se un JOIN valore della chiave dal lato destro del tavolo corrisponde a un valore chiave JOIN da sinistra-tavolino, le colonne di query selezionato dalla sinistra comodino contengono i dati della colonna di tale tabella, se non , le colonne nulli. UN ESTERNO FULL JOIN risultato consiste delle colonne selezionate da entrambe le tabelle, e contiene tutte le righe di entrambe le tabelle, indipendentemente dal fatto che uno di essi corrispondano alle loro JOIN valori chiave. Per ogni riga di risultati della query estratto dalla sinistra-tavolino, se il valore della chiave JOIN dalla sinistra comodino non ha corrispondenza nella tabella lato destro, che schiera risultato della query contiene valori Null nelle colonne selezionate dal lato destro del tavolo . Allo stesso modo, in una fila risultato della query estratto dal lato destro del tavolo, se il valore della chiave JOIN dal lato destro del tavolo non ha corrispondenza nella parte sinistra della tabella di lato, che la schiera di risultato della query contiene valori Null nelle colonne selezionate da sinistra - side table. Se una riga di risultati della query si uniscono i valori chiave di corrispondenza tra la sinistra e destra-tavolini, i dati provenienti da entrambe le tabelle è contenuta in quella riga risultati della query.

SELECT c.CompanyID, c.CompanyName, e.Lastname, e.Firstname, e.Salary DA Company c RIGHT OUTER JOIN Employee e ON c.CompanyID = e.CompanyID
SELECT c.CompanyID, c.CompanyName, e.Lastname, e.Firstname, e.Salary DA Company c FULL OUTER JOIN Employee e ON c.CompanyID = e.CompanyID

Okay, ora è possibile visualizzare con precisione i vari tipi di join e hanno maggiore dimestichezza con la sintassi SQL che li crea. That's great! Ma nel mondo reale, spesso affrontare unisce più di due tabelle insieme in una singola query relazionale. Come stai andando a scrivere il codice SQL complicata di aderire sette tabelle correlate e farlo bene la prima volta, ogni volta? In realtà, è un pezzo di torta. In effetti, la scrittura di una query che esegue una combinazione di INNER, LEFT OUTER, RIGHT OUTER, e FULL OUTER join tra le tabelle 15 c'è davvero più difficile scrivere di una query contenente un unico INNER JOIN tra due tabelle. Il trucco è tutto nel modo in cui si visualizzarlo!

SELECT c.CompanyID, c.CompanyName, e.Lastname, e.Firstname, e.Salary, d.FullName, d.Relationship DA Company c INNER JOIN Employee e ON c.CompanyID = e.CompanyID INNER JOIN Dependant d E. ON SSN = d.SSN

Per capire esattamente cosa si può e non si può fare con SQL, è necessario prima capire l'ordine in cui i processi di SQL le clausole di un'istruzione SQL. È possibile utilizzare il codice come un esempio di SQL ordine che segue.

SELECT c.CompanyName, e.LastName + ',' + e.FirstName AS EmployeeName, e.Salary, count (*) come NumDependants DA Company c INNER JOIN Employee e ON c.CompanyID = e.CompanyID INNER JOIN Dependant d ON E . SSN = d.SSN e.DateOfBirth WHERE <'01 / 01/82 'GROUP BY c.CompanyName, e.LastName, e.FirstName, CON e.Salary Count (*)> = 2 ORDER BY EmployeeName ASC

un articolo presentato da Daniel Carlson


Disclaimer:Il nostro sito non è responsabile per il contenuto di questo articolo. Webarticles è una risorsa gratuita di informazioni.
Importante: Questo articolo "Understanding Relational Tutti i Risultati" è stato tradotto da un software automatico. Ci dispiace per eventuali errori di ortografia che possono essersi verificati. Grazie per la vostra comprensione.


Online: 359 users browsing the articles directory