Hjem Personlig finansiering Hvordan du lager en tabellvisning med SQL-dummies

Hvordan du lager en tabellvisning med SQL-dummies

Innholdsfortegnelse:

Video: Innføring i bruk av regneark 2025

Video: Innføring i bruk av regneark 2025
Anonim

Til tider vil du hente spesifikk informasjon fra KUNDE-tabellen i SQL. Du vil ikke se på alt - bare bestemte kolonner og rader. Det du trenger er en visning.

A visning er et virtuelt bord. I de fleste implementeringer har en visning ingen uavhengig fysisk eksistens. Visningsdefinisjonen finnes bare i databasens metadata, men dataene kommer fra tabellen eller tabellene hvorfra du får visningen. Utsikten er ikke fysisk duplisert.

Enkelt tabellvisning

Hvis informasjonen du vil ha finnes i et enkelt bord, kan du opprette en enkelt tabellvisning av dataene. For eksempel, anta at du vil se på navnene og telefonnumrene til alle kunder som bor i delstaten New Hampshire. Du kan opprette en visning fra KUNDE-tabellen som bare inneholder de dataene du vil ha. Følgende SQL-setning lager denne visningen:

CREATE VIEW NH_CUST AS SELECT KUNDE. Fornavn, KUNDE. LastName, KUNDE. Telefon FRA KUNDEN HVOR KUNDE. Stat = 'NH';

Du kan oppnå samme oppgave med mindre å skrive hvis SQL-implementeringen din antar at alle tabellreferanser er de samme som i FRA-klausulen. Hvis systemet gjør det fornuftig standardforutsetning, kan du redusere setningen til følgende linjer:

CREATE VIEW NH_CUST AS SELECT Fornavn, Etternavn, Telefon FRA KUNDEN HVOR STATEN = 'NH';

Selv om den andre versjonen er lettere å skrive og lese, er den mer sårbar for forstyrrelser fra ALTER TABLE-kommandoer. Slike forstyrrelser er ikke et problem for dette enkle tilfellet, som ikke har noe med, men synspunkter med JOIN er mer robuste når de bruker fullt kvalifiserte navn.

Flersidig visning

Oftere enn ikke, må du trekke data fra to eller flere tabeller for å svare på spørsmålet ditt. Anta for eksempel at du jobber for en sportsbutikk, og du vil sende en salgsfremmende epost til alle kundene som har kjøpt skiutstyr siden butikken åpnet i fjor.

Du trenger informasjon fra KUNDE-tabellen, PRODUKT-tabellen, INVOICE-tabellen og INVOICE_LINE-tabellen. Du kan opprette en flersidig visning som viser dataene du trenger. Hver gang du bruker visningen, gjenspeiler den eventuelle endringer som skjedde i de underliggende tabellene siden du sist brukte visningen.

Databasen for denne sportsbutikken inneholder fire tabeller: KUNDE, PRODUKT, FAKTUR, og INVOICE_LINE.

Tabell Kolonne Datatype Begrensning
KUNDE KundID INTEGER IKKE NULL
Fornavn CHAR (15)
LastName < CHAR (20) IKKE NULL Gate
CHAR (25) By
CHAR (20) Stat
CHAR (2) Postnummer > CHAR (10)
Telefon CHAR (13)
PRODUKT ProduktID
INTEGER IKKE NULL Navn CHAR (25)
Beskrivelse > CHAR (30) Kategori
CHAR (15) VendorID
INTEGER Leverandørnavn
CHAR (30) FAKTA
FakturaNumber INTEGER
IKKE NULL KundID INTEGER FakturaDate
DATO TotalSale
NUMERISK (9, 2) TotaltRemittert
NUMERISK (9, 2) FormOfPayment > CHAR (10)
INVOICE_LINE Linjenummer
INTEGER IKKE NULL
FakturaNumber INTEGER IKKE NULL ProductID
INTEGER IKKE NULL > Mengde INTEGER
Salgspris NUMERISK (9, 2) Merk at noen av kolonnene inneholder begrensningen IKKE NULL.Disse kolonnene er enten primærnøklene til de respektive tabellene eller kolonnene du bestemmer
inneholde en verdi. En tabellens primærnøkkel må unike identifisere hver rad. For å gjøre det må primærnøkkelen inneholde en ikke-null-verdi i hver rad.
Tabellene relaterer seg til hverandre gjennom de kolonnene de har til felles. Følgende liste beskriver disse forholdene: KUNDE-tabellen har et

