Programmēšana

Darbu pamati ar SQLite datu bāzi Python

Darbu pamati ar SQLite datu bāzi Python

Datu bāze ir viens no visnoderīgākajiem un populārākajiem failiem datu glabāšanai; tos var izmantot, lai uzglabātu jebkāda veida datus, ieskaitot tekstu, ciparus, attēlus, bināros datus, failus utt. SQLite ir relāciju datu bāzes pārvaldības sistēma, kuras pamatā ir SQL valoda. Tā ir C bibliotēka, un tā nodrošina API darbam ar citām programmēšanas valodām, ieskaitot Python. Tas neprasa atsevišķa servera procesa palaišanu pēc nepieciešamības lielos datu bāzu dzinējos, piemēram, MySQL un Postgresql.

Tā ir ātra un viegla, un visa datu bāze tiek glabāta vienā diska failā, kas padara to pārnēsājamu, piemēram, CSV vai citus datu glabāšanas failus. Daudzas lietojumprogrammas izmanto SQLite iekšējai datu glabāšanai, galvenokārt tādās vidēs kā mobilās ierīces vai mazas lietojumprogrammas.

SQLite datu bāze Python

Ļaujiet mums dziļi ienirt SQLite ar pitona programmēšanas valodu. Šajā apmācībā mēs uzzināsim SQLite izmantošanas priekšrocības, Python sqlite3 moduļa pamatus, tabulas izveidi datu bāzē, datu ievietošanu tabulā, datu pieprasīšanu no tabulas un tabulas datu atjaunināšanu.

SQLite izmantošanas priekšrocības

Galvenās SQLite izmantošanas priekšrocības ir:

SQLite tiek izmantots arī pārlūkā Google Chrome, lai uzglabātu sīkfailus, lietotāja datus un citus svarīgus datus, tostarp lietotāju paroles. Android OS datu glabāšanai kā galveno datu bāzes dzinēju izmanto arī SQLite.

Python SQLite3 modulis

Lai izmantotu SQLite, mūsu sistēmā ir jāinstalē Python. Ja jūsu sistēmā vēl nav instalēts Python, varat uzzināt mūsu soli pa solim sniegto instrukciju, lai instalētu Python Linux. Mēs varētu izmantot SQLite Python, izmantojot sqlite3 modulis, kas pieejams Python standarta bibliotēkā. Gerhards Herings uzrakstīja moduli sqlite3; tas nodrošina SQL saskarni, kas ir saderīga ar DB-API 2.0. Tas ir iepriekš instalēts kopā ar Python standarta bibliotēku, tāpēc mums nav jāuztraucas par turpmāku instalēšanu.

Savienojuma izveide ar datu bāzi

Pirmais solis, strādājot ar SQLite Python, ir savienojuma izveidošana ar datu bāzi. Mēs varam to izdarīt, izmantojot savienojuma izveidošanas metodi sqlite3 connect (). Skatiet piemēru šim kodam. Jūs varat vienkārši nokopēt kodu IDE vai teksta redaktorā un izpildīt to. Ja jums ir problēmas ar IDE izvēli Python, varat skatīt mūsu ceļvedi par labāko Python IDE salīdzināšanu. Ieteicams kodu vēlreiz pārrakstīt savā IDE, un, ja vēlaties kopēt kodu, lūdzu, pārbaudiet sintaksi ar šeit esošo kodu.

# nepieciešamo moduļu importēšana importē sqlite3 # savienojuma izveidošana ar datu bāzes conn = sqlite3.savienot ("paraugs.db ") print (" Veiksmīgi izveidots savienojums ar datu bāzi ") # savienojuma savienojuma aizvēršana.aizvērt ()

Iepriekš minētā programma izveidos savienojumu ar SQLite datu bāzes faila paraugu.db.”Tas nodrošinās šādu izvadi terminālā.

Apskatīsim, kas notiek iepriekš minētajā kodā. Pirmajā rindā mēs esam importējuši sqlite3 moduli, kas mums palīdzēs strādāt ar SQLite datu bāzēm Python.

Otrajā rindā mēs izveidojam savienojumu ar SQLite datu bāzes failu ar nosaukumu “paraugs.db ”, izmantojot savienot () funkciju. Funkcija connect () kā argumentu pieņem ceļu uz datu bāzes failu. Ja faila norādītajā ceļā nav, tas pats izveidos jaunu datu bāzes failu ar norādīto vārdu šajā ceļā. Funkcija connect () atgriezīs datu bāzes objektu mūsu programmā; mēs glabājam atgriezto objektu mainīgajā nosaukumā savien.

