Možnosti datových spojení
Sloučení dat a neplatnost záznamu
Někdy budete mít tabulku, kde v poli chybí nějaké záznamy. Zde je příklad seznamu zaměstnanců, kde některé záznamy neurčují oddělení, do kterého zaměstnanec patří:
SELECT Employees.EmployeeNumber AS [Employee #], Employees.FirstName, Employees.LastName, Employees.DepartmentCode AS Department FROM Employees;
Výsledkem by bylo:
Pokud vytvoříte dotaz vnitřního spojení dvou tabulek, které mají vztah, a některým záznamům podřízené tabulky chybí některé hodnoty ve sloupci cizího klíče, dotaz vytvoří pouze záznamy, které mají hodnotu. Zde je příklad:
SELECT Employees.EmployeeNumber AS [Employee #], Employees.FirstName, Employees.LastName, Departments.DepartmentName AS Department FROM Departments INNER JOIN Employees ON Departments.DepartmentCode = Employees.DepartmentCode;
Výsledkem by bylo:
Všimněte si, že dotaz vytváří méně záznamů. Jak se stává, databázové stroje nemají rády nulové záznamy, zejména ve sdílených polích, polích, která jsou zapojena do vztahů. Chcete-li se ujistit, že všechny záznamy podřízené tabulky jsou vytvářeny dotazem, vytvořte výchozí hodnotu pro záznamy, jejichž hodnoty chybí. Pokud vztah používá jednoduché celé číslo, vytvořte záznam s hodnotou 0. Pokud vztah používá řetězec, můžete vytvořit záznam s hodnotou 'N/A'. Pokud jsou záznamy zpracovávány počítačem, můžete vytvořit záznam s obecnou/náhodnou hodnotou, jako je 00000 nebo něco podobného.
Praktické učení:Zacházení se spojeními dat a neplatností záznamů
- Spusťte aplikaci Microsoft Access
- Ze zdrojů, které doprovázejí tyto lekce, otevřete databázi Altair Realtors3
- Na pásu karet klikněte na Vytvořit a poté na Návrh dotazu
- V dialogovém okně Zobrazit tabulku poklepejte na Vlastnosti a klikněte na Zavřít
- V seznamu Vlastnosti poklepejte na PropertyNumber, City a State
- Přepněte dotaz do zobrazení datového listu:
- Všimněte si počtu záznamů:48.
Přepněte dotaz do návrhového zobrazení - Klikněte pravým tlačítkem na prázdnou oblast v horní části okna a klikněte na Zobrazit tabulku
- V dialogovém okně Zobrazit tabulku poklepejte na PropertyTypes a klikněte na Zavřít
- V seznamu PropertyTypes poklepejte na PropertyType
- Přepněte dotaz do zobrazení datového listu
- Všimněte si tentokrát počtu záznamů:44.
Zobrazte pohled SQL dotazu a změňte jeho kód následovně:SELECT Properties.PropertyNumber, Properties.City, Properties.State, Conditions.Condition FROM Properties INNER JOIN Conditions ON Properties.Condition = Conditions.Condition;
- Přepněte dotaz do zobrazení datového listu
- Všimněte si počtu záznamů:38.
Zavřete dotaz bez jeho uložení - V navigačním podokně poklepejte na formulář PropertyTypes
- Vytvořte nový záznam následovně:
Typ vlastnosti Popis Neznámý Typ vlastnosti není k dispozici nebo není jasný. Ilustrace - Zavřete tabulku PropertyTypes
- V navigačním podokně poklepejte na formulář Podmínky
- Vytvořte nový záznam následovně:
Typ vlastnosti Popis Neznámý Současný stav nebo vzhled (interiér a/nebo exteriér) nemovitosti nebyl zkontrolován, nebyl posouzen nebo není jasně znám. - Zavřete tabulku podmínek
- V navigačním podokně klikněte pravým tlačítkem na tabulku Vlastnosti a klikněte na Návrhové zobrazení
- V horní části okna klikněte na PropertyType
- Ve spodní části klikněte na Výchozí hodnotu a zadejte Neznámé
- V horní části okna klikněte na Podmínka
- Ve spodní části klikněte na Výchozí hodnotu a zadejte Neznámé
- Uložte tabulku a přepněte ji do zobrazení datového listu
- Ve sloupci PropertyType vyberte pro každou prázdnou buňku možnost Neznámé
- Ve sloupci Podmínka vyberte pro každou prázdnou buňku možnost Neznámé
- Všimněte si, že existuje výchozí hodnota pro sloupce PropertyType a Condition
- Nastavením pouze uvedených hodnot vytvořte nové záznamy následovně:
Vlastnost # Typ vlastnosti Město Stát PSČ Ložnice Koupelny Dokončený suterén Krytá garáž Podmínka Tržní hodnota 476005 Single Family Hanover PA 17331 3 2,50 Zkontrolováno 425790 152466 Martinsburg WV 1 1,00 135670 427048 Condominium Alexandria VA 3 2,00 Potřebuje opravu 622845 297427 Matinsburg Excelent 729336 Alexandria VA 3 Repair.06070 Need Harrisburg 2,05 705 Need Harrisburg Zkontrolováno Dobrý tvar 515885 - Zavřete tabulku
- Na pásu karet klikněte na Vytvořit a poté na Návrh dotazu
- V dialogovém okně Zobrazit tabulku poklepejte na Vlastnosti a klikněte na Zavřít
- V seznamu Vlastnosti poklepejte na PropertyNumber, City a State
- Přepněte dotaz do zobrazení datového listu
- Všimněte si počtu záznamů:51.
Přepněte dotaz do návrhového zobrazení - Klikněte pravým tlačítkem na prázdnou oblast v horní části okna a klikněte na Zobrazit tabulku
- V dialogovém okně Zobrazit tabulku poklepejte na PropertyTypes a klikněte na Zavřít
- V seznamu PropertyTypes přetáhněte PropertyType a pusťte jej na City v dolní části
- V seznamu Vlastnosti poklepejte na Ložnice a koupelny
- Přepněte dotaz do zobrazení datového listu
- Všimněte si tentokrát počtu záznamů:51.
Zavřete dotaz bez jeho uložení - Otevřete databázi Lambda Square Apartments1 vytvořenou a používanou dříve
- Na pásu karet klikněte na Vytvořit a poté na Návrh dotazu
- V dialogovém okně Zobrazit tabulku dvakrát klikněte na Platby a klikněte na Zavřít
- V seznamu Platby dvakrát klikněte na ReceiptNumber, PaymentDate, ProcessedBy, RegistrationNumber a PaymentAmount
- Přepněte dotaz do zobrazení datového listu
- Všimněte si počtu záznamů:63.
Přepněte dotaz do návrhového zobrazení - Klikněte pravým tlačítkem na prázdnou oblast v okně a klikněte na Zobrazit tabulku...
- V dialogovém okně Zobrazit tabulku dvakrát klikněte na Zaměstnanci a klikněte na Zavřít
- Přetáhněte EmployeeNumber a umístěte jej na ProcessedBy
- Ve spodní části okna nahraďte ProcessedBy za
Employee: [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")"
- Přepněte dotaz do zobrazení datového listu
- Všimněte si počtu záznamů:46.
Zavřete dotaz bez jeho uložení - V navigačním podokně poklepejte na tabulku Zaměstnanci a vytvořte nový záznam následujícím způsobem (to se týká transakcí provedených v bance, jako je nájemce, který vloží peníze z pronájmu přímo v bance):
EmployeeNumber Jméno Příjmení Název 00000 Automatické zpracování elektronické transakce - Zavřete tabulku Zaměstnanci
- V navigačním podokně klikněte pravým tlačítkem na tabulku Platby a klikněte na Návrhové zobrazení
- V horní části okna klikněte na Zpracováno
- Ve spodní části klikněte na Výchozí hodnotu a zadejte "00000"
- Uložte a zavřete tabulku
- Otevřete tabulku Platby
- Do sloupce ProcessedBy zadejte do každé prázdné buňky 00000
- Zavřete tabulku Platby
- Na pásu karet klikněte na Vytvořit a poté na Návrh dotazu
- V dialogovém okně Zobrazit tabulku poklepejte na položku Platby a zaměstnanci
- Klikněte na tlačítko Zavřít
- Přetáhněte EmployeeNumber a umístěte jej na ProcessedBy
- V seznamu Platby dvakrát klikněte na Číslo potvrzení a Datum platby
- Stiskněte tabulátor a zadejte
Employee: [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")"
- V seznamu Platby poklepejte na RegistrationNumber a PaymentAmount
- Přepněte dotaz do zobrazení datového listu
- Všimněte si počtu záznamů:63.
Zavřete dotaz bez jeho uložení
Spojení více než dvou stolů
Naše spojení zatím zahrnovalo pouze dvě tabulky. Ve skutečnosti můžete použít více tabulek. Základní vzorec pro spojení tří tabulek je:
SELECT field-name(s) FROM first-table first-join-type second-table ON condition1 second-join-type third-table ON condition2
Výraz zahájíte spojením první tabulky s druhou, což znamená, že obě tabulky by měly sdílet sloupec ve vztahu primární klíč-cizí klíč. Stejným způsobem můžete vytvořit druhé spojení. Druhá a třetí tabulka by samozřejmě měly mít společný sloupec. Ve většině případů by měl existovat sloupec, který sdílejí všechny tři tabulky. Většinu času začíná vztah sloupcem primárního klíče z nadřazené tabulky. Tento sloupec je pak reprezentován jako cizí klíč v dalších dvou tabulkách.
Praktické učení:Spojení více než dvou stolů
- Na pásu karet klikněte na Vytvořit a poté na Návrh formuláře
- V listu vlastností klikněte na kartu Vše.
Klikněte na Zdroj záznamu a klikněte na tlačítko se třemi tečkami - V tabulce Zobrazit poklepejte na položku Zaměstnanci, registrace a byty
- Klikněte na tlačítko Zavřít
- Přetáhněte EmployeeNumber ze seznamu Employees a umístěte jej na ProcessedBy v seznamu Registrations
- Přetáhněte kód bytu ze seznamu apartmánů a pusťte jej na PropNbr v seznamu registrací
- V seznamu Registrací poklepejte na RegistrationID a RegistrationDate
- Stiskněte klávesu Tab a zadejte
Employee: [EmployeeNumber] & " - " & [EmployeeName] & " (" & [Title] & ")"
- V seznamu Registrací dvakrát klikněte na Jméno, Příjmení, Manželský stav a Počet dětí
- Stiskněte Tab a zadejte:
Apartment: "Apart # " & [UnitNumber] & ", " & [Bedrooms] & " bedroom(s), " & [Bathrooms] & " bathroom(s), Rate: " & [MonthlyRate] & "/month"
- Zobrazte SQL pohled na dotaz:
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;
- Zavřete Tvůrce dotazů
- Po dotázání, zda chcete změny uložit, klikněte na Ano
- Uložte formulář jako Alokace nájemného
- Dvakrát klikněte na tlačítko v průsečíku pravítek
- V listu vlastností změňte následující vlastnosti:
Popis:Apartmány na náměstí Lambda – přidělování nájemného
Výchozí hodnota:Nepřetržitý formulář
Automatické vycentrování:Ano
Navigační tlačítka:Ne - Na pásu karet klikněte na Návrh
- V části Nástroje klikněte na Přidat existující pole
- V seznamu polí klikněte na Byt, stiskněte a podržte klávesu Shift, klikněte na Registrovat # a uvolněte klávesu Shift.
- Přetáhněte výběr do formuláře
- Na pásu karet klikněte na Uspořádat a poté na Tabelární
- Přetáhněte výběr doleva
- Stisknutím Ctrl + A vyberte všechny ovládací prvky
- Na pásu karet klikněte na Odebrat rozvržení
- Dokončete návrh formuláře. Zde je příklad:
- Uložte a zavřete formulář
Sloučení dat a analýzy záznamů
Třídění záznamů
V dosud vytvořených spojeních dat jsme vzali v úvahu všechny záznamy a nechali databázový stroj vypsat je pouze pomocí pravidel spojení vestavěných v SQL. Aby byl takový seznam více omezující, můžete použít některé podmínky, podle kterých izolujete některé záznamy. Filtry můžete vizuálně vytvořit v návrhovém zobrazení dotazu nebo v podobném okně. Můžete také vytvořit filtr v SQL. Stejně jako v předchozích lekcích zahrnout kritérium do SELECT můžete vytvořit KDE doložka.
Praktické učení:Představujeme spojení a analýzu dat
- Otevřete dříve používanou databázi Monson University1
- Chcete-li zahájit dotaz, na pásu karet klikněte na Vytvořit a poté na Návrh dotazu
- V dialogovém okně Zobrazit tabulku klikněte na Zavřít
- Klikněte pravým tlačítkem na horní stranu okna a klikněte na SQL View
- Výpis změňte následovně:
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;
- Náhled výsledků v zobrazení datového listu
- V případě potřeby klikněte na pásu karet na Domů.
Změňte následující vlastnosti:
Název písma:Californian FB (pokud toto písmo nemáte, vyberte Times New Roman)
Barva písma:modrá, akcent 1, světlejší 80 % (barvy motivu:5. sloupec, 2. řádek)
Barva pozadí:Více barev:Červená:195, Zelená:95, Modrá:15
Mřížka:Horizontální
Barva alternativní řady:Více barev:Červená:128, Zelená:0, Modrá:0 - Zavřete dotaz bez jeho uložení
- Zavřete Microsoft Access