tässä opetusohjelmassa työskentelemme sqlite3-tietokannan kanssa ohjelmallisesti käyttäen Pythonia.
SQLite on yleensä palvelimeton tietokanta, jota voit käyttää lähes kaikilla ohjelmointikielillä, mukaan lukien Python. Server-vähemmän tarkoittaa ei tarvitse asentaa erillistä palvelinta työskennellä SQLite, jotta voit muodostaa yhteyden suoraan tietokantaan.
SQLite on kevyt tietokanta, joka voi tarjota relaatiotietokannan hallintajärjestelmä, nolla-kokoonpano, koska ei tarvitse määrittää tai määrittää mitään käyttää sitä.,
käytämme SQLite-versiota 3 tai SQLite3, joten aloitetaan.
Sisällysluettelo
Luo Yhteyden
käyttää SQLite3 Python, ensinnäkin, sinun täytyy tuoda sqlite3 moduuli ja luo sitten yhteys esine, joka yhdistää meitä tietokantaan ja antaa meidän suorittaa SQL-käskyjä.
yhteys objekti käyttää connect () – funktio:
import sqlite3con = sqlite3.connect('mydatabase.db')
Se luo uuden tiedoston, jonka nimi on ’mydatabase.db”.,
SQLite3 Kohdistin
suorittaa SQLite lausuntoja, Python, sinun täytyy kursori objektin. Voit luoda sen kursorin () menetelmällä.
SQLite3-kursori on yhteysobjektin menetelmä. Suorittaa SQLite3 lausuntoja, sinun pitäisi muodostaa yhteyden ensin ja sitten luoda objektin osoittimen avulla yhteys esine, seuraavasti:
con = sqlite3.connect('mydatabase.db')cursorObj = con.cursor()
Nyt voimme käyttää kursori objektin soittaa execute () – metodi suorittaa minkä tahansa SQL-kyselyjä.,
Luo Tietokanta
Kun luot yhteyden SQLite, joka luo tietokantaan tiedoston automaattisesti jos sitä ei ole jo olemassa. Tämä tietokantatiedosto on luotu levylle; voimme myös luoda tietokannan RAM käyttämällä: memory: with the connect-toimintoa. Tätä tietokantaa kutsutaan muistitietokannaksi.
Harkitse alla oleva koodi, jossa olemme luoneet tietokannan kanssa kokeilla, paitsi ja lopuksi lohkot käsitellä poikkeuksia:
Ensinnäkin, me tuoda sqlite3 moduuli, sitten määrittelemme funktion sql_connection., Tämän funktion sisällä on kokeilulohko, jossa connect () – funktio palauttaa yhteysobjektin yhteyden muodostamisen jälkeen.
sitten meillä on paitsi block, joka poikkeustapauksissa tulostaa virheviestin. Jos virheitä ei ole, yhteys vahvistetaan ja viesti näytetään seuraavasti.
sen Jälkeen, olemme suljettu yhteys lopulta lohko. Yhteyden sulkeminen on vapaaehtoista, mutta se on hyvä ohjelmointikäytäntö, joten voit vapauttaa muistin käyttämättömistä resursseista.,
Luo taulukko
luodaksesi taulukon sqlite3: ssa, voit käyttää Luo taulukko-kyselyä execute () – menetelmässä. Mieti seuraavia vaiheita:
- luo yhteysobjekti.
- luo yhteysobjektista kohdistinobjekti.
- käytä kohdistinobjektia, soita suoritusmenetelmää Luo taulukko-kyselyllä parametrina.,
luodaan työntekijöitä, joilla on seuraavat määritteet:
employees (id, name, salary, department, position, hireDate)
– koodi on kuin tämä:
edellä koodi, meillä on määritelty kaksi menetelmää, joista ensimmäinen muodostaa yhteyden, ja toinen menetelmä luo kursorin objektin suorittaa luoda taulukko selvitys.
commit () – menetelmä tallentaa kaikki tekemämme muutokset. Lopulta kutsutaan molempia menetelmiä.
Jos haluat tarkistaa, onko pöytämme luotu, voit käyttää SQLite-selaimen DB-selainta nähdäksesi pöytäsi. Avaa mydatabaasi.,db-tiedoston kanssa ohjelman, ja sinun pitäisi nähdä taulukosta:
Lisää Taulukko
jos Haluat lisätä tietoja taulukon, käytämme INSERT INTO statement. Harkitse seuraava rivi koodia:
cursorObj.execute("INSERT INTO employees VALUES(1, 'John', 700, 'HR', 'Manager', '2017-01-04')")con.commit()
Voit tarkistaa, jos tiedot on syötetty, klikkaa Selaa Tietoja DB-Selain:
Voimme myös välittää arvoja/argumentteja INSERT statement execute () – metodia. Voit käyttää kysymysmerkkiä (?) kunkin arvon sijoittajana., Syntaksi LISÄÄ tulee, kuten seuraavat:
cursorObj.execute('''INSERT INTO employees(id, name, salary, department, position, hireDate) VALUES(?, ?, ?, ?, ?, ?)''', entities)
Missä yhteisöt sisältävät arvot paikkamerkit seuraavasti:
entities = (2, 'Andrew', 800, 'IT', 'Tech', '2018-02-06')
koko koodi on seuraava:
Päivitä Taulukko
päivitä taulukko, yksinkertaisesti luoda yhteyden, sitten luoda kohdistin objektin yhteyden ja lopuksi käytä PÄIVITYS lausuma execute () – metodia.
Oletetaan, että haluamme päivittää sen työntekijän nimen, jonka tunnus on 2., Päivitystä varten Käytämme PÄIVITYSTILANNETTA ja työntekijää, jonka tunnus on 2. Käytämme WHERE-lauseketta ehtona tämän työntekijän valitsemiselle.
Harkitse seuraava koodi:
Tämä muuttaa nimi Andrew Rogers seuraavasti:
Select
Voit käyttää select, jos haluat valita tiedot tietyltä taulukko. Jos haluat valita kaikki sarakkeet tiedot taulukosta, voit käyttää asteriskia (*)., Syntaksi tämä tulee olemaan seuraava:
select * from table_name
SQLite3, VALITSE selvitys on toteutettu suorittaa menetelmä kohdistin objektin., Esimerkiksi, valitse kaikki sarakkeet työntekijöiden taulukko, ajaa seuraava koodi:
cursorObj.execute('SELECT * FROM employees ')
Jos haluat valita muutaman sarakkeet-taulukosta ja määritä sitten sarakkeet, kuten seuraavat:
select column1, column2 from tables_name
esimerkiksi
cursorObj.execute('SELECT id, name FROM employees')
select valitsee tarvittavat tiedot tietokannasta taulukkoon, ja jos haluat noutaa valitut tiedot, fetchall() menetelmä kohdistin-objektia käytetään. Osoitamme tämän seuraavassa jaksossa.,
Hae kaikki tiedot
hakemaan tietoja tietokannasta, me suorita SELECT ja sitten käyttää fetchall() menetelmä kohdistin objektin tallentaa arvot muuttujan. Sen jälkeen kierrämme muuttujan läpi ja tulostamme kaikki arvot.
– koodi on kuin tämä:
yllä Oleva koodi tulostaa tietueita tietokantaan seuraavasti:
Voit myös käyttää fetchall() yhdellä rivillä seuraavasti:
Jos haluat hakea tiettyjä tietoja tietokantaan, voit käyttää where-lauseke., Haluamme esimerkiksi hakea niiden työntekijöiden tunnukset ja nimet, joiden palkka on yli 800. Tätä varten, populate meidän pöytä enemmän rivejä, sitten suorittaa kyselyn.
Voit käyttää insert julkilausuman asuttamaan tietoja, tai voit syöttää ne manuaalisesti DB-selain ohjelma.
Nyt hakemaan tunnus ja nimet, jotka ovat palkka on suurempi kuin 800:
edellä SELECT, sen sijaan käyttää asteriskia (*), me määritetty tunnus ja nimi määritteitä., Tulos on, kuten seuraavat:
SQLite3 rowcount
SQLite3 rowcount käytetään return rivien määrä, jotka ovat vaikuttaneet tai valitaan uusin suoritetaan SQL-kysely.
Kun käytämme rowcount kanssa SELECT, -1 palautetaan, kuinka monta riviä on valittu on tuntematon, kunnes ne ovat kaikki haettu., Tarkastellaan esimerkiksi alla:
print(cursorObj.execute('SELECT * FROM employees').rowcount)
näin Ollen saada rivi count, sinun täytyy noutaa kaikki tiedot, ja sitten saada pituus tulos:
rows = cursorObj.fetchall()print len (rows)
Kun käytät DELETE ilman mitään ehtoja (where-lauseke), joka poistaa kaikki rivit taulukkoon, ja se palaa kokonaismäärä poistetut rivit rowcount.
print(cursorObj.execute('DELETE FROM employees').rowcount)
Jos rivi on poistettu, se palaa nolla.,
Luettelo taulukoista
listaa kaikki taulukot SQLite3-tietokanta, sinun pitäisi kyselyn sqlite_master taulukko ja sitten käyttää fetchall() noutaa tulokset SELECT.
sqlite_master on sqlite3: n master table, joka tallentaa kaikki taulukot.
Tämä listaa kaikki taulukot seuraavasti:
Tarkista, onko pöytä olemassa vai ei
Kun luot taulukon, meidän pitäisi varmistaa, että taulukko ei ole jo olemassa. Vastaavasti poistettaessa / poistettaessa taulukkoa taulukon pitäisi olla olemassa.,s” kanssa DROP TABLE selvitys seuraavasti:
drop table if exists table_name
esimerkiksi
cursorObj.execute('drop table if exists projects')
Voimme myös tarkistaa, jos taulukko halutaan käyttää olemassa vai ei suorittamalla seuraavat kysely:
cursorObj.execute('SELECT name from sqlite_master WHERE type = "table" AND name = "employees"')print(cursorObj.fetchall())
Jos työntekijöiden taulukko on olemassa, se palaa sen nimi seuraavasti:
Jos taulun nimi meidän määritelty ei ole olemassa, tyhjä joukko palautetaan:
Drop table
Voit pudottaa/poistaa taulukon käyttäen PUDOTA lausunto., Syntaksi PUDOTA lausunto on seuraava:
drop table table_name
pudota taulukossa, taulukon pitäisi olla olemassa tietokannassa. Siksi, on suositeltavaa käyttää ”jos on olemassa” kanssa pudota ilmoitus seuraavasti:
drop table if exists table_name
esimerkiksi
SQLite3 poikkeukset
Poikkeuksia ovat ajoaika virheitä. Python-ohjelmoinnissa kaikki poikkeukset ovat luokan tapauksia, jotka on johdettu Baseexceptiosta.,
SQLite3, meillä on seuraavat keskeiset Python poikkeukset:
DatabaseError
Jokin virhe liittyy tietokantaan herättää DatabaseError.
IntegrityError
IntegrityError on alaluokka DatabaseError ja on kasvatti kun on-tietojen eheyden kysymys. Esimerkiksi ulkomaisia tietoja ei päivitetä kaikissa taulukoissa, mikä johtaa tietojen epäjohdonmukaisuuteen.
ProgrammingError
ottamatta ProgrammingError nostaa, kun on syntaksivirheitä tai taulukko ei löydy tai toiminto on nimeltään väärä määrä parametreja/ argumentteja.,
OperationalError
Tämä poikkeus nostetaan, kun tietokanta operaatiot ovat epäonnistuneet, esimerkiksi, epätavallinen katkaisua. Tämä ei ole ohjelmoijien vika.
NotSupportedError
Kun käytät joitakin menetelmiä, joita ei ole määritelty tai tuettu tietokanta, joka nostaa NotSupportedError poikkeus.
SQLite3 Executemany (Bulk insert)
Voit käyttää executemany lausunto, jos haluat lisätä useita rivejä kerralla.
harkitse seuraavaa koodia:
tässä loimme taulukon, jossa on kaksi saraketta, ja ”datalla” on neljä arvoa jokaiselle sarakkeelle., Siirrämme muuttujan executemany () – menetelmään yhdessä kyselyn kanssa.
Huomaa, että olemme käyttäneet paikkamerkki siirtää arvoja.
yllä Oleva koodi tuottaa seuraavan tuloksen:
Sulje Yhteys
Kun olet tehnyt tietokannan, se on hyvä käytäntö, jos haluat sulkea yhteyden. Yhteyden voi sulkea close () – menetelmällä.,
sulje yhteys, käyttää yhteyttä objekti ja soita sulje() menetelmä, seuraavasti:
con = sqlite3.connect('mydatabase.db')#program statementscon.close()
SQLite3 datetime
Vuonna Pythonin SQLite3-tietokanta, voimme helposti tallentaa päivämäärän tai kellonajan tuomalla datatime-moduuli. Seuraavat muodot ovat yleisimpiä formaatteja voit käyttää datetime:
YYYY-MM-DDYYYY-MM-DD HH:MMYYYY-MM-DD HH:MM:SSYYYY-MM-DD HH:MM:SS.SSSHH:MMHH:MM:SSHH:MM:SS.SSSnow
Harkitse seuraava koodi:
tämän koodin, me tuodaan datetime module ensin, ja olemme luoneet taulukon nimeltä tehtäviä, jossa on kolme saraketta.
kolmannen sarakkeen tietotyyppi on päivämäärä., Jos haluat lisätä päivämäärän sarakkeeseen, olemme käyttäneet datetime.päivämäärä. Samoin Voimme käyttää datetime.aika käsitellä aikaa.
yllä Oleva koodi tuottaa seuraavan tulosteen:
suuren joustavuuden ja liikkuvuuden SQLite3 tietokantaan, tehdä ensimmäinen valinta tahansa kehittäjä käyttää sitä ja lähettää sen minkä tahansa tuotteen kanssa hän toimii.
SQLite3-tietokantoja voi käyttää Windows -, Linux -, Mac OS -, Android-ja iOS-projekteissa niiden mahtavan siirrettävyyden vuoksi. Joten lähetät yhden tiedoston projektillasi ja siinä kaikki.
toivottavasti opetusohjelma on hyödyllinen., Tule takaisin.
Kiitos.
Ayesha Tariq on full stack-ohjelmistosuunnittelija, web-kehittäjä, ja blockchain kehittäjä harrastaja. Hänellä on laaja tietämys C/C++: sta, Javasta, Kotlinista, Pythonista ja monista muista.