sql >> Databasteknik >  >> RDS >> Access

Introduktion till specialfrågor

Parameteriserade frågor

Inledning

En parameteriserad fråga är en fråga som saknar ett värde i ett kriterium. Ordet "saknas" här verkar negativt för att indikera något dåligt i frågan, men det är inte så. Frågan skapas avsiktligt så för att ett värde ska ges till dess filter. När frågan skapas är filtret konfigurerat på ett visst sätt.

En parameteriserad fråga är en fråga som saknar ett värde i ett kriterium. Ordet "saknas" här verkar negativt för att indikera något dåligt i frågan, men det är inte så. Frågan skapas avsiktligt så för att ett värde ska ges till dess filter. När frågan skapas är filtret konfigurerat på ett visst sätt. När frågan körs måste det saknade värdet anges för att fullfölja kriteriet, sedan är frågan klar och resultatet av frågan produceras. För det mesta skapas en parametriserad fråga så att användaren måste ange den eller de specifika posterna som ska produceras.

Även om vi specificerade att frågan är parametriserad, är det faktiskt SQL-satsen som parametriseras. Detta innebär att du kan skapa ett SQL-uttryck som används som postkälla för ett formulär eller en rapport, men tvinga användaren att tillhandahålla den information som saknas så att formuläret eller rapporten endast skulle visa posterna som använder det värdet.

Praktisk inlärning:Introduktion av parametriserade frågor

  1. Starta Microsoft Access
  2. I listan med filer klickar du på Altair Realtors3 från föregående lektion
  3. På menyfliksområdet, klicka på Skapa och klicka på Frågedesign
  4. I dialogrutan Visa tabell klickar du på Egenskaper, klickar på Lägg till och klickar på Stäng
  5. I topplistan, dubbelklicka på PropertyNumber, PropertyType, City, Bedrooms, Bathrooms, FinishedBasement, IndoorGarage, Condition och MarketValue
  6. Klicka på knappen Datablad i statusfältet för att se resultaten
  7. Om det behövs, på menyfliksområdet, klicka på Hem.
    Ändra följande egenskaper:
    Teckensnittsnamn:Calisto MT (om du inte har det teckensnittet, välj Times New Roman)
    Bakgrundsfärg:grön, accent 6, ljusare 40 % (temafärger:10:e kolumnen, 4:e raden)
    Alternativ radfärg:grön, accent 6, ljusare 80 % (temafärger:10:e kolumnen, 2:a raden)

  8. När du har sett resultatet klickar du på pilen under Visa-knappen i avsnittet Visningar på menyfliksområdet och klickar på SQL-vy
  9. Ändra SQL-satsen enligt följande:
    SELECT Properties.PropertyNumber,
           Properties.PropertyType AS [Property Type],
           Properties.City,
           Properties.Bedrooms AS Beds,
           Properties.Bathrooms AS Baths,
           Properties.FinishedBasement AS [Basement?],
           Properties.IndoorGarage AS [Garage?],
           Properties.Condition,
           Properties.MarketValue AS [Market Value]
    FROM   Properties;
  10. Visa designvyn för frågan

Skapa en parametriserad fråga

När du skapar en parameteriserad fråga måste du ange en parameter till den. För att fortsätta öppnar du frågan i designvyn och väljer de kolumner som behövs. I rutan Kriterier i fältet som ska innehålla kriterierna skriver du hakparenteserna[]. Inom parenteserna anger du vad du vill, till exempel ett meddelande eller en fråga. Meddelandet eller frågan kommer att presenteras för användaren som måste skriva ett värde i en textruta. När användaren anger värdet och klickar på OK eller trycker på Enter, körs frågan.

