sql >> Database >  >> RDS >> Access

Inleiding tot speciale zoekopdrachten

Geparametriseerde zoekopdrachten

Inleiding

Een geparametriseerde query is een query die een waarde in een criterium mist. Het woord "ontbrekend" lijkt hier negatief om iets slechts aan te geven in de zoekopdracht, maar dat is niet zo. De query is met opzet zo gemaakt, zodat er een waarde aan het filter wordt gegeven. Op het moment dat de query wordt gemaakt, is het filter op een bepaalde manier ingesteld.

Een geparametriseerde query is een query die een waarde in een criterium mist. Het woord "ontbrekend" lijkt hier negatief om iets slechts aan te geven in de zoekopdracht, maar dat is niet zo. De query is met opzet zo gemaakt, zodat er een waarde aan het filter wordt gegeven. Op het moment dat de query wordt gemaakt, is het filter op een bepaalde manier ingesteld. Wanneer de query wordt uitgevoerd, moet de ontbrekende waarde worden opgegeven om het criterium te voltooien, vervolgens is de query voltooid en wordt het resultaat van de query geproduceerd. Meestal wordt een geparametriseerde query gemaakt, zodat de gebruiker de specifieke record(s) moet specificeren om te produceren.

Hoewel we hebben gespecificeerd dat de query is geparametriseerd, is het in feite de SQL-instructie die is geparametriseerd. Dit betekent dat u een SQL-expressie kunt maken die wordt gebruikt als de recordbron van een formulier of rapport, maar de gebruiker verplicht de ontbrekende informatie op te geven, zodat het formulier of rapport alleen de record(s) weergeeft die die waarde gebruiken.

Praktisch leren:introductie van geparametriseerde zoekopdrachten

  1. Microsoft Access starten
  2. Klik in de lijst met bestanden op Altair Realtors3 van de vorige les
  3. Klik op het lint op Maken en klik op Queryontwerp
  4. Klik in het dialoogvenster Tabel weergeven op Eigenschappen, klik op Toevoegen en klik op Sluiten
  5. Dubbelklik in de bovenste lijst op PropertyNumber, PropertyType, City, Bedrooms, Bathrooms, FinishedBasement, IndoorGarage, Condition en MarketValue
  6. Klik op de knop Gegevensblad op de statusbalk om de resultaten te zien
  7. Klik indien nodig op het lint op Home.
    Wijzig de volgende kenmerken:
    Lettertypenaam:Calisto MT (als je dat lettertype niet hebt, selecteer dan Times New Roman)
    Achtergrondkleur:Groen, Accent 6, Lichter 40% (Themakleuren:10e kolom, 4e rij)
    Alternatieve rijkleur:groen, accent 6, lichter 80% (themakleuren:10e kolom, 2e rij)

  8. Nadat u het resultaat hebt bekeken, klikt u in het gedeelte Weergaven van het lint op de pijl onder de knop Weergeven en klikt u op SQL-weergave
  9. Wijzig de SQL-instructie als volgt:
    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. De ontwerpweergave van de query weergeven

Een geparametriseerde query maken

Wanneer u een geparametriseerde query maakt, moet u er een parameter aan geven. Om verder te gaan, opent u de query in de ontwerpweergave en selecteert u de benodigde kolommen. Typ de vierkante haken [] in het vak Criteria van het veld dat de criteria bevat. Voer binnen de haakjes alles in wat je wilt, zoals een bericht of een vraag. Het bericht of de vraag wordt gepresenteerd aan de gebruiker die een waarde in een tekstvak moet typen. Zodra de gebruiker de waarde heeft opgegeven en op OK klikt of op Enter drukt, wordt de zoekopdracht uitgevoerd.