Trešā mūsu programmas rinda ir vienkārša izdrukāt paziņojums, lai parādītu ziņojumu par veiksmīgu savienojumu. Programmas pēdējā rinda pārtrauc savienojumu ar datu bāzi, izmantojot aizvērt () savienojuma objekta funkcija.

Iepriekšējā piemērā mēs esam izveidojuši datu bāzi diskā, bet mēs varam arī izveidot datu bāzi primārajā atmiņā RAM. Datu bāzes izveidošana RAM padara datu bāzes izpildi ātrāku nekā parasti. Tomēr datu bāze tiks izveidota īslaicīgi, un, pārtraucot programmas izpildi, tā izdzēsīs datu bāzi no atmiņas. Mēs varam izveidot datu bāzi atmiņā, piegādājot konkrēto nosaukumu: memory: kā argumentu savienot () funkciju. Skatiet zemāk redzamo programmu kā ilustrāciju.

importēt sqlite3 conn = sqlite3.connect (": atmiņa:") print ("\ n [+] Datu bāze ir veiksmīgi izveidota atmiņā") conn.aizvērt ()

Iepriekš minētā programma RAM izveidos datu bāzi, un mēs to varam izmantot, lai veiktu gandrīz visus uzdevumus, ko varam veikt ar diskā izveidotajām datu bāzēm. Šī metode ir noderīga, kaut kādu iemeslu dēļ izveidojot pagaidu virtuālo datu bāzi.

SQLite3 kursors

Akursors objekts ir mūsu saskarne ar datu bāzi, kas ļauj palaist jebkuruSQL vaicājums datu bāzē. Lai izpildītu visus SQL skriptus, izmantojot sqlite3, mums jāizveido kursora objekts. Lai izveidotu kursora objektu, mums jāizmanto kursors () metode savienojums objekts. Mēs varam izveidot savas datubāzes kursora objektu, izmantojot šādu kodu.

# nepieciešamo moduļu importēšana importē sqlite3 # savienojuma izveidošana ar datu bāzi conn = sqlite3.savienot ("paraugs.db ") print (" \ n [+] Veiksmīgi izveidots savienojums ar datu bāzi ") cur = savienojums.kursors () print ("\ n [+] Kursors ir veiksmīgi iestatīts") cur.aizvērt () # savienojuma savienojuma aizvēršana.aizvērt ()

Kad programma ir izpildīta, izeja būs redzama, kā parādīts zemāk esošajā attēlā.

Apskatīsim, kā darbojas iepriekš minētais kods. Iepriekš minētajā kodā pirmais, otrais, trešais izveido savienojumu ar datu bāzi, kā parādīts iepriekš. Ceturtajā rindā mēs izmantojām kursors () savienojuma objekta metode, lai izveidotu kursora objektu un atgriezto kursora objektu saglabātu mainīgajā ar nosaukumu “cur”. Piektā līnija ir vispārējs izdrukāt () paziņojums, apgalvojums. Sestajā rindiņā mēs iznīcinājām kursora objektu no atmiņas, izmantojot aizvērt () kursora objekta metode.

SQLite datu tipi

Pirms turpināt darbu, vispirms izpratīsim SQLite datu tipus. SQLite datu bāzes dzinējam ir vairākas glabāšanas klases, lai uzglabātu daudzu veidu datus, tostarp tekstu, bināros datus, veselu skaitli utt. Katrai vērtībai ir viens no šiem datu tipiem.

SQLite DataTypes:

SQLite un Python datu tipu salīdzinājums

Būs daudzas reizes, kad mums būs jāizmanto pitona datu tipi, lai saglabātu dažus SQL datus un veiktu dažas darbības. Lai to izdarītu, mums jāzina, kuri SQL datu tipi attiecas uz kādiem pitona datu tipiem.

Šie Python veidi ir nedaudz līdzīgi SQLite datu tipiem:

Python tips SQLite tips
Nav NULL
int VESELS SKAITLIS
peldēt ĪSTS
str TEKSTS
baiti LABUMS

Tabulas izveide, izmantojot SQLite

