Python Sqlite Select

Python Sqlite Select
SQLite er et C-skrevet innebygd databasebibliotek. Andre databasesystemer som PostgreSQL eller MySQL, muligens noen du allerede er klar over. Disse bruker en klient-serverarkitektur, der databasen er satt opp som server og får tilgang til av en klient. Fordi SQLite er innebygd i et program som et bibliotek, er det annerledes og blir referert til som en innebygd database. Alle dataene holdes i en fil, typisk med en .DB -utvidelse, og ved å bruke de definerte funksjonene kan vi kjøre/utføre SQL -setninger. Ved å bruke disse funksjonene lar oss også utføre forskjellige databaseoperasjoner. Denne opplæringen dekker hvordan du bruker eller kjører en valgt spørring for å hente data fra SQLite -tabellen ved hjelp av SQLite3 -modulen som er et innebygd bibliotek med Python.

Hva er den utvalgte uttalelsen i Sqlite Python?

Hoveduttalelsen som vi bruker for å spørre om en SQLite -database er SELECT -leddet. Hva du skal velge eller hente er spesifisert i SELECT -leddet. FRA -leddet brukes vanligvis med SELECT -leddet for å spesifisere hvor vi ønsker å få tilgang til eller hente dataene.

Forutsetning

Du må først koble deg til databasen og en tabell med datarapper og kolonner skal være tilgjengelige. Du bør være kjent med navnet på SQLite -tabellen og detaljene i kolonnene før du kjører følgende applikasjon.

Hvordan bruke SELECT -spørringen i Python?

Python -brukere kan bruke følgende trinn for å velge/hente data fra databasetabellen:

  1. For å koble til SQLite -databasen, oppretter du et tilkoblingsobjekt.
  2. Bruk deretter markørfunksjonen til tilkoblingsobjektet for å lage et markørobjekt.
  3. Etter det kan du kjøre en valgt uttalelse ved hjelp av SQLite3.Utfør () -funksjon.

Koble til SQLite -databasen

  1. Importer Sqlite3 -modulen først inn i programmet. Klassene og funksjonene levert av SQLite3 -modulen hjelper oss å samhandle med databasen.
  2. Bruk deretter databasenavnet i Connect () -funksjonen til Connector -klassen. Databasene du ønsker å koble til, må leveres for å koble til SQLite. Det vil opprette en tilkobling til SQLite -databasen du oppgir hvis den allerede eksisterer på systemet. Imidlertid vil det opprettes en ny database hvis databasen med det spesifiserte navnet ikke eksisterer.
  3. Lag en markør ved hjelp av markøren () -funksjonen for å kjøre sqlite -utsagn og spørsmål fra Python.
  4. SQL -spørringen utføres av Execute () -metodene og utgangen returneres.

Kode:

Importer SQLite3
sqlcon = sqlite3.koble til ('my_db.db ')
Markør = sqlcon.markør ()
trykk ("koblet til sqlite")
spørring = "Velg SQLite_Version ();"
markør.Utfør (spørring)
v = markør.Fetchall ()
Print ("SQLite Database Version er:", V)
markør.Lukk()
Hvis SQLCON:
SQLCON.Lukk()
Print ("SQLite -tilkoblingen er lukket")

Produksjon:

Etter å ha opprettet tilkoblingen, passerte vi en spørring for å hente versjonen av SQLite -databasen vår. Funksjonen “Markør.Fetchall () ”ble brukt til å lese spørringsresultatene. Etter å ha fullført oppgaven, kan vi bruke CLOE () og tilkoblingen.CLOE () Metoder for å lukke markøren og SQLite -tilkoblingene.

Vi lærte å koble til SQLite -databasen. Nå trenger vi en tabell som vi kan hente data fra og vise deg hvordan du bruker valgklausulen for å oppnå vårt mål.

Opprette AG -databasetabell og sette inn data i den