Praktisch leren:een geparametriseerde SQL-expressie maken

  1. Klik op het veld Criteria voor de kolom PropertyNumber en typ:[Voer de eigenschap # in om te bekijken:]

  2. Schakel de zoekopdracht naar Datasheet View om het resultaat te bekijken
  3. Voer het eigendomsnummer in als 192703

  4. Klik op OK

  5. Terug naar de ontwerpweergave
  6. Verwijderen [Voer de eigenschap # in om te bekijken:]
  7. Klik op het vakje Criteria voor de kolom Property Type en typ:[Voer het type property in dat u wilt zien:]

  8. Schakel de zoekopdracht naar Datasheet View om het resultaat te bekijken
  9. Voer het type woning in als herenhuis

  10. Druk op Enter

  11. Terug naar de ontwerpweergave

Geparametriseerde conjunctie

U kunt een geparametriseerde query maken die twee of meer vragen heeft gesteld die moeten worden gecombineerd om de query te voltooien. Om dit te doen, voert u in de ontwerpweergave van de query een bericht in voor het vak Criteria van elke kolom.

Praktisch leren:een geparametriseerde disjunctie maken

  1. Klik op het vakje Criteria voor de kolom Slaapkamers en typ [Hoeveel slaapkamers heeft u nodig?]

  2. Schakel de zoekopdracht naar Datasheet View om het resultaat te bekijken
  3. Voer het eigendomstype in als eengezinswoning en druk op Enter
  4. Voer het aantal slaapkamers in als 5 en druk op Enter

  5. Terug naar de ontwerpweergave
  6. Verwijderen [Hoeveel slaapkamers heeft u nodig?]

Geparametriseerde Disjunctie

Een geparametriseerde disjunctie vraagt ​​om twee of meer waarden. De query produceert alle records die een van de waarden bevatten. Om zo'n geparametriseerde query te maken, voegt u de eerste vraag of het eerste bericht toe aan het veld Criteria van het gewenste veld. Voeg vervolgens het tweede bericht of de tweede vraag toe aan het vak Of van dezelfde kolom. Als u aanvullende waarden nodig heeft, voert u hun vragen of berichten in de vakken onder de cel Of van dezelfde kolom in.

Praktisch leren:een geparametriseerde disjunctie maken

  1. Klik op het vak Of van de kolom Type eigendom en typ [Welk ander type eigendom dat u wilt zien?]

  2. Schakel de zoekopdracht naar Datasheet View om het resultaat te bekijken
  3. Voer het eerste woningtype in als herenhuis en druk op Enter
  4. Voer het tweede eigenschapstype in als eengezinswoning en druk op Enter

  5. Sluit de zoekopdracht zonder deze op te slaan

Actievragen

Inleiding

Microsoft Access biedt enkele kant-en-klare query's waarmee u semi-complexe acties op bestaande tabellen kunt uitvoeren. De acties worden uitgevoerd als query's. Wanneer u een actiequery gebruikt, maakt u geen gewone query in strikte zin. De meeste van deze zoekopdrachten zijn meestal maar één keer nuttig. Om deze reden hoeft u ze nauwelijks op te slaan.

De actie-query Tabel maken

In plaats van eerst een tabel te maken en deze vervolgens met waarden te vullen, kunt u met Microsoft Access, als u al waarden in een tabel hebt opgeslagen, een nieuwe tabel maken die gevuld is met waarden uit die tabel.

Met behulp van query's zijn er twee hoofdtechnieken die u kunt gebruiken om een ​​nieuwe tabel voor uw database te maken. Microsoft Access biedt een techniek genaamd Make Table Query. Dit type query wordt gebruikt om alle of sommige velden van een bestaande tabel op te halen en in plaats van een nieuwe query te maken die afhankelijk is van een bestaande tabel, krijgt u een geheel nieuwe tabel, onafhankelijk van een bestaande tabel. Met dit type actie kunt u een nieuwe tabel maken op basis van een regel die is toegepast op een bestaande tabel.

Als u een tabel wilt maken met een Microsoft Access-query, start u een nieuwe query in de ontwerpweergave. Klik vervolgens in het gedeelte Querytype van het lint op de knop Tabel maken . U krijgt dan een dialoogvenster Tabel maken waarin u een nieuwe naam voor de query kunt opgeven of een bestaande tabel kunt selecteren die de nieuwe gegevens zou ontvangen.

Praktisch leren:Make-Table-query's gebruiken

  1. De Altair Realtors3-database moet nog steeds worden geopend.
    Klik op het lint op Maken en klik in het gedeelte Query's op Query-ontwerp
  2. Klik in het dialoogvenster Tabellen weergeven op Eigenschappen, klik op Toevoegen en klik op Sluiten
  3. Klik in het gedeelte Querytype van het lint op de knop Tabel maken
  4. Typ in de keuzelijst Tabelnaam Appartementen als de naam van de tafel

  5. Zorg ervoor dat het keuzerondje Huidige database is geselecteerd en klik op OK
  6. Dubbelklik in de lijst Eigenschappen op PropertyNumber, PropertyType, City, Locality, State, Bedrooms, Bathrooms, FinishedBasement, IndoorGarage, Condition en MarketValue
  7. Klik aan de onderkant van het venster op het vakje Criteria voor de kolom PropertyType en typ condominium
  8. Klik op het selectievakje van Weergeven om het vinkje te verwijderen

  9. Als u de tabel wilt maken, klikt u op het lint op de knop Uitvoeren
  10. Je ontvangt een bericht

  11. Lees het en klik op Ja
  12. Sluit de zoekopdracht zonder deze op te slaan
  13. Dubbelklik in het navigatiedeelvenster op de tabel Appartementen

  14. Sluit de tafel

De update-query

Als u een grote lijst hebt en veel records een algemene wijziging moeten ondergaan, kunt u een speciale query maken met de naam Updatequery. Met een Update Query kunt u de bestaande waarden van een of meer kolommen van een tabel wijzigen. Met andere woorden, u kunt de waarden ophalen die al in de velden van een tabel staan, deze waarden wijzigen en de tabel ermee laten opslaan.

Om een ​​toevoegquery te maken, start u een query in de ontwerpweergave. Klik in het gedeelte Querytype van het lint op de knop Bijwerken . Bij het maken van de query moet u een voorwaarde instellen dat Microsoft Access van toepassing is op een tabel om erachter te komen welke record(s) moeten worden bijgewerkt. Om dit te doen, gebruik je het Criteria-vak van een kolom, net zoals we hebben geleerd tijdens de gegevensanalyse.

Praktisch leren:records bijwerken

  1. Open de Metro System1-database uit les 18
  2. Dubbelklik in het navigatiedeelvenster op de Silver Line-tabel om de records te bekijken

  3. Sluit de tafel
  4. Klik op het lint op Maken en klik in het gedeelte Query's op Query-ontwerp
  5. Klik in het dialoogvenster Tabellen weergeven op Zilverlijn, klik op Toevoegen en klik op Sluiten
  6. Klik in het gedeelte Querytype van het lint op de knop Bijwerken
  7. Dubbelklik in de bovenste lijst op MetroLine
  8. Klik aan de onderkant van het venster op het vakje Criteria voor de MetroLine-kolom en typ Zilver

  9. Als u de actie wilt uitvoeren, klikt u op het lint op de knop Uitvoeren
  10. U ontvangt een berichtvenster

    Lees het en klik op Ja
  11. Sluit de zoekopdracht zonder deze op te slaan
  12. Dubbelklik in het navigatiedeelvenster op de Silver Line-tabel om deze te bekijken

  13. Sluit de tafel

Een toevoegquery

Als u een tabel hebt met een aanzienlijk aantal records en u moet die records aan een andere tabel toevoegen, kan het werk overweldigend worden. Microsoft Access biedt een functie om een ​​speciale query te maken die kan worden gebruikt om in één stap veel records aan een tabel toe te voegen.

Met een toevoegquery kunt u records toevoegen aan een bestaande tabel, maar u maakt de records niet. Ze moeten van de ene tafel worden opgehaald en aan een andere tafel worden toegevoegd.

Om een ​​toevoegquery te maken, start u een query in de ontwerpweergave. Klik in het gedeelte Querytype van het lint op de knop Toevoegen . U krijgt een dialoogvenster te zien waarin wordt verwacht dat u ofwel de tabel selecteert waaraan u de records wilt toevoegen, ofwel de naam opgeeft van een nieuwe tabel die de records zou ontvangen. Als u de records aan een bestaande tabel wilt toevoegen, kunt u deze selecteren in de keuzelijst met invoervak.

Zoals u zich wellicht kunt voorstellen, bestaat het toevoegen van een record uit het toevoegen van een record aan een tabel. Als u dit in SQL wilt doen, maakt u eenvoudig een INSERT verklaring.

Praktisch leren:records toevoegen

  1. De Metro System1-database moet nog steeds worden geopend.
    Dubbelklik in het navigatiedeelvenster op de MetroStations-tabel en scrol helemaal naar beneden in de lijst
  2. Merk op dat er geen stations zijn voor de Silver-lijn.
    Sluit de tafel
  3. Klik op het lint op Maken en klik in het gedeelte Query's op Query-ontwerp
  4. Klik in het dialoogvenster Tabel weergeven op Zilverlijn, klik op Toevoegen en klik op Sluiten
  5. Klik in het gedeelte Querytype van het lint op de knop Toevoegen
  6. Klik in het dialoogvenster Toevoegen op de pijl van de keuzelijst Tabelnaam en selecteer MetroStations

  7. Klik op OK
  8. Dubbelklik in de bovenste lijst op StationNumber, StationName, MetroLine en Location
  9. Als u de query wilt uitvoeren, klikt u op het lint op de knop Uitvoeren
  10. Lees het bericht:

    Klik vervolgens op Ja
  11. Sluit de zoekopdracht zonder deze op te slaan
  12. Dubbelklik in het navigatiedeelvenster op de MetroStations-tabel en scrol helemaal naar beneden in de lijst
  13. Merk op dat het nu stations voor de Silver-lijn bevat.
    Sluit de tafel

De verwijderquery

Als u enkele records hebt die uit een tabel moeten worden verwijderd, biedt Microsoft Access verschillende technieken om dergelijke records te verwijderen. Om een ​​groep records in één handeling te verwijderen, kunt u een speciale query maken, de zogenaamde Delete Query.

Net als alle andere Action-query's, kunt u met een Delete-query de benodigde velden van een tabel selecteren. Het eerste verschil tussen deze en de selectiequery is dat de verwijderquery, net als alle andere actiequery's, alle velden selecteert of in overweging neemt, zelfs de velden die u niet in uw instructie opneemt. De andere kolommen zijn die welke zouden worden gebruikt om de regels te specificeren waaronder een record moet worden verwijderd.

U kunt een of meerdere criteria gebruiken om de regel in te stellen die moet worden gevolgd om (een) record(s) te verwijderen. Net als de meeste andere actiequery's is de actie van een Delete Query onomkeerbaar.

Praktisch leren:databaserecords verwijderen

  1. De Metro System1-database moet nog steeds worden geopend.
    Dubbelklik in het navigatiedeelvenster op de MetroStations-tabel om deze te openen
  2. Scroll naar beneden en merk op dat sommige stations voor de Maroon-lijn zijn, maar we weten dat er geen Maroon-metrolijn is
  3. Sluit de MetroStations-tabel
  4. Klik op het lint op Maken en klik in het gedeelte Query's op Query-ontwerp
  5. Klik in het dialoogvenster Tabellen weergeven op MetroStations, klik op Toevoegen en klik op Sluiten
  6. Klik in het gedeelte Querytype van het lint op de knop Verwijderen
  7. Dubbelklik in de bovenste lijst op MetroLine
  8. Klik onderaan op het vakje Criteria voor de kolom en typ kastanjebruin

  9. Als u de actie wilt uitvoeren, klikt u op het lint op de knop Uitvoeren
  10. U ontvangt een berichtvenster

  11. Lees het en klik op Ja
  12. Dubbelklik in het navigatiedeelvenster op de MetroStations-tabel om deze te openen
  13. Scroll naar beneden en zie dat er geen Marron-stations meer zijn
  14. Sluit de MetroStations-tabel
  15. Sluit de tafel

Speciale bewerkingen op vragen

De records van veel tabellen samenvoegen

Als u verschillende tabellen heeft, kunt u een query maken die hun records combineert, zodat u die records kunt onderzoeken wanneer ze worden samengevoegd. Om u hierbij te helpen, biedt de SQL een operator met de naam UNION . De primaire formule om het te gebruiken is:

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

Thyis staat gelijk aan het maken van twee SELECT verklaringen. Elk bevat enkele kolommen en een tabel. Beide statements moeten hetzelfde aantal kolommen bevatten. De gegevenstypen van de kolommen op elke positie moeten compatibel zijn.

Praktisch leren:de records van veel tabellen samenvoegen

  1. Open de Ceil Inn3-database uit les 40
  2. Klik op het lint op Maken en klik in het gedeelte Query's op Query-ontwerp
  3. Dubbelklik in het dialoogvenster Tabel weergeven op Medewerkers en klerken
  4. Klik op Sluiten
  5. Dubbelklik in de lijsten Werknemers op Werknemersnummer, Voornaam en Achternaam
  6. Dubbelklik in de lijst Clerks op ClerkCode, FirstName en LastName

  7. Klik met de rechtermuisknop op het queryvenster en klik op SQL-weergave
  8. Wijzig de SQL-instructie als volgt:
    SELECT Employees.EmployeeNumber,
           Employees.FirstName,
           Employees.LastName
    FROM Employees
    UNION
    SELECT Clerks.ClerkCode,
           Clerks.FirstName,
           Clerks.LastName
    FROM Clerks;
  9. Klik op de knop Uitvoeren om de query uit te voeren

  10. Sluit de zoekopdracht
  11. Als u wordt gevraagd of u wilt opslaan, klikt u op Nee

Selecteren in een tabel

Als u enkele records in een bestaande tabel hebt, kunt u alle of enkele van die records kopiëren om ze in een nieuwe tabel te plaatsen die u maakt. Om dit te doen, is de volgende formule:

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

Om alle kolommen en alle records te gebruiken, begint u met de SELECT operator, gevolgd door *, gevolgd door INTO , gevolgd door een naam voor de tabel die u wilt maken, gevolgd door FROM , en de naam van de oorspronkelijke tabel die de records bevat. Hier is een voorbeeld:

SELECT * INTO CompanyRecipients FROM Employees;

In plaats van alle kolommen te gebruiken, kunt u alleen het gewenste veld specificeren na de SELECT trefwoord. Hier is een voorbeeld:

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

In plaats van alle records te gebruiken, kunt u een voorwaarde gebruiken waaronder de records worden geselecteerd en toegevoegd aan de nieuwe tabel die u maakt. Om de voorwaarde in te stellen, kunt u een WAAR . maken verklaring als de laatste in de hele uitdrukking. Hier is een voorbeeld:

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

Alle records uit een tabel verwijderen

Gebruik in de SQL om alle records uit een tabel te verwijderen de DELETE opdracht. De te volgen formule is:

DELETE columns-names FROM table-name;

Normaal gesproken gebruikt u * als de kolomnamen . De tabelnaam parameter moet een geldige naam zijn van een tabel van de huidige database. Hier is een voorbeeld:

DELETE * FROM States;

Wanneer u uitvoert, ontvangt u een waarschuwing:

Als u op Ja klikt, worden alle records uit de tabel verwijderd.

Sommige Recordx verwijderen

Om een ​​of meer records te verwijderen, voegt u een WHERE . toe voorwaarde naar een VERWIJDEREN opdracht. De te volgen formule is:

DELETE columns-names FROM table-name WHERE condition;

De WAAR clausule specificeert de voorwaarde waaronder sommige records zullen worden verwijderd. Hier is een voorbeeld:

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

Nogmaals, wanneer u het uitvoert, ontvangt u een waarschuwing waarmee u kunt beslissen of u de bewerking wilt voortzetten.

Praktisch leren:de les beëindigen

  • Sluit Microsoft Access

  1. Weergaven in SQL Server

  2. Hoe u de huidige datum in PostgreSQL kunt krijgen

  3. SQL Server 2016:een opgeslagen procedure maken

  4. Overmatige MySQL-activiteit