Lai izveidotu tabulu, izmantojot SQLite, mums jāizmanto IZVEIDOT GALDA SQL paziņojums izpildīt() kursora objekta metode. CREATE TABLE priekšraksta SQL sintakse ir parādīta zemāk:

CREATE TABLE tabulas_nosaukums (kolonnas_nosaukuma datu_tipa ierobežojums,… kolonnas_nosaukums datu_tipa ierobežojums);

Lai izmantotu iepriekš minēto SQLite priekšrakstu Python, mums jāpalaiž zemāk esošā programmas piemērs. Tas mūsu datubāzē izveidos tabulu ar nosaukumu darbinieks.

importēt sqlite3 conn = sqlite3.savienot ("paraugs.db ") print (" \ n [+] Veiksmīgi izveidots savienojums ar datu bāzi ") cur = savienojums.cursor () print ("\ n [+] Kursors ir veiksmīgi iestatīts") tabula = cur.izpildīt ("" "CREATE TABLE darbinieks (id INT PRIMARY KEY, vārds CHAR (25), algas CHAR (25), pievienošanās_datuma datums);" "") print ("\ n [+] Tabula ir veiksmīgi izveidota") kur.aizvērt () savienojums.aizvērt ()

Iepriekš minētajā programmā mēs izveidojām darbinieks tabula ar atribūtiem id, vārds, alga, un pievienošanās_datums. Šo tabulu tagad var izmantot datu glabāšanai vai datu pieprasīšanai atbilstoši prasībām. Terminālā jūs redzēsiet šādu izvadi.

Iepriekš minētajā kodā mēs izmantojām izpildīt() metode kursora objektam, lai palaistu komandu SQL, lai izveidotu tabulu ar dotajām kolonnām.

Datu ievietošana tabulā

Mēs esam izveidojuši tabulu mūsu SQLite datu bāzē. Tagad ļaujiet tajā ievietot dažus datus, izmantojot SQL. SQL INSERT priekšraksta sintakse ir šāda:

INSERT INTO tabulas_nosaukums (kolonnu_nosaukums_1, kolonnu_nosaukums_2,…) VALUES (kolonnu_dati_1, kolonnu_dati_1,…)

Iepriekš minētajā sintaksē tabulas_nosaukums ir tās tabulas nosaukums, kurā mēs vēlamies ievietot savus datus. The kolonnas_nosaukums_1, kolonnas_nosaukums_2, ir tabulā esošo kolonnu nosaukums. The slejas_dati_1, slejas_dati_2,… ir dati, kurus mēs vēlamies ievietot dotajās slejās.

Apskatīsim praktisku demonstrāciju, lai ievietotu datus tabulā. Mēs pievienosim dažus datus mūsu nosauktajā tabulā darbinieks izmantojot SQLite un Python. Palaidiet zemāk esošo kodu, lai tabulā ievietotu dažus datus.

