sql >> Databasteknik >  >> RDS >> Access

Introduktion till datakopplingar och relationer

Alternativ för dataanslutningar

Dataanslutningar och registrera nullitet

Ibland har du en tabell där ett fält saknar några poster. Här är ett exempel på en lista över anställda där vissa poster inte anger avdelningen som den anställde tillhör:

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

Detta skulle producera:

Om du skapar en inre kopplingsfråga för två tabeller som har en relation och vissa poster i den underordnade tabellen saknar några värden i kolumnen för främmande nyckel, skulle frågan endast producera de poster som har ett värde. Här är ett exempel:

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

Detta skulle producera:

Observera att frågan ger färre poster. Som det händer, databasmotorer gillar inte nollposter, särskilt på delade fält, fält som är involverade i relationer. För att säkerställa att alla poster i en underordnad tabell produceras av en fråga, skapa ett standardvärde för poster vars värden saknas. Om relationen använder ett enkelt heltal, skapa en post med värdet 0. Om relationen använder en sträng kan du skapa en post med ett "N/A"-värde. Om posterna bearbetas av en dator kan du skapa en post med ett generiskt/slumpmässigt värde som 00000 eller något liknande.

Praktisk inlärning:Hantera datakopplingar och registrera nullitet

  1. Starta Microsoft Access
  2. Öppna Altair Realtors3-databasen från resurserna som följer med dessa lektioner
  3. På menyfliksområdet, klicka på Skapa och klicka på Frågedesign
  4. I dialogrutan Visa tabell dubbelklickar du på Egenskaper och klickar på Stäng
  5. I listan Egenskaper dubbelklickar du på PropertyNumber, City och State
  6. Byt frågan till databladsvy:

  7. Lägg märke till antalet poster:48.
    Växla frågan till designvy
  8. Högerklicka på ett tomt område överst i fönstret och klicka på Visa tabell
  9. I dialogrutan Visa tabell dubbelklickar du på PropertyTypes och klickar på Stäng
  10. I listan PropertyTypes dubbelklickar du på PropertyType

  11. Byt frågan till databladsvy

  12. Lägg märke till antalet poster den här gången:44.
    Visa SQL-vyn för frågan och ändra dess kod enligt följande:
    SELECT Properties.PropertyNumber,
           Properties.City,
           Properties.State,
           Conditions.Condition
    FROM   Properties INNER JOIN Conditions
           ON Properties.Condition = Conditions.Condition;
  13. Byt frågan till databladsvy

  14. Lägg märke till antalet poster:38.
    Stäng frågan utan att spara den
  15. Dubbelklicka på formuläret PropertyTypes i navigeringsfönstret.
  16. Skapa en ny post enligt följande:
    PropertyType Beskrivning Okänd Egenskapstypen är inte tillgänglig eller så är den inte tydlig. Illustrationer
  17. Stäng tabellen PropertyTypes
  18. I navigeringsfönstret dubbelklickar du på formuläret Villkor
  19. Skapa en ny post enligt följande:
    PropertyType Beskrivning Okänd Fastighetens nuvarande skick eller utseende (interiört och/eller exteriört) har inte kontrollerats, inte bedömts eller är inte klart känt.
  20. Stäng tabellen Villkor
  21. I navigeringsfönstret högerklickar du på tabellen Egenskaper och klickar på Designvy
  22. Överst i fönstret klickar du på PropertyType
  23. Klicka på Standardvärde längst ned och skriv Okänt
  24. Överst i fönstret klickar du på Villkor
  25. Klicka på Standardvärde längst ned och skriv Okänt
  26. Spara tabellen och växla den till databladsvyn
  27. Välj Okänt
  28. i kolumnen Egenskapstyp för varje tom cell
  29. Välj Okänt
  30. i kolumnen Villkor för varje tom cell
  31. Observera att det finns ett standardvärde för både egenskapstyp och villkorskolumner
  32. Genom att endast ställa in de angivna värdena skapar du nya poster enligt följande:
    Egendom # Egenskapstyp Stad Stat Postnummer Sovrum Badrum Färdig källare Inomhusgarage Skick Marknadsvärde 476005 Singelfamilj Hanover PA 17331 3 2,50 Kontrollerat 425790 152466 Martinsburg WV 1 1,00 135670 427048 Condominium Alexandria VA 3 2,00 Behöver repareras 622845 297427 Matinsburg Excellent 729336 Alexandria VA 3 Needs 501ecki 3 0105 3 0105 3 0105 3 0105 3 0105 3 0105 3 0105 3 0105 3 0105 3 01 09 50 605 60105 729336 Alexandria VA 3 01050 5 0105 501050 501050 501050 501505005005005005000500000 501009. Markerad Bra form 515885

  33. Stäng tabellen
  34. På menyfliksområdet, klicka på Skapa och klicka på Frågedesign
  35. I dialogrutan Visa tabell dubbelklickar du på Egenskaper och klickar på Stäng
  36. I listan Egenskaper dubbelklickar du på PropertyNumber, City och State
  37. Byt frågan till databladsvy
  38. Lägg märke till antalet poster:51.
    Växla frågan till designvy
  39. Högerklicka på ett tomt område överst i fönstret och klicka på Visa tabell
  40. I dialogrutan Visa tabell dubbelklickar du på PropertyTypes och klickar på Stäng
  41. I listan PropertyTypes, dra PropertyType och släpp den på City längst ned
  42. Dubbelklicka på Sovrum och badrum i listan Egenskaper

  43. Byt frågan till databladsvy

  44. Lägg märke till antalet poster den här gången:51.
    Stäng frågan utan att spara den
  45. Öppna databasen Lambda Square Apartments1 som skapats och användes tidigare
  46. På menyfliksområdet, klicka på Skapa och klicka på Frågedesign
  47. I dialogrutan Visa tabell dubbelklickar du på Betalningar och klickar på Stäng
  48. I betalningslistan dubbelklickar du på ReceiptNumber, PaymentDate, ProcessedBy, RegistrationNumber och PaymentAmount
  49. Byt frågan till databladsvy

  50. Lägg märke till antalet poster:63.
    Växla frågan till designvy
  51. Högerklicka på ett tomt område i fönstret och klicka på Visa tabell...
  52. I dialogrutan Visa tabell dubbelklickar du på Anställda och klickar på Stäng
  53. Dra EmployeeNumber och släpp det på ProcessedBy
  54. Längst ner i fönstret, ersätt ProcessedBy med
    Employee: [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")"

  55. Byt frågan till databladsvy

  56. Lägg märke till antalet poster:46.
    Stäng frågan utan att spara den
  57. I navigeringsfönstret dubbelklickar du på tabellen Anställda och skapar en ny post enligt följande (detta är för transaktioner gjorda på banken, till exempel en hyresgäst som sätter in hyrespengar direkt på banken):
    Anställdsnummer Förnamn Efternamn Titel 00000 Automatisk bearbetning av elektronisk transaktion
  58. Stäng tabellen Anställda
  59. I navigeringsfönstret högerklickar du på tabellen Betalningar och klickar på Designvy
  60. Överst i fönstret klickar du på ProcessedBy
  61. Klicka på Standardvärde längst ned och skriv "00000"
  62. Spara och stäng tabellen
  63. Öppna betalningstabellen
  64. I kolumnen ProcessedBy, i varje tom cell, skriv 00000
  65. Stäng tabellen Betalningar
  66. På menyfliksområdet, klicka på Skapa och klicka på Frågedesign
  67. I dialogrutan Visa tabell dubbelklickar du på Betalningar och anställda
  68. Klicka på Stäng
  69. Dra EmployeeNumber och släpp det på ProcessedBy
  70. I betalningslistan dubbelklickar du på Receipt Number och PaymentDate
  71. Tryck på Tab och skriv
    Employee: [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")"
  72. Dubbelklicka på RegistrationNumber och PaymentAmount i listan Betalningar
  73. Byt frågan till databladsvy
  74. Lägg märke till antalet poster:63.
    Stäng frågan utan att spara den

Sammanfoga fler än två bord

Hittills har våra anslutningsuttalanden endast omfattat två tabeller. Egentligen kan du använda fler tabeller än så. Den grundläggande formeln för att sammanfoga tre tabeller är:

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

Du startar uttrycket genom att sammanfoga den första till den andra tabellen, vilket innebär att båda tabellerna ska dela en kolumn i en primär nyckel-främmande nyckeltyp av relation. På samma sätt kan du skapa den andra anslutningen. Naturligtvis ska den andra och den tredje tabellen ha en gemensam kolumn. I de flesta fall bör det finnas en kolumn som alla tre tabellerna delar. För det mesta börjar relationen med en primärnyckelkolumn från den överordnade tabellen. Den kolumnen representeras sedan som en främmande nyckel i de andra två tabellerna.

Praktisk inlärning:gå med i fler än två bord

  1. På menyfliksområdet, klicka på Skapa och klicka på Formulärdesign
  2. Klicka på fliken Alla i egenskapsbladet.
    Klicka på Spela in källa och klicka på dess ellipsknapp
  3. Dubbelklicka på Anställda, registreringar och lägenheter i visningstabellen
  4. Klicka på Stäng
  5. Dra EmployeeNumber från listan Anställda och släpp det på ProcessedBy i listan Registreringar
  6. Dra lägenhetskoden från lägenhetslistan och släpp den på PropNbr på registreringslistan

  7. I registreringslistan dubbelklickar du på RegistrationID och RegistrationDate
  8. Tryck på Tab och skriv
    Employee: [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")"
  9. I registreringslistan dubbelklickar du på Förnamn, Efternamn, Äktenskaplig Status och Antal Barn
  10. Tryck på Tab och skriv:
    Apartment: "Apart # " & [UnitNumber] & ", " & [Bedrooms] & " bedroom(s), " & [Bathrooms] & " bathroom(s), Rate: " & [MonthlyRate] & "/month"
  11. Visa SQL-vyn för frågan:
    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. Stäng frågebyggaren
  13. När du tillfrågas om du vill spara ändringarna klickar du på Ja
  14. Spara formuläret som Hyrestilldelningar
  15. Dubbelklicka på knappen i skärningspunkten mellan linjalerna
  16. Ändra följande egenskaper i egenskapsbladet:
    Bildtext:Lambda Square Apartments - Hyresfördelning
    Standardvärde:Fortlöpande formulär
    Autocenter:Ja
    Navigeringsknappar:Nej
  17. På menyfliksområdet klickar du på Design
  18. I avsnittet Verktyg klickar du på Lägg till befintliga fält
  19. I fältlistan, klicka på Lägenhet, tryck och håll ned Shift, klicka på Registrera # och släpp Shift
  20. Dra markeringen till formuläret
  21. På menyfliksområdet, klicka på Ordna och klicka på Tabell
  22. Dra markeringen åt vänster
  23. Tryck på Ctrl + A för att välja alla kontroller
  24. På menyfliksområdet klickar du på Ta bort layout
  25. Slutför utformningen av formuläret. Här är ett exempel:

  26. Spara och stäng formuläret

Datakopplingar och registeranalyser

Sortering av poster

I de datakopplingar vi har skapat hittills tog vi hänsyn till alla poster och lät databasmotorn lista dem med bara reglerna för kopplingar inbyggda i SQL. För att göra en sådan lista mer restriktiv kan du tillämpa vissa villkor för att isolera vissa poster. Du kan skapa filtren visuellt i designvyn för en fråga eller i ett liknande fönster. Du kan också skapa ett filter i SQL. Som gjort i tidigare lektioner, att inkludera ett kriterium i en SELECT uttalande kan du skapa en WHERE klausul.

Praktisk inlärning:Introduktion av anslutningar och dataanalys

  1. Öppna Monson University1-databasen som användes tidigare
  2. För att starta en fråga, på menyfliksområdet, klicka på Skapa och klicka på Frågedesign
  3. I dialogrutan Visa tabell klickar du på Stäng
  4. Högerklicka på den övre sidan av fönstret och klicka på SQL View
  5. Ändra uttalandet enligt följande:
    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. Förhandsgranska resultaten i databladsvyn
  7. Om det behövs, på menyfliksområdet, klicka på Hem.
    Ändra följande egenskaper:
    Teckensnittsnamn:Californian FB (om du inte har det teckensnittet, välj Times New Roman)
    Teckenfärg:blå, accent 1, ljusare 80 % (temafärger:5:e kolumnen, 2:a raden)
    Bakgrundsfärg:Fler färger:Röd:195, Grön:95, Blå:15
    Rutnät:Horisontella
    Alternativ radfärg:Fler färger:Röd:128, Grön:0, Blå:0

  8. Stäng frågan utan att spara den
  9. Stäng Microsoft Access

  1. Exportera tabell från databas till csv-fil

  2. Topp 10 vanliga frågor om SQL Server Performance Monitoring

  3. PostgreSQL-konfigurationsfuskblad

  4. Exportera SQL-frågedata till Excel