Praktisk inlärning:Skapa ett parametriserat SQL-uttryck

  1. Klicka på rutan Kriterier för kolumnen PropertyNumber och skriv:[Ange egenskapen # för att visa:]

  2. Byt frågan till databladsvy för att se resultatet
  3. Ange fastighetsnumret som 192703

  4. Klicka på OK

  5. Återgå till designvyn
  6. Ta bort [Ange egenskapen # för att visa:]
  7. Klicka på rutan Kriterier för kolumnen Egenskapstyp och skriv:[Ange den typ av egenskap du vill se:]

  8. Byt frågan till databladsvy för att se resultatet
  9. Ange egenskapstypen som radhus

  10. Tryck på Enter

  11. Återgå till designvyn

Parameteriserad konjunktion

Du kan skapa en parametriserad fråga som ställde två eller flera frågor som måste kombineras för att slutföra frågan. För att göra detta anger du ett meddelande för rutan Kriterier i varje kolumn i designvyn för frågan.

Praktisk inlärning:Skapa en parametriserad disjunktion

  1. Klicka i rutan Kriterier för kolumnen Sovrum och skriv [Hur många sovrum behöver du?]

  2. Byt frågan till databladsvy för att se resultatet
  3. Ange egenskapstypen som enkel familj och tryck på Retur
  4. Ange antalet sovrum som 5 och tryck på Enter

  5. Återgå till designvyn
  6. Ta bort [Hur många sovrum behöver du?]

Parameteriserad disjunktion

En parametriserad disjunktion begär två eller flera värden. Frågan producerar alla poster som innehåller något av värdena. För att skapa en sådan parameteriserad fråga, lägg till den första frågan eller meddelandet i rutan Kriterier i det önskade fältet. Lägg sedan till det andra meddelandet eller frågan i rutan Eller i samma kolumn. Om du behöver ytterligare värden anger du deras frågor eller meddelanden i rutorna under cellen Eller i samma kolumn.

Praktisk inlärning:Skapa en parametriserad disjunktion

  1. Klicka i rutan Eller i kolumnen Egenskapstyp och skriv [Vilken annan typ av egenskap vill du se?]

  2. Byt frågan till databladsvy för att se resultatet
  3. Ange den första egenskapstypen som radhus och tryck på Retur
  4. Ange den andra egenskapstypen som enkelfamilj och tryck på Enter

  5. Stäng frågan utan att spara den

Åtgärdsfrågor

Inledning

Microsoft Access tillhandahåller några färdiga frågor som låter dig utföra halvkomplexa åtgärder på befintliga tabeller. Åtgärderna utförs som frågor. När du använder en åtgärdsfråga skapar du inte en vanlig fråga i strikt mening. De flesta av dessa frågor är vanligtvis bara användbara en gång. Av denna anledning behöver du knappast spara dem.

Åtgärdsfrågan Gör tabell

Istället för att först skapa en tabell och sedan fylla den med värden, om du redan har värden lagrade i en tabell, låter Microsoft Access dig skapa en ny tabell fylld med värden från den tabellen.

Med hjälp av frågor finns det två huvudtekniker du kan använda för att skapa en ny tabell för din databas. Microsoft Access tillhandahåller en teknik som kallas Gör tabellfråga. Denna typ av fråga används för att hämta alla eller några fält i en befintlig tabell och istället för att skapa en ny fråga som beror på en befintlig tabell, skulle du få en helt ny tabell, oberoende av någon befintlig tabell. Den här typen av åtgärd kan låta dig skapa en ny tabell baserat på en regel som tillämpas på en befintlig tabell.

För att skapa en tabell med en Microsoft Access-fråga, starta en ny fråga i Design View. Klicka sedan på knappen Skapa tabell i avsnittet Frågetyp på menyfliksområdet . Detta skulle ge dig en Skapa tabell-dialogruta som låter dig ange ett nytt namn för frågan eller välja en befintlig tabell som skulle ta emot nya data.

Praktisk inlärning:Använda Make-Table-frågor

  1. Altair Realtors3-databasen bör fortfarande vara öppen.
    På menyfliksområdet klickar du på Skapa och i avsnittet Frågor klickar du på Frågedesign
  2. I dialogrutan Visa tabeller klickar du på Egenskaper, klickar på Lägg till och klickar på Stäng
  3. I avsnittet Frågetyp på menyfliksområdet klickar du på knappen Skapa tabell
  4. Skriv Condominiums i kombinationsrutan Tabellnamn som namnet på tabellen

  5. Se till att alternativknappen Current Database är markerad och klicka på OK
  6. I listan Egenskaper, dubbelklicka på PropertyNumber, PropertyType, City, Locality, State, Sovrum, Badrum, Finished Basement, IndoorGarage, Condition och MarketValue
  7. Längst ned i fönstret klickar du på rutan Kriterier för kolumnen PropertyType och skriver condominium
  8. Klicka på kryssrutan för Visa för att ta bort bocken

  9. För att skapa tabellen klickar du på knappen Kör på menyfliksområdet
  10. Du kommer att få ett meddelande

  11. Läs den och klicka på Ja
  12. Stäng frågan utan att spara den
  13. Dubbelklicka på tabellen Condominiums i navigeringsfönstret

  14. Stäng tabellen

Uppdateringsfrågan

Om du har en stor lista och många poster behöver få en gemensam ändring kan du skapa en speciell fråga som heter Update Query. En uppdateringsfråga låter dig ändra de befintliga värdena för en eller flera kolumner i en tabell. Du kan med andra ord hämta de värden som redan finns i fälten i en tabell, ändra dessa värden och spara tabellen med dem.

För att skapa en Lägg till fråga, starta en fråga i designvyn. Klicka på knappen Uppdatera i avsnittet Frågetyp på menyfliksområdet . När du skapar frågan måste du ställa in ett villkor att Microsoft Access ska tillämpas på en tabell för att ta reda på vilka poster som behöver uppdateras. För att göra detta använder du rutan Kriterier i en kolumn, precis som vi lärde oss under dataanalys.

Praktisk inlärning:Uppdatera poster

  1. Öppna Metro System1-databasen från lektion 18
  2. I navigeringsfönstret dubbelklickar du på Silver Line-tabellen för att se dess poster

  3. Stäng tabellen
  4. På menyfliksområdet klickar du på Skapa och i avsnittet Frågor klickar du på Frågedesign
  5. I dialogrutan Visa tabeller klickar du på Silver Line, klickar på Lägg till och klickar på Stäng
  6. I avsnittet Frågetyp på menyfliksområdet klickar du på knappen Uppdatera
  7. I topplistan dubbelklickar du på MetroLine
  8. Längst ned i fönstret klickar du på rutan Kriterier för kolumnen MetroLine och skriver Silver

  9. För att utföra åtgärden klickar du på knappen Kör på menyfliksområdet
  10. Du kommer att få en meddelanderuta

    Läs den och klicka på Ja
  11. Stäng frågan utan att spara den
  12. I navigeringsfönstret dubbelklickar du på tabellen Silver Line för att granska den

  13. Stäng tabellen

En Lägg till fråga

Om du har en tabell med ett betydande antal poster och du behöver lägga till dessa poster i en annan tabell, kan arbetet bli överväldigande. Microsoft Access tillhandahåller en funktion för att skapa en speciell fråga som kan användas för att lägga till många poster i en tabell i ett steg.

En Append Query låter dig lägga till poster i en befintlig tabell men du skapar inte posterna. De måste hämtas från en tabell och läggas till i en annan tabell.

För att skapa en Lägg till fråga, starta en fråga i designvyn. Klicka på knappen Lägg till i avsnittet Frågetyp på menyfliksområdet . Du kommer att presenteras med en dialogruta som förväntar dig att du antingen väljer den tabell som du vill lägga till posterna i, eller att du anger namnet på en ny tabell som skulle ta emot posterna. Om du vill lägga till posterna i en befintlig tabell kan du välja den från kombinationsrutan.

Som du kanske föreställer dig, att lägga till en post består av att lägga till en post i en tabell. Om du vill göra detta i SQL skapar du helt enkelt en INSERT uttalande.

Praktisk inlärning:Bifoga poster

  1. Metro System1-databasen bör fortfarande vara öppen.
    I navigeringsfönstret dubbelklickar du på tabellen MetroStations och bläddrar helt ned i listan
  2. Observera att det inte finns några stationer för Silverlinjen.
    Stäng bordet
  3. På menyfliksområdet klickar du på Skapa och i avsnittet Frågor klickar du på Frågedesign
  4. I dialogrutan Visa tabell klickar du på Silver Line, klickar på Lägg till och klickar på Stäng
  5. I avsnittet Frågetyp på menyfliksområdet klickar du på knappen Lägg till
  6. I dialogrutan Lägg till klickar du på pilen i kombinationsrutan Tabellnamn och väljer MetroStations

  7. Klicka på OK
  8. I topplistan dubbelklickar du på Stationsnummer, Stationsnamn, MetroLine och Location
  9. Klicka på knappen Kör på menyfliksområdet för att utföra frågan
  10. Läs meddelandet:

    Klicka sedan på Ja
  11. Stäng frågan utan att spara den
  12. I navigeringsfönstret dubbelklickar du på tabellen MetroStations och bläddrar helt ned i listan
  13. Lägg märke till att den nu innehåller stationer för Silverlinjen.
    Stäng bordet

Raderingsfrågan

Om du har några poster som måste tas bort från en tabell, tillhandahåller Microsoft Access olika tekniker för att radera sådana poster. För att radera en grupp poster i en åtgärd kan du skapa en speciell fråga som kallas en radera fråga.

Precis som alla andra åtgärdsfrågor låter en raderingsfråga dig välja de nödvändiga fälten i en tabell. Den första skillnaden mellan detta och Select Query är att Radera-frågan, precis som alla andra åtgärdsfrågor, väljer eller tar hänsyn till alla fält, även de du inte inkluderar i ditt uttalande. De andra kolumnerna är de som skulle användas för att specificera reglerna enligt vilka en post måste raderas.

Du kan använda ett kriterium eller många kriterier för att ställa in regeln som ska följas för att bli av med (en) post(er). Liksom de flesta andra åtgärdsfrågor är åtgärden för en raderingsfråga oåterkallelig.

Praktisk inlärning:Ta bort databasposter

  1. Metro System1-databasen bör fortfarande vara öppen.
    I navigeringsfönstret dubbelklickar du på tabellen MetroStations för att öppna den
  2. Bläddra ner och lägg märke till att vissa stationer är för Maroon-linjen men vi vet att det inte finns någon Maroon-tunnelbanelinje
  3. Stäng tabellen MetroStations
  4. På menyfliksområdet klickar du på Skapa och i avsnittet Frågor klickar du på Frågedesign
  5. I dialogrutan Visa tabeller klickar du på MetroStations, klickar på Lägg till och klickar på Stäng
  6. I avsnittet Frågetyp på menyfliksområdet klickar du på knappen Ta bort
  7. I topplistan dubbelklickar du på MetroLine
  8. Längst ned klickar du på rutan Kriterier för kolumnen och skriver rödbrun

  9. För att utföra åtgärden klickar du på knappen Kör på menyfliksområdet
  10. Du kommer att få en meddelanderuta

  11. Läs den och klicka på Ja
  12. I navigeringsfönstret dubbelklickar du på tabellen MetroStations för att öppna den
  13. Bläddra nedåt och märk att det inte finns fler Maroon-stationer
  14. Stäng tabellen MetroStations
  15. Stäng tabellen

Specialoperationer på frågor

Sammanfoga poster för många tabeller

Om du har olika tabeller kan du skapa en fråga som kombinerar deras poster så att du kan granska dessa poster när de sätts ihop. För att hjälpa dig med detta tillhandahåller SQL en operator som heter UNION . Den primära formeln för att använda den är:

SELECT columns-names FROM table-name1
UNION [ALL]
SELECT columns-names FROM table-name2

Thyis motsvarar att skapa två SELECT uttalanden. Var och en innehåller några kolumner och en tabell. Båda påståendena måste innehålla samma antal kolumner. Datatyperna för kolumnerna på varje position måste vara kompatibla.

Praktisk inlärning:Sammanfoga arkiven för många tabeller

  1. Öppna Ceil Inn3-databasen från lektion 40
  2. På menyfliksområdet klickar du på Skapa och i avsnittet Frågor klickar du på Frågedesign
  3. I dialogrutan Visa tabell dubbelklickar du på Anställda och tjänstemän
  4. Klicka på Stäng
  5. Dubbelklicka på EmployeeNumber, FirstName och Efternamn i listan Anställda
  6. I Clerks-listan dubbelklickar du på ClerkCode, FirstName och LastName

  7. Högerklicka på frågefönstret och klicka på SQL View
  8. Ändra SQL-satsen enligt följande:
    SELECT Employees.EmployeeNumber,
           Employees.FirstName,
           Employees.LastName
    FROM Employees
    UNION
    SELECT Clerks.ClerkCode,
           Clerks.FirstName,
           Clerks.LastName
    FROM Clerks;
  9. Klicka på knappen Kör för att utföra frågan

  10. Stäng frågan
  11. När du tillfrågas om du vill spara klickar du på Nej

Välja i en tabell

Om du har några poster i en befintlig tabell kan du kopiera alla eller några av dessa poster för att lägga dem i en ny tabell som du skapar. För att göra detta är formeln att följa:

SELECT fields INTO new-table-name FROM existing-table [WHERE condition]

För att använda alla kolumner och alla poster, börja med VÄLJ operator, följt av *, följt av INTO , följt av ett namn för tabellen du vill skapa, följt av FRÅN och namnet på den ursprungliga tabellen som innehåller posterna. Här är ett exempel:

SELECT * INTO CompanyRecipients FROM Employees;

Istället för att använda alla kolumner kan du endast ange önskat fält efter SELECT nyckelord. Här är ett exempel:

SELECT EmployeeNumber, LastName, FirstName, EmploymentStatus
INTO Salaried FROM Employees;

Istället för att använda alla poster kan du använda ett villkor där posterna skulle väljas och läggas till i den nya tabellen du skapar. För att ställa in villkoret kan du skapa en WHERE uttalandet som det sista i hela uttrycket. Här är ett exempel:

SELECT *
INTO FullTimeEmployees
FROM Employees
WHERE EmploymentStatus = 'Full Time';

Ta bort alla poster från en tabell

I SQL, för att ta bort alla poster från en tabell, använd DELETE kommando. Formeln att följa är:

DELETE columns-names FROM table-name;

Normalt använder du * som kolumnnamn . tabellnamnet parametern måste vara ett giltigt namn på en tabell i den aktuella databasen. Här är ett exempel:

DELETE * FROM States;

När du kör får du en varning:

Om du klickar på Ja kommer alla poster från tabellen att tas bort.

Ta bort några Recordx

För att radera en eller flera poster, lägg till en WHERE villkor till en DELETE kommando. Formeln att följa är:

DELETE columns-names FROM table-name WHERE condition;

VAR klausul anger villkoret för att vissa poster kommer att raderas. Här är ett exempel:

DELETE * FROM [Staff Members] WHERE [Marital Status] = "Single";

Återigen, när du kör, kommer du att få en varning som låter dig bestämma om du vill fortsätta operationen.

Praktisk inlärning:Avsluta lektionen

  • Stäng Microsoft Access

  1. 2nd Quadrant Deutschland – Special Training Opening Bargain

  2. Hur installerar man MySQLdb (Python data access library to MySQL) på Mac OS X?

  3. Snapshot-kontrollfilsfunktion med RMAN och ORA-00245

  4. hur man Flashback när vi har dataguard