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

Introduktion til dataforbindelser og relationer

Indstillinger for dataforbindelser

Data tilsluttes og registrere ugyldighed

Nogle gange vil du have en tabel, hvor et felt mangler nogle poster. Her er et eksempel på en liste over medarbejdere, hvor nogle poster ikke angiver den afdeling, som medarbejderen tilhører:

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

Dette ville producere:

Hvis du opretter en indre joinforespørgsel af to tabeller, der har en relation, og nogle poster i den underordnede tabel mangler nogle værdier i kolonnen med fremmednøgle, vil forespørgslen kun producere de poster, der har en værdi. Her er et eksempel:

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

Dette ville producere:

Bemærk, at forespørgslen producerer færre poster. Som det sker, kan databasemotorer ikke lide nul-poster, især på delte felter, felter, der er involveret i relationer. For at sikre, at alle poster i en undertabel er produceret af en forespørgsel, skal du producere en standardværdi for poster, hvis værdier mangler. Hvis relationen bruger et simpelt heltal, skal du oprette en post med værdien 0. Hvis relationen bruger en streng, kan du oprette en post med en 'N/A'-værdi. Hvis posterne behandles af en computer, kan du oprette en post med en generisk/tilfældig værdi såsom 00000 eller noget i den stil.

Praktisk læring:Håndtering af dataforbindelser og registrerings ugyldighed

  1. Start Microsoft Access
  2. Fra de ressourcer, der følger med disse lektioner, skal du åbne Altair Realtors3-databasen
  3. På båndet skal du klikke på Opret og klikke på Forespørgselsdesign
  4. I dialogboksen Vis tabel skal du dobbeltklikke på Egenskaber og klikke på Luk
  5. I egenskabslisten skal du dobbeltklikke på PropertyNumber, City og State
  6. Skift forespørgslen til dataarkvisning:

  7. Bemærk antallet af poster:48.
    Skift forespørgslen til designvisning
  8. Højreklik på et tomt område øverst i vinduet, og klik på Vis tabel
  9. I dialogboksen Vis tabel skal du dobbeltklikke på PropertyTypes og klikke på Luk
  10. I listen PropertyTypes skal du dobbeltklikke på PropertyType

  11. Skift forespørgslen til dataarkvisning

  12. Bemærk antallet af poster denne gang:44.
    Vis SQL-visningen af ​​forespørgslen, og rediger dens kode som følger:
    SELECT Properties.PropertyNumber,
           Properties.City,
           Properties.State,
           Conditions.Condition
    FROM   Properties INNER JOIN Conditions
           ON Properties.Condition = Conditions.Condition;
  13. Skift forespørgslen til dataarkvisning

  14. Bemærk antallet af poster:38.
    Luk forespørgslen uden at gemme den
  15. I navigationsruden skal du dobbeltklikke på formularen PropertyTypes
  16. Opret en ny registrering som følger:
    Ejendomstype Beskrivelse Ukendt Ejendomstypen er ikke tilgængelig, eller den er ikke klar. Illustrationer
  17. Luk tabellen PropertyTypes
  18. I navigationsruden skal du dobbeltklikke på formularen Betingelser
  19. Opret en ny registrering som følger:
    Ejendomstype Beskrivelse Ukendt Ejendommens aktuelle tilstand eller udseende (indvendigt og/eller udvendigt) er ikke kontrolleret, ikke vurderet eller er ikke klart kendt.
  20. Luk tabellen Betingelser
  21. I navigationsruden skal du højreklikke på tabellen Egenskaber og klikke på Designvisning
  22. I den øverste side af vinduet skal du klikke på PropertyType
  23. Klik på Standardværdi i bunden, og skriv Ukendt
  24. I den øverste side af vinduet skal du klikke på Betingelse
  25. Klik på Standardværdi i bunden, og skriv Ukendt
  26. Gem tabellen, og skift den til dataarkvisningen
  27. Vælg Ukendt
  28. i kolonnen PropertyType for hver tom celle
  29. Vælg Ukendt
  30. i kolonnen Betingelse for hver tom celle
  31. Bemærk, at der er en standardværdi for både kolonnerne PropertyType og Condition
  32. Ved kun at angive de angivne værdier skal du oprette nye poster som følger:
    Ejendom # Ejendomstype By Stat Postnummer Soveværelser Badeværelser Færdig kælder Indendørs garage Tilstand Markedsværdi 476005 Single Family Hanover PA 17331 3 2,50 Tjekket 425790 152466 Martinsburg WV 1 1,00 135670 427048 Condominium Alexandria VA 3 2,00 Trænger til reparation 622845 297427 Matinsburg Excellent 729336 Alexandria VA 3 Needs 501ecki 3 01050 3 0105, 3 0105, 3 0105, 3 0105, 3 0105, 3 0105, 3 0105, 3 0105, 3 0105, 3 0105. Afkrydset God form 515885

  33. Luk tabellen
  34. På båndet skal du klikke på Opret og klikke på Forespørgselsdesign
  35. I dialogboksen Vis tabel skal du dobbeltklikke på Egenskaber og klikke på Luk
  36. I egenskabslisten skal du dobbeltklikke på PropertyNumber, City og State
  37. Skift forespørgslen til dataarkvisning
  38. Bemærk antallet af poster:51.
    Skift forespørgslen til designvisning
  39. Højreklik på et tomt område øverst i vinduet, og klik på Vis tabel
  40. I dialogboksen Vis tabel skal du dobbeltklikke på PropertyTypes og klikke på Luk
  41. På listen PropertyTypes skal du trække PropertyType og slippe den på By i bunden
  42. I egenskabslisten skal du dobbeltklikke på Soveværelser og badeværelser

  43. Skift forespørgslen til dataarkvisning

  44. Bemærk antallet af poster denne gang:51.
    Luk forespørgslen uden at gemme den
  45. Åbn Lambda Square Apartments1-databasen, der er oprettet og brugt tidligere
  46. På båndet skal du klikke på Opret og klikke på Forespørgselsdesign
  47. I dialogboksen Vis tabel skal du dobbeltklikke på Betalinger og klikke på Luk
  48. På listen Betalinger skal du dobbeltklikke på ReceiptNumber, PaymentDate, ProcessedBy, RegistrationNumber og PaymentAmount
  49. Skift forespørgslen til dataarkvisning

  50. Bemærk antallet af poster:63.
    Skift forespørgslen til designvisning
  51. Højreklik på et tomt område i vinduet, og klik på Vis tabel...
  52. I dialogboksen Vis tabel skal du dobbeltklikke på Medarbejdere og klikke på Luk
  53. Træk EmployeeNumber og slip det på ProcessedBy
  54. I den nederste side af vinduet skal du erstatte ProcessedBy med
    Employee: [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")"

  55. Skift forespørgslen til dataarkvisning

  56. Bemærk antallet af poster:46.
    Luk forespørgslen uden at gemme den
  57. I navigationsruden skal du dobbeltklikke på tabellen Medarbejdere og oprette en ny post som følger (dette er for transaktioner foretaget i banken, såsom en lejer, der indsætter lejepenge direkte i banken):
    Medarbejdernummer Fornavn Efternavn Titel 00000 Automatisk behandling af elektronisk transaktion
  58. Luk tabellen Medarbejdere
  59. I navigationsruden skal du højreklikke på betalingstabellen og klikke på Designvisning
  60. I den øverste side af vinduet skal du klikke på ProcessedBy
  61. I bunden skal du klikke på Standardværdi og skrive "00000"
  62. Gem og luk tabellen
  63. Åbn betalingstabellen
  64. Indtast 00000 i kolonnen ProcessedBy i hver tomme celle
  65. Luk tabellen Betalinger
  66. På båndet skal du klikke på Opret og klikke på Forespørgselsdesign
  67. I dialogboksen Vis tabel skal du dobbeltklikke på Betalinger og medarbejdere
  68. Klik på Luk
  69. Træk EmployeeNumber og slip det på ProcessedBy
  70. På listen Betalinger skal du dobbeltklikke på Kvitteringsnummer og Betalingsdato
  71. Tryk på Tab og skriv
    Employee: [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")"
  72. På listen Betalinger skal du dobbeltklikke på registreringsnummer og betalingsbeløb
  73. Skift forespørgslen til dataarkvisning
  74. Bemærk antallet af poster:63.
    Luk forespørgslen uden at gemme den

Samling af mere end to borde

Indtil videre involverede vores sammenslutningserklæringer kun to tabeller. Faktisk kan du bruge flere tabeller end det. Den grundlæggende formel for at forbinde tre tabeller er:

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

Du starter udtrykket ved at forbinde den første til den anden tabel, hvilket betyder, at begge tabeller skal dele en kolonne i en primær nøgle-fremmednøgletype relation. På samme måde kan du oprette den anden join. Selvfølgelig skal den anden og den tredje tabel have en fælles kolonne. I de fleste tilfælde bør der være en kolonne, som alle tre tabeller deler. Det meste af tiden starter relationen med en primær nøglekolonne fra den overordnede tabel. Denne kolonne er så repræsenteret som en fremmednøgle i de to andre tabeller.

Praktisk læring:Deltag i mere end to borde

  1. På båndet, klik på Opret og klik på Formulardesign
  2. Klik på fanen Alle i egenskabsarket.
    Klik på Optag kilde, og klik på dens ellipse-knap
  3. I Vis tabellen skal du dobbeltklikke på Medarbejdere, registreringer og lejligheder
  4. Klik på Luk
  5. Træk EmployeeNumber fra medarbejderlisten, og slip det på ProcessedBy på registreringslisten
  6. Træk ApartmentCode fra lejlighedslisten, og slip den på PropNbr på registreringslisten

  7. I registreringslisten skal du dobbeltklikke på RegistrationID og RegistrationDate
  8. Tryk på Tab og skriv
    Employee: [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")"
  9. I registreringslisten skal du dobbeltklikke på Fornavn, Efternavn, Ægteskabsstatus og Antal Børn
  10. Tryk på Tab og skriv:
    Apartment: "Apart # " & [UnitNumber] & ", " & [Bedrooms] & " bedroom(s), " & [Bathrooms] & " bathroom(s), Rate: " & [MonthlyRate] & "/month"
  11. Vis SQL-visningen af ​​forespørgslen:
    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. Luk Query Builder
  13. Når du bliver spurgt, om du vil gemme ændringerne, skal du klikke på Ja
  14. Gem formularen som Lejetildelinger
  15. Dobbeltklik på knappen i skæringspunktet mellem linealerne
  16. I egenskabsarket skal du ændre følgende egenskaber:
    Billedtekst:Lambda Square Apartments - Lejetildeling
    Standardværdi:Fortløbende formular
    Autocenter:Ja
    Navigationsknapper:Nej
  17. På båndet skal du klikke på Design
  18. I afsnittet Værktøjer skal du klikke på Tilføj eksisterende felter
  19. I feltlisten, klik på Lejlighed, tryk og hold Shift nede, klik på Registrer #, og slip Shift
  20. Træk markeringen til formularen
  21. På båndet, klik på Arranger og klik på Tabel
  22. Træk markeringen til venstre
  23. Tryk på Ctrl + A for at vælge alle kontrolelementer
  24. På båndet skal du klikke på Fjern layout
  25. Fuldfør designet af formularen. Her er et eksempel:

  26. Gem og luk formularen

Dataforbindelser og registreringsanalyser

Sortering af poster

I de data joins, vi har oprettet indtil videre, overvejede vi alle poster og lod databasemotoren liste dem ved kun at bruge reglerne for joins indbygget i SQL. For at gøre en sådan liste mere restriktiv kan du anvende nogle betingelser for at isolere nogle poster. Du kan oprette filtrene visuelt i designvisningen af ​​en forespørgsel eller i et lignende vindue. Du kan også oprette et filter i SQL. Som gjort i tidligere lektioner, at inkludere et kriterium i en SELECT erklæring, kan du oprette en WHERE klausul.

Praktisk læring:Introduktion af tilslutninger og dataanalyse

  1. Åbn Monson University1-databasen, der blev brugt tidligere
  2. For at starte en forespørgsel skal du på båndet klikke på Opret og klikke på Forespørgselsdesign
  3. Klik på Luk
  4. i dialogboksen Vis tabel
  5. Højreklik på toppen af ​​vinduet, og klik på SQL View
  6. Rediger sætningen som følger:
    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;
  7. Se et eksempel på resultaterne i dataarkvisningen
  8. Klik om nødvendigt på Hjem på båndet.
    Skift følgende egenskaber:
    Skrifttypenavn:Californisk FB (hvis du ikke har den skrifttype, vælg Times New Roman)
    Skriftfarve:Blå, Accent 1, Lysere 80 % (Temafarver:5. kolonne, 2. række)
    Baggrundsfarve:Flere farver:Rød:195, Grøn:95, Blå:15
    Gitterlinjer:Vandrette
    Alternativ rækkefarve:Flere farver:Rød:128, Grøn:0, Blå:0

  9. Luk forespørgslen uden at gemme den
  10. Luk Microsoft Access

  1. php-kode til at teste pdo er tilgængelig?

  2. Bogen "PostgreSQL 9.0 High Performance" er ude

  3. UTL_FILE.FOPEN() procedure accepterer ikke sti til mappe?

  4. ORD() Eksempler – MySQL