ett til mange forhold i INVOICE-tabellen. En kunde kan gjøre flere kjøp, generere flere fakturaer. Hver faktura handler imidlertid med en, og kun en, kunde. INVOICE-tabellen har et til mange forhold til INVOICE_LINE-tabellen. En faktura kan ha flere linjer, men hver linje vises på en og kun én, faktura.

PRODUKT-tabellen har også en til mange forhold til INVOICE_LINE-tabellen. Et produkt kan vises på mer enn én linje på en eller flere fakturaer. Hver linje omhandler imidlertid ett, og bare ett, produkt.

  • KUNDE-tabellen kobler til INVOICE-tabellen ved den felles CustomerID-kolonnen. FAKTUR-tabellen kobler til INVOICE_LINE-tabellen med den vanlige kolonnen InvoiceNumber. PRODUKT-tabellen kobler til INVOICE_LINE-tabellen av den vanlige ProductID-kolonnen. Disse koblingene er det som gjør denne databasen til en relasjonell database.

  • For å få tilgang til informasjonen om kunder som kjøpte skiutstyr, trenger du Fornavn, Etternavn, Gate, By, Stat og Postnummer fra KUNDE-tabellen; Kategori fra PRODUKT-tabellen; FakturaNummer fra INVOICE-tabellen; og LineNumber fra INVOICE_LINE-tabellen. Du kan opprette visningen du vil ha i etapper ved å bruke følgende påstander:

  • CREATE VIEW SKI_CUST1 AS SELECT Fornavn, Etternavn, Gate, By, Stat, Postnummer, FakturaNUMMER FRA KUNDE TILBAKE FAKTUR BRUKER (CustomerID); CREATE VIEW SKI_CUST2 AS SELECT Fornavn, Etternavn, Gate, By, Stat, Postnummer, ProduktID FRA SKI_CUST1 BLI MED INVOICE_LINE BRUKER (FakturaNumber); CREATE VIEW SKI_CUST3 AS SELECT Fornavn, Etternavn, Gate, By, Stat, Postnummer, Kategori FRA SKI_CUST2 BLI MED PRODUKT BRUKER (ProductID); CREATE VIEW SKI_CUST AS SELECT DISTINCT Fornavn, Etternavn, Gate, By, Stat, Postnummer FRA SKI_CUST3 WHERE CATEGORY = 'Ski';

Disse CREATE VIEW-setningene kombinerer data fra flere tabeller ved hjelp av JOIN-operatøren. Her er en oversikt over de fire CREATE VIEW-setningene: Den første setningen kombinerer kolonner fra KUNDE-tabellen med en kolonne i INVOICE-tabellen for å lage SKI_CUST1-visningen.

Den andre setningen kombinerer SKI_CUST1 med en kolonne fra INVOICE_LINE-tabellen for å opprette SKI_CUST2-visningen.

Den tredje setningen kombinerer SKI_CUST2 med en kolonne fra PRODUCT-tabellen for å lage SKI_CUST3-visningen.

Den fjerde setningen filtrerer ut alle rader som ikke har en kategori av Ski. Resultatet er en visning (SKI_CUST) som inneholder navnene og adressene til alle kunder som kjøpte minst ett produkt i Ski-kategorien.

DISTINCT-søkeordet i den fjerde CREATE VIEW SELECT-klausulen sikrer at du kun har én oppføring for hver kunde, selv om enkelte kunder har gjort flere kjøp av skiartikler.

Hvordan du lager en tabellvisning med SQL-dummies

Redaktørens valg

SMTP Hacks and How to Guard Against Them - dummies

SMTP Hacks and How to Guard Against Them - dummies

