sql >> Databasteknik >  >> RDS >> Access

Arbeta med Structured Query Language (SQL) med Microsoft Access 2010, 2013, 2016 och 2019

Introduktion

Syftet med denna handledning är att visa hur du kan skriva dina egna SQL-satser och köra dem från Microsoft Access 2007, 2010, 2013 2016 eller 2019 (stegen är praktiskt taget identiska i alla versioner). Som med alla relationsdatabaser kan Microsoft Access programmeras direkt med Structured Query Language (SQL). Även om SQL oftast är dold för användare, för databasstudenter, erbjuder MS Access ett snabbt och enkelt sätt att utforska SQL och skriva några ganska komplexa frågor. Detta är särskilt praktiskt om du inte har tid eller tålamod att installera SQL Server, Oracle, MySQL eller andra större relationsdatabashanteringssystem.

SQL-exemplen som används i den här korta handledningen är baserade på de enkla kund- och kontotabellerna som skapats som en del av min Microsoft Access 2007, 2010 och 2013 handledning.
Du kanske vill gå igenom den självstudien först (eller åtminstone den första några avsnitt) för att skapa tabellerna och lägga till nödvändig data för att få dessa exempel att fungera.

Nästa avsnitt kommer att ge en mycket kort introduktion av Structured Query Language (SQL).

The Structured Query Language (SQL)

Structured Query Language (SQL uttalas "Sequel") är ett deklarativt programmeringsspråk som används för att manipulera relationsdatabashanteringssystem (RDBMS). Det introducerades först i IBMs System R i slutet av 1970-talet. Idag används SQL i alla större relationella DBMS som Oracle, IBM DB2, Informix, Sybase, Microsoft SQL Server, MySQL, Postgres, SQLLite, Microsoft Access och många andra. Även om varje databasleverantör tillhandahåller en del egenutvecklade funktioner, kan kärnan i SQL användas på nästan vilken relationsdatabas som helst.

Det strukturerade frågespråket är uppdelat i två huvuddelar:

  1. Data Definition Language (DDL) – Används för att skapa (definiera) datastrukturer som scheman, tabeller, index, kluster, sekvenser samt säkra databasen
  2. Data Manipulation Language (DML) – Används för att infoga, hämta, uppdatera och ta bort data från tabeller.

Microsoft Access stöder både DDL- och DML-delar av SQL. För det mesta fokuserar vi på SQL Queries som som SQL SELECT-satser används för att hämta data från en befintlig databas. Den grundläggande syntaxen för en SQL SELECT-sats är:

SELECT   column1, column2, ... columnN
FROM     tableA, tableB, ... tableZ
WHERE    condition1, condition2, ...conditionM
ORDER BY column1, column2, ... columnN

Så om vi till exempel antar att vi har en tabell som heter Kund med kolumner som FirstName, LastName, StreetAddress, City, state och ZIP, kan vi skriva en SQL SELECT-sats så här:

SELECT   FirstName, LastName, City, State
FROM     customer

I ovanstående fråga ber vi om data bara i kolumnerna Förnamn, Efternamn, Stad och Stat, och tabellen vi får dessa data från kallas kund. Observera att SQL-språket inte oroar sig för stora eller små bokstäver. Så skriver du välj förnamn... är detsamma som att skriva SELECT FIRSTNAME ... .

En lite mer sofistikerad fråga skulle vara om vi bara vill se kunder som bor i Georgien och vi vill att resultaten sorteras efter kundens efternamn:

SELECT   FirstName, LastName, City, State
FROM     customer
WHERE    state = 'GA'
ORDER BY LastName

Som du kan se följer listan med kolumner vi vill visa nyckelordet SELECT. Namnet på tabellen vi frågar efter följer nyckelordet FROM, ett villkor state ='GA' följer nyckelordet WHERE och slutligen sorteras resultaten i kolumnen Efternamn enligt beskrivningen av nyckelordet ORDER BY.

Det finns många fler funktioner i SQL SELECT-satsen som involverar att fråga efter flera tabeller genom att "sammanfoga" dem, gruppera samlingar av poster för att hitta totaler, största, minsta eller genomsnittliga värden, och utföra andra manipulationer av utdata som användarna så småningom kommer att se. En mycket mer omfattande diskussion om funktionerna i SQL finns på denna länk.