importēt sqlite3 conn = sqlite3.savienot ("paraugs.db ") print (" \ n [+] Veiksmīgi izveidots savienojums ar datu bāzi ") cur = savienojums.kursors () print ("\ n [+] Kursors ir veiksmīgi iestatīts") cur.izpildīt ("INSERT INTO darbinieks (ID, vārds, alga, pievienošanās_datums) VALUES (1001, 'David', 50000, '1-08-2019')" cur.izpildīt ("INSERT INTO darbinieks (id, vārds, alga, pievienošanās_datums) VALUES (1002, 'Sam', 80000, '3-09-2020')" cur.izpildīt ("INSERT INTO darbinieks (id, vārds, alga, pievienošanās_datums) VALUES (1003, 'Roshan', 90000, '8-08-2020')" cur.izpildīt ("INSERT INTO darbinieks (id, vārds, alga, pievienošanās_datums) VALUES (1004, 'Kishan', 100000, '9-09-2020')" cur.izpildīt ("INSERT INTO darbinieks (id, vārds, alga, pievienošanās_datums) VALUES (1005, 'Ankit', 111000, '10 -05-2019 ')") izdrukāt ("\ n [+] Dati ir veiksmīgi ievietoti" ) cur.aizvērt () savienojums.izdarīt () savien.aizvērt ()

Iepriekš minētais kods ievietos dažus datus darbinieks tabulu, kuru esam izveidojuši agrāk. Apskatīsim, kas notiek kodā. Pirmās piecas rindas tiek izmantotas, lai izveidotu savienojumu ar datu bāzi un iestatītu kursoru. Rindās no sešiem līdz desmit mums ir jāizmanto SQL INSERT komanda, lai ievietotu datus darbinieku tabulā. Mums ir jāizmanto darbinieku tabulas kolonnu nosaukums pirmajā iekavās un kolonnu dati otrajā iekavās. Mums vienkārši jāizmanto apņemties () savienojuma objekta metodi pirms atvienošanās no datu bāzes, citādi mūsu veiktās izmaiņas netiks saglabātas datu bāzē.

Datu vaicāšana no tabulas

Mēs esam iemācījušies, kā ievietot datus SQLite datu bāzē, bet mums arī jāpieprasa dati no datu bāzes, lai tos izmantotu mūsu programma vai lietotāji. Lai vaicātu datus, mēs varam izmantot SQL priekšrakstu SELECT izpildes () metodē. SELECT priekšraksta sintakse ir parādīta zemāk.

Atlasiet sleju_nosaukumus no tabulas_nosaukums

The sleju_nosaukumi sintaksē būs kolonnu nosaukums, kas mums jāvaicā. Šīm kolonnām jābūt tabulā, kuras nosaukums ir norādīts tabulas_nosaukums. Tagad ļaujiet mums uzzināt, kā mēs varētu izmantot šo sintaksi, lai vaicātu datus no mūsu darbinieku tabulas. Vienkārši palaidiet šo kodu, lai redzētu ilustrāciju.

importēt sqlite3 savienojums = sqlite3.savienot ("paraugs.db ") print (" \ n [+] Veiksmīgi izveidots savienojums ar datu bāzi ") cur = savienojums.kursors () print ("\ n [+] Kursors ir veiksmīgi iestatīts") cur.izpildīt ("SELECT id, vārds no darbinieka") tabula = cur.fetchall () tabulā i: drukāt (i) cur.aizvērt () savienojums.izdarīt () savien.aizvērt ()

Iepriekš minētās programmas sniegtais rezultāts ir parādīts zemāk.

Iepriekš minētā programma vaicās kolonnām ar darbinieku tabulu id un nosaukums. Mēs varam apkopot atgrieztos datus, izmantojot atnest () kursora objekta metode. Atgrieztie dati ir pitonu saraksts, kurā ir rindas, par kurām mēs vaicājām. Lai parādītu atsevišķas rindas, mums jāizmanto Python for loop, lai atkārtotu sarakstu; vairāk par Python for loop varat izlasīt šeit. Tagad ļaujiet mums apskatīt dažas noderīgas lietas, kuras mēs varam izpildīt, izmantojot SELECT.

Atgūt visus datus no tabulas

Dažreiz ir nepieciešams visus ierakstus ielādēt no datu bāzes tabulas. Lai iegūtu visus ierakstus, izmantojot SQL priekšrakstu SELECT, mums jāievēro tālāk sniegtā pamata sintakse:

Atlasiet * FROM tabulas_nosaukums

The * simbols tiks izmantots visu kolonnu apzīmēšanai, un, izmantojot šo, mēs varam vaicāt visās SQLite tabulas kolonnās. Lai ielādētu visus ierakstus no iepriekš izveidotā tabulas darbinieka, mums jāpalaiž šāds kods.

importēt sqlite3 conn = sqlite3.savienot ("paraugs.db ") print (" \ n [+] Veiksmīgi izveidots savienojums ar datu bāzi ") cur = savienojums.kursors () print ("\ n [+] Kursors ir veiksmīgi iestatīts") cur.izpildīt ("SELECT * FROM darbinieks") rindas = cur.fetchall () print ("\ n [+] Pieprasot datus \ n") i rindās: print (i) cur.aizvērt () savienojums.izdarīt () savien.aizvērt ()

Iepriekš minētais kods parādīs visus ierakstus, kas atrodas darbinieku tabulā, kuru esam izveidojuši agrāk. Programmas iznākums būs apmēram šāds:

Vaicājuma dati noteiktā secībā

Dažreiz mums ir jāpieprasa dati no tabulas noteiktā secībā, piemēram, Augošā vai Dilstošā. Lai parādītu datus secībā, mēs varam izmantot komandu SELECT ar atslēgvārdu ORDER BY. Atslēgvārda ORDER BY pamata sintakse SELECT priekšrakstā ir:

Atlasiet sleju_nosaukumu NO tabulas_nosūtījumu PASŪTĪT pēc sleju_nosaukums

Apskatīsim, kā mēs varam izmantot ORDER BY atslēgvārdu, lai parādītu datus no darbinieku tabulas secības pēc nosaukuma.

importēt sqlite3 conn = sqlite3.savienot ("paraugs.db ") print (" \ n [+] Veiksmīgi izveidots savienojums ar datu bāzi ") cur = savienojums.kursors () print ("\ n [+] Kursors ir veiksmīgi iestatīts") cur.izpildīt ("SELECT * FROM staff ORDER BY name") tabula = cur.fetchall () i tabulā: drukāt (i) cur.aizvērt () savienojums.izdarīt () savien.aizvērt ()

Jūs varat redzēt iepriekš minētā koda izvadi, kā parādīts zemāk.

Izejā varat pamanīt, ka dati ir parādīti kolonnas augošā secībā nosaukums.

Ierakstu atjaunināšana tabulā

Ir daudzas situācijas, kad mēs vēlamies atjaunināt mūsu datu bāzu tabulu. Piemēram, ja mēs izmantojam datu bāzi skolas lietojumprogrammai, tad mums būs jāatjaunina dati, ja students pārcēlās uz jaunu pilsētu. Mēs varam ātri atjaunināt jebkuras mūsu datubāzes tabulas rindu, izmantojot ATJAUNINĀT SQL priekšraksts execute () metodē. Mums būs jāizmanto SQL klauzula WHERE kā nosacījums, lai atlasītu darbinieku. Pamata sintakse ATJAUNINĀT paziņojums ir parādīts zemāk.

ATJAUNINĀT tabulas_nosaukumu SET atjaunināšana_vajadzīga WHERE Daži_nosacījums

Skatiet zemāk redzamo piemēru kā UPDATE paziņojuma ilustrāciju.

importēt sqlite3 conn = sqlite3.savienot ("paraugs.db ") print (" \ n [+] Veiksmīgi izveidots savienojums ar datu bāzi ") cur = savienojums.kursors () print ("\ n [+] Kursors ir veiksmīgi iestatīts") print ("\ n [+] Dati pirms atjaunināšanas \ n") cur.izpildīt ("SELECT * FROM darbinieks") pirms = cur.fetchall () i i pirms: print (i) cur.izpildīt ("UPDATE worker SET name = 'Aditya' where name = 'Sam'") print ("\ n [+] Data after Update \ n") cur.izpildīt ("SELECT * FROM darbinieks") pēc = cur.fetchall () priekš i pēc: print (i) cur.aizvērt () savienojums.izdarīt () savien.aizvērt ()

Iepriekš minētā programma atjauninās tabulas darbinieku. Tas aizstāj nosaukumu Sems ar vārdu Aditja visur, kur tas parādās tabulā. Programmas izvadi skatiet zemāk esošajā attēlā.

Secinājums

Tas ir mūsu visaptverošais ceļvedis, lai veiktu dažus pamata SQLite datu bāzes uzdevumus, izmantojot Python. Gaidāmajā apmācībā mēs redzēsim vēl dažus uzlabotus lietojumus, kas novirza jūs uz nākamo SQLite datu bāzes Python apguves līmeni. Sekojiet līdzi FOSSLinux.

Kā instalēt League of Legends operētājsistēmā Ubuntu 14.04
Ja jūs esat League of Legends fans, tad šī ir iespēja jums izmēģināt League of Legends. Ņemiet vērā, ka LOL tiek atbalstīts PlayOnLinux, ja esat Linux...
Instalējiet jaunāko OpenRA stratēģijas spēli Ubuntu Linux
OpenRA ir bezmaksas / bezmaksas reāllaika stratēģijas spēļu dzinējs, kas atjauno agrīnās Vestvudas spēles, piemēram, klasisko Command & Conquer: Red A...
Instalējiet jaunāko Dolphin emulatoru Gamecube un Wii operētājsistēmai Linux
Delfīnu emulators ļauj jums spēlēt izvēlētās Gamecube un Wii spēles Linux personālajos datoros (PC). Tā kā Dolphin Emulator ir brīvi pieejams un atvē...