Access
 sql >> Database >  >> RDS >> Access

Introduzione alle unioni e alle relazioni di dati

Opzioni sulle unioni di dati

Join di dati e nullità di record

A volte avrai una tabella in cui in un campo mancano alcuni record. Ecco un esempio di elenco di dipendenti in cui alcuni record non specificano il dipartimento a cui appartiene il dipendente:

SELECT Employees.EmployeeNumber AS [Employee #],
       Employees.FirstName,
       Employees.LastName,
       Employees.DepartmentCode AS Department
FROM Employees;

Ciò produrrebbe:

Se crei una query di inner join di due tabelle che hanno una relazione e alcuni record della tabella figlio mancano di alcuni valori nella colonna della chiave esterna, la query produrrebbe solo i record che hanno un valore. Ecco un esempio:

SELECT Employees.EmployeeNumber AS [Employee #],
       Employees.FirstName,
       Employees.LastName,
       Departments.DepartmentName AS Department
FROM   Departments INNER JOIN Employees
       ON Departments.DepartmentCode = Employees.DepartmentCode;

Ciò produrrebbe:

Si noti che la query produce meno record. In effetti, ai motori di database non piacciono i record nulli soprattutto sui campi condivisi, campi coinvolti nelle relazioni. Per assicurarsi che tutti i record di una tabella figlio siano prodotti da una query, produrre un valore predefinito per i record i cui valori sono mancanti. Se la relazione utilizza un numero intero semplice, creare un record con il valore 0. Se la relazione utilizza una stringa, puoi creare un record con un valore "N/D". Se i record vengono elaborati da un computer, puoi creare un record con un valore generico/casuale come 00000 o qualcosa del genere.

Apprendimento pratico:gestione di unioni di dati e nullità dei record

  1. Avvia Microsoft Access
  2. Dalle risorse che accompagnano queste lezioni, apri il database di Altair Realtors3
  3. Nella barra multifunzione, fai clic su Crea e fai clic su Progettazione query
  4. Nella finestra di dialogo Mostra tabella, fare doppio clic su Proprietà e fare clic su Chiudi
  5. Nell'elenco Proprietà, fai doppio clic su PropertyNumber, City e State
  6. Passa la query alla visualizzazione Foglio dati:

  7. Nota il numero di record:48.
    Passa la query in Visualizzazione progettazione
  8. Fai clic con il pulsante destro del mouse su un'area vuota nella parte superiore della finestra e fai clic su Mostra tabella
  9. Nella finestra di dialogo Mostra tabella, fare doppio clic su PropertyTypes e fare clic su Chiudi
  10. Nell'elenco PropertyTypes, fare doppio clic su PropertyType

  11. Passa la query alla visualizzazione Foglio dati

  12. Notare il numero di record questa volta:44.
    Visualizzare la visualizzazione SQL della query e modificarne il codice come segue:
    SELECT Properties.PropertyNumber,
           Properties.City,
           Properties.State,
           Conditions.Condition
    FROM   Properties INNER JOIN Conditions
           ON Properties.Condition = Conditions.Condition;
  13. Passa la query alla visualizzazione Foglio dati

  14. Nota il numero di record:38.
    Chiudi la query senza salvarla
  15. Nel riquadro di spostamento, fai doppio clic sul modulo PropertyTypes
  16. Crea un nuovo record come segue:
    Tipo proprietà Descrizione Sconosciuto Il tipo di proprietà non è disponibile o non è chiaro. Illustrazioni
  17. Chiudi la tabella PropertyTypes
  18. Nel riquadro di navigazione, fai doppio clic sul modulo Condizioni
  19. Crea un nuovo record come segue:
    Tipo proprietà Descrizione Sconosciuto Lo stato attuale o l'aspetto (interno e/o esterno) dell'immobile non è stato verificato, non è stato valutato o non è chiaramente noto.
  20. Chiudi la tabella Condizioni
  21. Nel riquadro di spostamento, fai clic con il pulsante destro del mouse sulla tabella Proprietà e fai clic su Vista struttura
  22. Nel lato superiore della finestra, fai clic su PropertyType
  23. Nel lato inferiore, fai clic su Valore predefinito e digita Sconosciuto
  24. Nel lato superiore della finestra, fai clic su Condizione
  25. Nel lato inferiore, fai clic su Valore predefinito e digita Sconosciuto
  26. Salva la tabella e passa alla visualizzazione Foglio dati
  27. Nella colonna PropertyType, per ogni cella vuota, seleziona Sconosciuto
  28. Nella colonna Condizione, per ogni cella vuota, seleziona Sconosciuto
  29. Notare che esiste un valore predefinito sia per la colonna PropertyType che per quella Condition
  30. Impostando solo i valori indicati, creare nuovi record come segue:
    Proprietà # Tipo di proprietà Città Stato Codice postale Camere da letto Bagni Seminterrato finito Garage coperto Condizione Valore di mercato 476005 Unifamiliare Hannover PA 17331 3 2,50 Verificato 425790 152466 Martinsburg WV 1 1.00 135670 427048 Condominio Alexandria VA 3 2.00 Necessita di riparazione 622845 297427 Matinsburg Eccellente 729336 Alexandria VA 3 2.50 Necessita di riparazione 750000 300618 Harrisburg PA 17109 5 3.50 <Controllato Buona forma 515885

  31. Chiudi il tavolo
  32. Nella barra multifunzione, fai clic su Crea e fai clic su Progettazione query
  33. Nella finestra di dialogo Mostra tabella, fare doppio clic su Proprietà e fare clic su Chiudi
  34. Nell'elenco Proprietà, fai doppio clic su PropertyNumber, City e State
  35. Passa la query alla visualizzazione Foglio dati
  36. Nota il numero di record:51.
    Passa la query in Visualizzazione progettazione
  37. Fai clic con il pulsante destro del mouse su un'area vuota nella parte superiore della finestra e fai clic su Mostra tabella
  38. Nella finestra di dialogo Mostra tabella, fare doppio clic su PropertyTypes e fare clic su Chiudi
  39. Nell'elenco PropertyTypes, trascina PropertyType e rilascialo su City nella parte inferiore
  40. Nell'elenco delle proprietà, fare doppio clic su Camere e bagni

  41. Passa la query alla visualizzazione Foglio dati

  42. Notare il numero di record questa volta:51.
    Chiudi la query senza salvarla
  43. Apri il database Lambda Square Apartments1 creato e utilizzato in precedenza
  44. Nella barra multifunzione, fai clic su Crea e fai clic su Progettazione query
  45. Nella finestra di dialogo Mostra tabella, fai doppio clic su Pagamenti e poi su Chiudi
  46. Nell'elenco Pagamenti, fai doppio clic su ReceiptNumber, PaymentDate, ProcessedBy, RegistrationNumber e PaymentAmount
  47. Passa la query alla visualizzazione Foglio dati

  48. Nota il numero di record:63.
    Passa la query in Visualizzazione progettazione
  49. Fai clic con il pulsante destro del mouse su un'area vuota della finestra e fai clic su Mostra tabella...
  50. Nella finestra di dialogo Mostra tabella, fai doppio clic su Dipendenti e fai clic su Chiudi
  51. Trascina EmployeeNumber e rilascialo su ProcessedBy
  52. Nella parte inferiore della finestra, sostituisci ProcessedBy con
    Employee: [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")"

  53. Passa la query alla visualizzazione Foglio dati

  54. Nota il numero di record:46.
    Chiudi la query senza salvarla
  55. Nel riquadro di spostamento, fare doppio clic sulla tabella Impiegati e creare un nuovo record come segue (questo è per le transazioni effettuate presso la banca come un inquilino che deposita il denaro dell'affitto direttamente presso la banca):
    Numero dipendente Nome Cognome Titolo 00000 Transazione elettronica con elaborazione automatica
  56. Chiudi la tabella Dipendenti
  57. Nel riquadro di navigazione, fai clic con il pulsante destro del mouse sulla tabella Pagamenti e fai clic su Vista struttura
  58. Nel lato superiore della finestra, fai clic su Elaborato da
  59. Nella parte inferiore, fai clic su Valore predefinito e digita "00000"
  60. Salva e chiudi la tabella
  61. Apri la tabella Pagamenti
  62. Nella colonna ProcessedBy, in ogni cella vuota, digita 00000
  63. Chiudi la tabella Pagamenti
  64. Nella barra multifunzione, fai clic su Crea e fai clic su Progettazione query
  65. Nella finestra di dialogo Mostra tabella, fai doppio clic su Pagamenti e dipendenti
  66. Fai clic su Chiudi
  67. Trascina EmployeeNumber e rilascialo su ProcessedBy
  68. Nell'elenco Pagamenti, fai doppio clic su ReceiptNumber e PaymentDate
  69. Premi Tab e digita
    Employee: [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")"
  70. Nell'elenco Pagamenti, fai doppio clic su RegistrationNumber e PaymentAmount
  71. Passa la query alla visualizzazione Foglio dati
  72. Nota il numero di record:63.
    Chiudi la query senza salvarla

Unire più di due tabelle

Finora, le nostre istruzioni di join riguardavano solo due tabelle. In realtà, puoi usare più tabelle di così. La formula base per unire tre tabelle è:

SELECT field-name(s) FROM first-table
first-join-type second-table ON condition1
second-join-type third-table ON condition2

Si avvia l'espressione unendo la prima alla seconda tabella, il che significa che entrambe le tabelle devono condividere una colonna in un tipo di relazione chiave primaria-chiave esterna. Allo stesso modo, puoi creare il secondo join. Naturalmente, la seconda e la terza tabella dovrebbero avere una colonna comune. Nella maggior parte dei casi, dovrebbe esserci una colonna condivisa da tutte e tre le tabelle. La maggior parte delle volte, la relazione inizia con una colonna di chiave primaria dalla tabella padre. Quella colonna viene quindi rappresentata come chiave esterna nelle altre due tabelle.

Apprendimento pratico:unire più di due tabelle

  1. Nella barra multifunzione, fai clic su Crea e fai clic su Progettazione modulo
  2. Nella finestra delle proprietà, fare clic sulla scheda Tutto.
    Fai clic su Sorgente record e fai clic sul relativo pulsante con i puntini di sospensione
  3. Nella Mostra tabella, fai doppio clic su Dipendenti, registrazioni e appartamenti
  4. Fai clic su Chiudi
  5. Trascina EmployeeNumber dall'elenco Dipendenti e rilascialo su ProcessedBy nell'elenco Registrazioni
  6. Trascina ApartmentCode dall'elenco Appartamenti e rilascialo su PropNbr nell'elenco Registrazioni

  7. Nell'elenco Registrazioni, fare doppio clic su RegistrationID e RegistrationDate
  8. Premi Tab e digita
    Employee: [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")"
  9. Nell'elenco delle registrazioni, fai doppio clic su Nome, Cognome, Stato civile e Numero di figli
  10. Premere Tab e digitare:
    Apartment: "Apart # " & [UnitNumber] & ", " & [Bedrooms] & " bedroom(s), " & [Bathrooms] & " bathroom(s), Rate: " & [MonthlyRate] & "/month"
  11. Visualizza la vista SQL della query:
    SELECT Registrations.RegistrationID AS [Regist #],
           Registrations.RegistrationDate AS [Regist Date],
           [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")" AS Employee,
           Registrations.FirstName,
           Registrations.LastName,
           Registrations.MaritalSituation AS Status,
           Registrations.NumberOfChildren AS Children,
           "Apart # " & [UnitNumber] & ", " & [Bedrooms] & " bedroom(s), " & [Bathrooms] & " bathroom(s), Rate: " & [MonthlyRate] & "/month" AS Apartment
    FROM   Apartments INNER JOIN (Employees INNER JOIN Registrations
           ON Employees.EmployeeNumber = Registrations.ProcessedBy)
           ON Apartments.ApartmentCode = Registrations.PropNbr;
  12. Chiudi il Generatore di query
  13. Quando ti viene chiesto se desideri salvare le modifiche, fai clic su Sì
  14. Salva il modulo come allocazione degli affitti
  15. Fai doppio clic sul pulsante all'intersezione dei righelli
  16. Nella scheda delle proprietà, modificare le seguenti caratteristiche:
    Didascalia:Appartamenti Lambda Square - Allocazione dell'affitto
    Valore predefinito:Modulo continuo
    Centratura automatica:
    Pulsanti di navigazione:No
  17. Nella barra multifunzione, fai clic su Design
  18. Nella sezione Strumenti, fai clic su Aggiungi campi esistenti
  19. Nell'elenco dei campi, fai clic su Appartamento, tieni premuto Maiusc, fai clic su Registra # e rilascia Maiusc
  20. Trascina la selezione nel modulo
  21. Nella barra multifunzione, fai clic su Disponi e fai clic su Tabulare
  22. Trascina la selezione a sinistra
  23. Premi Ctrl + A per selezionare tutti i controlli
  24. Nella barra multifunzione, fai clic su Rimuovi layout
  25. Completa la progettazione del modulo. Ecco un esempio:

  26. Salva e chiudi il modulo

Join di dati e analisi dei record

Ordinamento dei record

Nei data join che abbiamo creato finora, abbiamo considerato tutti i record e lasciato che il motore di database li elenchi utilizzando solo le regole dei join integrate nell'SQL. Per rendere tale elenco più restrittivo, è possibile applicare alcune condizioni in base alle quali isolare alcuni record. È possibile creare visivamente i filtri nella vista struttura di una query o in una finestra simile. Puoi anche creare un filtro in SQL. Come fatto nelle lezioni precedenti, per includere un criterio in un SELECT dichiarazione, puoi creare un WHERE clausola.

Apprendimento pratico:Introduzione ai join e all'analisi dei dati

  1. Apri il database della Monson University1 utilizzato in precedenza
  2. Per avviare una query, sulla barra multifunzione, fai clic su Crea e fai clic su Progettazione query
  3. Nella finestra di dialogo Mostra tabella, fai clic su Chiudi
  4. Fai clic con il pulsante destro del mouse sul lato superiore della finestra e fai clic su Vista SQL
  5. Modificare la dichiarazione come segue:
    SELECT EmployeeNumber AS [Employee #],
           FirstName      AS [First Name],
           LastName       AS [Last Name],
           Title,
           DepartmentName AS Department
    FROM   Employees, Departments
    WHERE  Employees.DepartmentCode = Departments.DepartmentCode
    ORDER  BY LastName;
  6. Anteprima i risultati nella visualizzazione Foglio dati
  7. Se necessario, sulla barra multifunzione, fare clic su Home.
    Modifica le seguenti caratteristiche:
    Nome carattere:Californian FB (se non hai quel carattere, seleziona Times New Roman)
    Colore carattere:blu, accento 1, più chiaro 80% (colori tema:5a colonna, 2a riga)
    Colore di sfondo:più colori:rosso:195, verde:95, blu:15
    Linee della griglia:orizzontale
    Colore riga alternativo:più colori:rosso:128, verde:0, blu:0

  8. Chiudi la query senza salvarla
  9. Chiudi Microsoft Access