Nästa avsnitt introducerar användningen av SQL från Query Design-vyn i MS Access.

SQL i Microsoft Access

I det här avsnittet kommer vi att ge stegen för att skriva din egen SQL i MS Access. Den här övningen förutsätter att du har MS Access 2007, 2010 eller 2013 igång med databasen "Bank" (kund- och kontotabeller) öppen. Klicka här för handledningen med steg för att skapa denna databas.

För att komma igång:

  1. skapa en ny fråga genom att klicka på Skapa fliken och klicka sedan på Frågedesign ikon som visas nedan.
  2. Dialogrutan "Visa tabell" visas som visas nedan. Klicka på Stäng knappen för att stänga den.
  3. Klicka på fliken Design och klicka sedan på SQL ikonen på vänster sida (eller dra ned visningsknappen och välj SQL

  4. Vid det här tillfället visas SQL-vyn för Query1-frågan. Som standard visas nyckelordet SELECT i fönstret.
  5. Redigera frågan för att skriva ut en komplett SQL-sats:
    SELECT   firstname, lastname
    FROM     customer
    ORDER BY lastname
    
    

    Frågefönstret för SQL-vyn kommer nu att visas som nedan:

  6. Vid det här laget, med SQL-satsen inskriven, kan vi köra frågan mot databasen genom att klicka på utropstecknet "Kör".

  7. Resultaten av frågan visas i en databladsvy (som ett kalkylblad):

  8. För att återgå till att redigera SQL-frågan, dra ned menyn Visa och välj SQL igen.

  9. Du kanske också vill spara din fråga. För att göra detta, högerklicka på fliken med det aktuella frågenamnet:Query1 och välj Spara .

    En dialogruta kommer att visas där du uppmanas att ange det nya namnet på frågan. Skriv in ett nytt namn som:Customer_Names och klicka sedan på OK för att spara den.

  10. Slutligen, MS Access ger inte ett sätt att spara en fråga under ett nytt namn ("Spara som"). Vad du istället kan göra är att markera namnet på frågan, högerklicka och välja Kopiera högerklicka sedan igen och välj Klistra in . Du kommer då att bli tillfrågad om det nya namnet på frågan.

Härnäst kommer jag att presentera några knep och tips för att skriva och felsöka dina SQL-frågor.

Skriva och felsöka SQL-frågor i MS Access

Nu när du har den grundläggande mekaniken för att skriva och köra SQL-frågor, här är några tips och tricks för att felsöka din SQL.

Redaktörer för MS Access SQL

SQL-redigeringsfönstret i MS Access är inte så intelligent eller lätt att arbeta med. Ett sätt att arbeta med SQL är att skriva koden i en annan editor och sedan kopiera och klistra in koden i Access för att köra den. Det finns många olika textredigerare tillgängliga. Till exempel inom Windows kommer du att ha Anteckningar tillgängligt under Tillbehör-gruppen. Den enda varningen jag kan ge här är att INTE använda MS Word eller annan ordbehandlingsprogramvara för att skriva din SQL. Anledningen till detta är att MS Word och andra ordbehandlare kommer att förvandla dina enkla och dubbla citattecken till "fantastiska citattecken" som SQL inte förstår.
Till exempel, om du har en WHERE-sats som WHERE state ='GA'
SQL förväntar sig att texten omges av enkla citattecken. MS word kommer att förvandla dessa till ett fint inledande och avslutande citattecken som SQL inte förstår.
Om du får ett felmeddelande som Ange parametervärde för `GA’ då vill du definitivt se till att din text är omgiven av enkla citattecken.

Hantera syntaxfel

Syntaxfel kan vara mycket frustrerande i SQL eftersom databasen ofta inte kan peka ut exakt var problemet ligger i din kod. Några av de huvudsakliga felen som Access kommer att visa inkluderar:

Feltext Lösning Exempel
Ange parametervärde för ____________ Oftast händer detta när namnet på en kolumn (fält) inte är korrekt skrivet (som fallet "lstname" är felstavat) eller ett uttryck inte kan kännas igen som WHERE state =`GA'
Microsoft Access Database-motorn kan inte hitta indatafrågan eller tabellen :______________ Oftast händer detta när namnet på en tabell inte skrivs korrekt i FROM-satsen i frågan. Till exempel, i det här fallet specificerade frågan FRÅN kunder istället för FRÅN kund
Syntaxfel (operator saknas) i frågeuttryck:______________ I det här fallet saknar syntaxen för frågan några nyckeldelar. Till exempel saknas "FROM"-satsen och därför rapporterar Access den ungefärliga platsen för var problemet uppstår genom att visa texten i frågan.

I nästa avsnitt kommer jag att ge några ytterligare tips om hur du presenterar dina SQL-frågor och resultat för ett projekt eller hemuppgift.

Dokumentera ditt SQL-arbete

I det här avsnittet kommer jag att beskriva några tips för att formatera dina frågor och resultat så att de presenteras på ett tydligt och kortfattat sätt på dina uppdrag och projekt.
Antagandet här är att du kommer att använda ett ordbehandlingsprogram som t.ex. MS Word eller annat ordbehandlingsprogram som stöder kopiering och inklistring av bilder och text.

MS Access tillåter inte att du lägger kommentarer i SQL-koden. Andra DBMS tillåter detta men Access är lite mer restriktiv.

För denna övning, anta att läxfrågan är att visa för- och efternamn på alla kunder och att beställa resultatet efter kundens efternamn.

  1. Skriv in SQL-frågan enligt beskrivningen i föregående avsnitt och kör den för att få resultaten:
  2. I databladsvyn, klicka på den lilla fyrkantiga rutan till vänster om kolumnrubrikerna och högst upp i radvalsrutorna. Detta gör att hela uppsättningen resultat markeras.
  3. Högerklicka på samma lilla fyrkantiga ruta i hörnet och välj Kopiera från popup-menyn.
  4. Växla till MS Word (eller annat ordbehandlingsprogram) och klistra in resultaten på en lämplig plats:

Några andra användbara tips som också följdes när du skapade det här uppdragsdokumentet:

  • Var noga med att skriva in hela meningen som beskriver frågan du löser (ställ inte bara "Fråga 1"). Du kanske till exempel vill kopiera frågan från läxan och göra den till en del av svaret.
  • När du klistrar in SQL-texten för din fråga, använd ett Courier New-teckensnitt så att tecknen och avståndet kommer i linje. Detta gör det mycket lättare att läsa.
  • Klistra in resultaten med tekniken som visas ovan istället för att använda en skärmdump. Detta gör inte bara dina Word-dokumentfiler mindre, utan kommer också att bli mycket tydliga när du skriver ut dem.
  • Var noga med att ange ditt namn, klass/kurs och avsnitt på din uppgift.
  • För mer komplexa frågor som kan involvera underfrågor eller inbyggda frågor är det bäst att rada underfrågorna i ett indrag för att göra dem lättare att läsa och felsöka. Till exempel, istället för att skriva en underfråga så här:
    SELECT  accountnumber, balance
    FROM    accounts  WHERE   balance = (SELECT MIN(balance) from accounts)
    
    

    Radera underfrågan längs parentesen:

    SELECT  accountnumber, balance
    FROM    accounts  
    WHERE   balance = (
                        SELECT MIN(balance) 
                        FROM   accounts
                      )
    
    

Att följa dessa steg kommer att göra ett bra intryck när du lämnar in dina uppdrag och projekt.

Slutsatser

I denna korta handledning tog vi upp hur man arbetar med SQL med MS Access. SQL är ett ganska generiskt programmeringsspråk och allt du lär dig när du skriver SQL under MS Access kan enkelt överföras till andra relationsdatabaser som SQL Server, Oracle, Sybase, etc. För fler anteckningar om SQL, besök mitt Structured Query Language (SQL) sidan med kursanteckningar.

För mer introduktion och avancerad MS Access-handledning, besök Access Category på min webbplats.


  1. SQL Server Index bakåtsökning:Förståelse och prestandajustering

  2. SqlConnection SqlCommand SqlDataReader ID Disposable

  3. Hur roterar man PgBouncer-loggar i Linux/Windows?

  4. PostgreSQL 11 - Procedurer