Opprette AG -databasetabell og sette inn data i den
Vi lærer i dette avsnittet hvordan du bruker Python til å opprette en SQLite -databasetabell i en SQLite -database. Opprette en tabell er et datadfinisjonsspråk (DDL) uttalelse. I programmet nedenfor lager vi en tabell “Student” i “MY_DB.DB ”-database. Trinnene gitt nedenfor kan brukes til å lage en tabell i SQLite -databasen:

  1. Bruke SQLite3.Connect () Metode for å koble til SQLite.
  2. Lag en tabellspørsmål.
  3. Ved hjelp av en markør.Utfør (spørring), kjør spørringen.

Kode:

Importer SQLite3
sqlcon = sqlite3.koble til ('my_db.db ')
spørring = "Lag tabellstudenter (
ID heltall primærnøkkel,
Navn tekst,
E -posttekst ikke null unik,
markerer heltall); "
Markør = sqlcon.markør ()
trykk ("koblet til sqlite")
markør.Utfør (spørring)
SQLCON.begå()
Print ("Tabellen er opprettet")
markør.Lukk()
Hvis SQLCON:
SQLCON.Lukk()
Print ("Tilkoblingen er lukket")

Produksjon:

Vi opprettet en tabell "Studenter" ved å bruke Create Table Clause/Query og utføre den ved hjelp av markøren.Utfør () -funksjon. Deretter brukte vi forpliktelsesfunksjonen for å sikre at databaseendringene er konsistente. For å sette inn data i tabellen 'Studenter', vil vi gjenta samme prosedyre som vi gjorde for å lage tabellen vår, men denne gangen vil vi bruke en annen spørring. Sett inn spørringen brukes til å legge til/legge inn/sette inn data i en allerede eksisterende databasetabell. Verdiklausulen brukes til å spesifisere verdien for hver datadata inne i tabellen. Sett inn spørringen kan se ut som følger:

Sett inn i tabell (Col1, Col2, ...) verdier (Val1, Val2, ...);

Der Col1, Col2 ... er navnene på kolonnene og Val1, Val2 ... er verdiene for hver kolonne på radene i tabellen vår.

La oss nå legge til noen data i databasetabellen.

Kode:

Importer SQLite3
sqlcon = sqlite3.koble til ('my_db.db ')
Markør = sqlcon.markør ()
markør.Utfør ("" "sett inn i studenter (ID, navn, e -post, merker)
Verdier (10, 'Rocky', '[email protected] ', 13) "" ")
markør.Utfør ("" "sett inn i studenter (ID, navn, e -post, merker)
Verdier (11, 'Morgan', '[email protected] ', 14) "" ")
markør.Utfør ("" "sett inn i studenter (ID, navn, e -post, merker)
Verdier (12, 'Nancy', '[email protected] ', 10) "" ")
markør.Utfør ("" "sett inn i studenter (ID, navn, e -post, merker)
Verdier (13, 'Lucy', '[email protected] ', 13) "" ")
markør.Utfør ("" "sett inn i studenter (ID, navn, e -post, merker)
Verdier (14, 'John', '[email protected] ', 12) "" ")
SQLCON.begå()
Print ("Data settes inn")
markør.Lukk()
Hvis SQLCON:
SQLCON.Lukk()
Print ("Tilkoblingen er lukket")

Produksjon:

Vi passerte innsatsspørsmålet inne i markøren.Utfør () -funksjonen og kalte funksjonen multipler tid med forskjellige data hver gang for å sette inn datarekter i tabellen 'Studenters'.

La oss nå se hvordan vi kan hente/hente data fra Sqlite -tabellen ved hjelp av en Select -setning i Python.

Trinn for å hente data ved hjelp av SELECT

  1. Ved hjelp av SQLite3 -modulen, koble til SQLite -databasen.
  2. For å hente rader fra en tabell, definer en valgt spørring. Avhengig av kravene, kan du trekke ut alle eller bare noen få rader.
  3. Neste trinn er å lage en markør ved hjelp av “tilkoblingen.Markør () ”-metode. Spørringen kan ikke kjøres uten markørobjektet.
  4. Kjør SELECT -spørringen.
  5. For å hente alle rader, bruk Fetchall () -funksjonen til et markørobjekt. Det vil returnere en liste over tabellrader.
  6. Bruker en for loop for å iterere en liste over rader, og få tilgang til hver rad hver for seg.
  7. Markør- og databaseforbindelsesobjekter kan lukkes ved hjelp av markøren.Lukk () og tilkobling.lukk () metoder, henholdsvis.

Eksempel nr. 1:

Her vil vi bruke Select Query for å skaffe eller hente alle dataene fra 'Students' -tabellen. For dette vil vi bruke '*' med SELECT -setningen og bruke tabellnavnet 'Studenter' med fra uttalelsen for å spesifisere tabellen som vi ønsker å hente data.

Kode:

Importer SQLite3
sqlcon = sqlite3.koble til ('my_db.db ')
Markør = sqlcon.markør ()
markør.Utfør ("Velg * fra studenter;")
r = markør.Fetchall ()
for rader i r:
trykk (rader)
SQLCON.begå()
markør.Lukk()
Hvis SQLCON:
SQLCON.Lukk()
Print ("Tilkoblingen er lukket")

Produksjon:

Alle dataene vi lagret når vi oppretter tabellen blir hentet ved å bruke programmet. Spørringen "Velg * fra studenter;" brukes til å få alle dataene fra tabell 'studenter'. Markøren.Fetchall () Funksjon hentet/hentet alle rader i spørringen og returnerte en liste over tuples.

Eksempel 2:

I stedet for å bruke markøren.Fetchall () -funksjon, vi kan også bruke Fetchmany () -funksjonen hvis vi bare ønsker en viss mengde rader. Noen ganger, hvis en tabell har tusenvis av rader, kan det ta lang tid å hente alle dataene fra den. Vi krever større prosessorkraft og lagring fordi vi må bruke flere ressurser for å hente alle rader. Ved å bruke markørklassens Fetchmany (størrelse) metode, kan vi hente færre rader og forbedre effektiviteten.

Kode:

Importer SQLite3
def rowslimit (størrelse):
sqlcon = sqlite3.koble til ('my_db.db ')
Markør = sqlcon.markør ()
markør.Utfør ("" "Velg * fra studenter" "")
trykk ("hente", størrelse, "rader")
r = markør.Fetchmany (størrelse)
trykk ("Skrive ut hver rad \ n")
for rader i r:
trykk (rader)
markør.Lukk()
Hvis SQLCON:
SQLCON.Lukk()
Print ("SQLite -tilkoblingen er lukket")
rowslimit (3)

Produksjon:

Dette programmet ligner på programmet vi brukte i eksempel 1, men forskjellen er at i stedet for å bruke Fetchall () -funksjonen brukte vi Fetchmany () som tar en heltallverdi som inngang for å hente noen/begrensede rader. Vi opprettet en funksjon 'ROWLIMIT' for å overføre parameterstørrelsesverdien til markøren.fetchmany () funksjon. For å hente tre poster, er størrelsen som leveres i det nevnte skriptet 3. Færre rader vil bli returnert hvis bordet har rader som er mindre enn den spesifiserte størrelsen.

Konklusjon

I denne opplæringen så vi først en introduksjon til SQLite og hvordan du kan få tilgang til SQLite ved hjelp av Python. Målet med denne artikkelen er å lære hvordan vi kan bruke Select Query i Sqlite Python. For å hente data fra en databasetabell. Vi diskuterte først hvordan en forbindelse kan etableres mellom Python og Sqlite. Så forklarte vi hvordan du oppretter en databasetabell og setter inn verdier i den. Så til slutt så vi hvordan vi kan bruke en valgt spørring for å hente alle eller et visst antall rader ved hjelp av Fetchall () og Fetchmany () -funksjoner.