Noen hacks utnytter svakheter i Simple Mail Transfer Protocol (SMTP). Denne e-postkommunikasjonsprotokollen ble designet for funksjonalitet, ikke sikkerhet. Så, for å sikre at du har et visst nivå på sikkerhet, vil det beskytte informasjonen din. Kontooppsummering En smart måte at angriperne kan kontrollere om e-postkontoer eksisterer på en server, er ganske enkelt å tele ...

Best April Fools RFCs - dummies

Best April Fools RFCs - dummies

En RFC, som står for Request for Comments, er et dokument som publiseres med hensikten med å bli en Internett-standard. Gjennom årene har internettstandardsamfunnet blitt vant til å publisere interessante og humoristiske RFC-dokumenter på April Fool's Day. Her er noen av de beste: "ARPAWOCKY" (1. april 1973): Den ...

Spamfiltre brukt av nettverk - dummier

Spamfiltre brukt av nettverk - dummier

Antispamprogrammer bruker en rekke forskjellige teknikker for å bestemme sannsynligheten for et gitt stykke av e-post er spam. Disse teknikkene brukes av filtre, som undersøker hvert stykke e-post; hvert filter bruker en bestemt teknikk. Her er noen av de mest brukte filtertyper: Søkeordskontroll: Den mest åpenbare måten å ...

Redaktørens valg

Hvordan å minimere spam på et nettverk - dummies

Hvordan å minimere spam på et nettverk - dummies

Ingen antispamprogram er perfekt, så du må forstå og Forvent at en viss mengde søppelpost kommer til din innboks. Her er noen tips som du (og brukerne) bør huske på for å minimere mengden søppelpost som kommer gjennom uoppdaget: Ikke stol på e-post som ber om passordet ditt eller ...

Hvordan å trekke sikkerhetstestresultater sammen for rapportering - dummies

Hvordan å trekke sikkerhetstestresultater sammen for rapportering - dummies

Når du har gobs av sikkerhetstestdata - Fra skjermbilder og manuelle observasjoner du dokumentert til detaljerte rapporter generert av de ulike sårbarhetsskannerne du brukte - hva gjør du med det hele? Du må gå gjennom dokumentasjonen din med en fintandet kam og markere alle områdene som skiller seg ut. Base ...

Slik minimerer du databasesviktigheter for å unngå å få hakkede dummier

Slik minimerer du databasesviktigheter for å unngå å få hakkede dummier

Databasesystemer, for eksempel Microsoft SQL Server , MySQL og Oracle har lurket bak kulissene, men deres verdi og deres sårbarheter har endelig kommet til forkant. Ja, selv den mektige Oracle som en gang hevdet å være unhackable, er mottakelig for lignende utnytter som sin konkurranse. Med de mange regelverkskravene som styrer databasen ...

Redaktørens valg

Din LinkedIn-profil: Hvordan velge kontaktinnstillinger - dummies

Din LinkedIn-profil: Hvordan velge kontaktinnstillinger - dummies

Før du dykker rett inn og starter oppdatering av LinkedIn-profilen, stopp og tenk på hva slags profil du vil konstruere og vise til verden. Tenk spesielt på hvordan du vil bruke LinkedIn. For eksempel vil noen bare legge til i nettverket, men andre søker aktivt etter en ...

Måle suksessen til dine sosiale medier Endeavors - dummies

Måle suksessen til dine sosiale medier Endeavors - dummies

Måling av sosiale medier engasjement går langt utover tallet av venner, fans og tilhengere du har. Hvor mange venner du har, er ikke like viktig som hvor ofte dine SMB-anstrengelser fører folk til konkrete handlinger. I stedet fokuserer du på innsatsene, samhandlingene og samtalene du har med fans og tilhenger. Noen sosiale nettverk ...

Grunnleggende HTML for MySpace - dummies

Grunnleggende HTML for MySpace - dummies

Bruk HTML (HyperText Markup Language) for å endre hvordan MySpace-profilen ser ut og hva som vises på MySpace-siden. Her er noen grunnleggende HTML som du kan bruke med profilen din. (Du fyller i teksten mellom anførselstegnene.) Handling HTML for bruk Fet tekst Skriv fet skrift her Kursiv tekst Skriv kursiv tekst her ...