Програмиране

Основи на работата с базата данни SQLite в Python

Основи на работата с базата данни SQLite в Python

Базата данни е един от най-полезните и популярни файлове за съхранение на данни; те могат да се използват за съхраняване на всякакъв вид данни, включително текст, числа, изображения, двоични данни, файлове и т.н. SQLite е релационна система за управление на база данни, базирана на езика SQL. Това е C библиотека и осигурява API за работа с други езици за програмиране, включително Python. Той не изисква отделен сървърен процес, който да се изпълнява, както е необходимо, в големи двигатели на бази данни като MySQL и Postgresql.

Той е бърз и лек и цялата база данни се съхранява в един диск, което го прави преносим като CSV или други файлове за съхранение на данни. Много приложения използват SQLite за вътрешно съхранение на данни, главно в среди като мобилни устройства или малки приложения.

База данни на SQLite за Python

Нека да се потопим дълбоко в SQLite с езика за програмиране python. В този урок ще научим предимствата на използването на SQLite, основите на модула python sqlite3, Създаване на таблица в база данни, Вмъкване на данни в таблицата, Заявки за данни от таблицата и Актуализиране на данните на таблицата.

Предимства на използването на SQLite

Основните предимства на използването на SQLite са:

SQLite се използва и в Google Chrome за съхранение на бисквитки, потребителски данни и други важни данни, включително потребителски пароли. Операционната система Android също използва SQLite като основната си база данни за съхранение на данни.

Python SQLite3 модул

За да използваме SQLite, трябва да инсталираме Python в нашата система. Ако вече нямате инсталиран Python във вашата система, можете да се обърнете към нашето ръководство стъпка по стъпка за инсталиране на Python в Linux. Можем да използваме SQLite в Python, използвайки sqlite3 модул, наличен в стандартната библиотека на Python. Герхард Харинг написа модула sqlite3; той осигурява SQL интерфейс, съвместим с DB-API 2.0. Той се предлага с предварително инсталирана стандартна библиотека на Python, така че не е нужно да се притесняваме за по-нататъшна инсталация.

Създаване на връзка с база данни

Първата стъпка по време на работа с SQLite в Python е създаването на връзка с база данни. Можем да направим това, като използваме метода connect () на sqlite3, за да настроим връзка. Вижте следния код за пример. Можете просто да копирате кода в IDE или текстов редактор и да го изпълните. Ако имате проблем с избора на IDE за Python, можете да се обърнете към нашето ръководство за сравняване на най-добрата IDE на python. Препоръчително е да пренапишете кода отново във вашата IDE и ако искате да копирате кода, моля, проверете синтаксиса с кода, присъстващ тук.

# импортиране на необходимите модули import sqlite3 # настройка на връзката с база данни conn = sqlite3.свързване ("проба.db ") print (" Успешно свързан към базата данни ") # затваря връзката conn.близо()

Горната програма ще създаде връзка с файла на базата данни на SQLite „пример.db.”Той ще даде следния изход в терминала.

Нека да видим какво се случва в горния код. На първия ред имаме импортиран модул sqlite3, който ще ни помогне да работим с бази данни на SQLite в Python.

Във втория ред създаваме връзка с файл на базата данни на SQLite, наречен „sample.db ”с помощта на свързване () функция. Функцията connect () приема пътя към файла на базата данни като аргумент. Ако файлът не съществува в дадения път, той сам ще създаде нов файл на базата данни с даденото име в този път. Функцията connect () ще върне обект на база данни в нашата програма; съхраняваме върнатия обект в променлива с име конн.

Третият ред в нашата програма е прост печат израз за показване на съобщение за успешна връзка. Последният ред на програмата прекъсва връзката с базата данни с помощта на близо() функция на обекта на свързване.

В предишния пример ние създадохме базата данни в диска, но също така можем да създадем база данни в основната RAM памет. Създаването на база данни в RAM прави изпълнението на базата данни по-бързо от обикновено. И все пак базата данни ще бъде създадена временно и когато изпълнението на програмата спре, тя ще изтрие базата данни от паметта. Можем да създадем база данни в паметта, като предоставим конкретното име: memory: като аргумент на свързване () функция. Вижте долната програма като илюстрация.

импортиране на sqlite3 conn = sqlite3.connect (": memory:") print ("\ n [+] Базата данни е създадена успешно в паметта") conn.близо()

Горната програма ще създаде база данни в RAM и ние можем да я използваме за изпълнение на почти всяка задача, която можем да направим с бази данни, създадени на диска. Този метод е полезен при създаване на временна виртуална база данни по някаква причина.

Курсор на SQLite3

Aкурсора обектът е нашият интерфейс към базата данни, който позволява стартиране на всекиSQL заявка в базата данни. За да изпълним всеки SQL скрипт с помощта на sqlite3, трябва да създадем обект на курсора. За да създадем обект на курсор, трябва да използваме курсор () метод на Връзка обект. Можем да създадем обект на курсор на нашата база данни, като използваме следния код.

# импортиране на необходимите модули import sqlite3 # настройка на връзката към базата данни conn = sqlite3.свързване ("проба.db ") print (" \ n [+] Успешно свързан към базата данни ") cur = conn.cursor () print ("\ n [+] Курсорът е настроен успешно") cur.close () # затваряне на връзката conn.близо()

Когато програмата се изпълни, изходът ще се види, както е показано на изображението по-долу.

Нека да видим как работи горният код. В горния код първият, вторият, третият създава връзка с базата данни, както е показано по-рано. В четвъртия ред използвахме курсор () метод на обекта на свързване за създаване на обект на курсора и съхраняване на върнатия обект на курсора в променлива с име "cur". Петият ред е общ печат () изявление. В шестия ред унищожихме обекта на курсора от паметта с помощта на близо() метод на обекта на курсора.

Типове данни на SQLite

Преди да продължим по-нататък, нека първо разберем типовете данни на SQLite. Двигателят на базата данни на SQLite има няколко класа съхранение за съхраняване на много видове данни, включително текст, двоични данни, Integer и т.н. Всяка стойност има един от следните типове данни.

Типове данни на SQLite:

Сравнение на типовете данни на SQLite и Python

Ще има много пъти, когато трябва да използваме типове данни на python, за да съхраняваме някои SQL данни и да извършваме някои дейности. За да направим подобно нещо, трябва да знаем кои типове данни на SQL са свързани с кои типове данни на python.

Следните типове Python са донякъде подобни на типовете данни на SQLite:

Тип на Python Тип SQLite
Нито един НУЛА
инт ИНТЕГЪР
плувка ИСТИНСКИ
ул ТЕКСТ
байта BLOB

Създаване на таблица с помощта на SQLite

За да създадем таблица с помощта на SQLite, трябва да използваме СЪЗДАЙТЕ МАСА изявление на SQL в изпълни() метод на обекта на курсора. Основният синтаксис на израза CREATE TABLE в SQL е показан по-долу:

СЪЗДАЙТЕ ТАБЛИЦА име на таблица (име_на колона Ограничение на тип_данни, ... Име на колона Ограничение на тип_данни);

За да използваме горния SQLite израз в Python, трябва да стартираме примерната програма по-долу. Той ще създаде таблица с име служител в нашата база данни.

импортиране на sqlite3 conn = sqlite3.свързване ("проба.db ") print (" \ n [+] Успешно свързан към базата данни ") cur = conn.cursor () print ("\ n [+] Курсорът е настроен успешно") таблица = cur.execute ("" "CREATE TABLE служител (id INT PRIMARY KEY, име CHAR (25), заплата CHAR (25), joining_date DATE);" "") print ("\ n [+] Таблицата е създадена успешно") cur.close () conn.близо()

В горната програма създадохме служител таблица с атрибутите документ за самоличност, име, заплата, и дата на присъединяване. Тази таблица вече може да се използва за съхраняване на данни или заявки за данни според изискванията. Ще видите следния изход в терминала.

В горния код използвахме изпълни() метод на обекта на курсора за изпълнение на SQL командата за създаване на таблица с дадените колони.

Вмъкване на данни в таблица

Създадохме таблица в нашата база данни SQLite. Сега нека вмъкнем някои данни в него с помощта на SQL. Основният синтаксис на оператора INSERT на SQL е:

ВЪВЕЖДАНЕ В Име на таблица (колона_име_1, колона_име_2, ...) СТОЙНОСТИ (колони_данни_1, колони_данни_1, ...)

В горния синтаксис, име_на_таблица е името на таблицата, в която искаме да вмъкнем нашите данни. The колона_име_1, колона_име_2,.. са името на колоните, присъстващи в таблицата. The колона_данни_1, column_data_2, .. са данните, които искаме да вмъкнем в дадените колони.

Нека видим практическа демонстрация за вмъкване на данни в таблица. Ще добавим някои данни в нашата таблица с име служител използване на SQLite и Python. Изпълнете кода по-долу, за да вмъкнете някои данни в таблицата.

импортиране на sqlite3 conn = sqlite3.свързване ("проба.db ") print (" \ n [+] Успешно свързан към базата данни ") cur = conn.cursor () print ("\ n [+] Курсорът е настроен успешно") cur.изпълни ("INSERT INTO служител (id, име, заплата, joining_date) VALUES (1001, 'David', 50000, '1-08-2019')") cur.изпълни ("INSERT INTO служител (id, име, заплата, joining_date) VALUES (1002, 'Sam', 80000, '3-09-2020')") cur.изпълни ("INSERT INTO служител (id, име, заплата, joining_date) VALUES (1003, 'Roshan', 90000, '8-08-2020')") cur.изпълни ("INSERT INTO служител (id, име, заплата, joining_date) VALUES (1004, 'Kishan', 100000, '9-09-2020')").execute ("INSERT INTO worker (id, name, pay, joining_date) VALUES (1005, 'Ankit', 111000, '10 -05-2019 ')") print ("\ n [+] Данните са вмъкнати успешно" ) cur.close () conn.commit () conn.близо()

Горният код ще вмъкне някои данни в служител таблица, която сме създали по-рано. Нека да видим какво се случва в кода. Първите пет реда се използват за създаване на връзка с базата данни и настройка на курсора. В редовете от шест до десет трябва да използваме командата INSERT на SQL, за да вмъкнем данни в таблицата на служителите. Трябва да използваме името на колоните на таблицата на служителите в първата скоба и данните за колоните във втората скоба. Просто трябва да използваме ангажиране () метод на обекта на свързване преди да се прекъсне връзката с базата данни, в противен случай промените, които направихме, няма да бъдат записани в базата данни.

Заявка за данни от таблица

Научихме как да вмъкваме данни в база данни на SQLite, но също така трябва да поискаме данни от базата данни да бъдат използвани от нашата програма или потребители. За да запитваме данни, можем да използваме оператора SELECT на SQL под метода execute (). Основният синтаксис на оператора SELECT е показан по-долу.

ИЗБЕРЕТЕ имена на колони ОТ Име на таблица

The колони_имена в синтаксиса ще бъде името на колони, които трябва да заявим. Тези колони трябва да присъстват в таблицата, чието име е дадено вместо име_на_таблица. Сега нека видим как бихме могли да използваме този синтаксис за заявки за данни от нашата таблица на служителите. Просто изпълнете следния код, за да видите илюстрация.

импортиране на sqlite3 conn = sqlite3.свързване ("проба.db ") print (" \ n [+] Успешно свързан към базата данни ") cur = conn.cursor () print ("\ n [+] Курсорът е настроен успешно") cur.изпълнение ("ИДЕТИ ИД, име ОТ служител") таблица = cur.fetchall () за i в таблица: print (i) cur.close () conn.commit () conn.близо()

Резултатът, предоставен от горната програма, е показан по-долу.

Горната програма ще запитва таблицата на служителите за колоните документ за самоличност и име. Можем да събираме данните, които са върнати, като използваме извличане () метод на обекта на курсора. Върнатите данни са списък на python, съдържащ редовете, които сме заявили. За да покажем отделни редове, трябва да използваме цикъла Python for, за да прегледаме списъка; можете да прочетете повече за цикъла Python for тук. Сега нека видим някои полезни неща, които можем да изпълним с оператора SELECT.

Изтеглете всички данни от таблица

Понякога има нужда да се извлекат всички записи от таблица на базата данни. За да получим всички записи, използвайки оператора SELECT на SQL, трябва да следваме основния синтаксис, даден по-долу:

ИЗБЕРЕТЕ * ОТ име_на таблица

The * символ ще се използва за обозначаване на всички колони и като използваме това, можем да заявим всички колони на таблица на SQLite. За да извлечем всички записи от служителя на таблицата, който сме създали по-рано, трябва да изпълним следния код.

импортиране на sqlite3 conn = sqlite3.свързване ("проба.db ") print (" \ n [+] Успешно свързан към базата данни ") cur = conn.cursor () print ("\ n [+] Курсорът е настроен успешно") cur.изпълни ("SELECT * FROM служител") редове = cur.fetchall () print ("\ n [+] Заявка за данни \ n") за i в редове: print (i) cur.close () conn.commit () conn.близо()

Горният код ще покаже всички записи в таблицата на служителите, които сме създали по-рано. Резултатът от програмата ще бъде нещо подобно:

Данни за заявки в конкретен ред

Понякога трябва да запитваме данни от таблица в определен ред като Възходящ или Низходящ. Можем да използваме оператора SELECT с ключовата дума ORDER BY, за да показваме данните по ред. Основният синтаксис на ключовата дума ORDER BY в оператора SELECT е:

ИЗБЕРЕТЕ име_на колони ОТ име_на таблица ПОРЪЧКА ПО Име на колона

Нека видим как можем да използваме ключовата дума ORDER BY за показване на данни от реда на таблицата на служителите по име.

импортиране на sqlite3 conn = sqlite3.свързване ("проба.db ") print (" \ n [+] Успешно свързан към базата данни ") cur = conn.cursor () print ("\ n [+] Курсорът е настроен успешно") cur.изпълни ("ИЗБЕРЕТЕ * ОТ ПОРЪЧКА ПО име на служител") таблица = cur.fetchall () за i в таблица: print (i) cur.close () conn.commit () conn.близо()

Може да видите изхода на горния код, както е показано по-долу.

Може да забележите в изхода, че данните са били показани във възходящ ред на колоната име.

Актуализиране на записите в таблица

Има много ситуации, когато искаме да актуализираме таблицата на нашите бази данни. Например, ако използваме базата данни за училищно приложение, ще трябва да актуализираме данните, ако ученик се прехвърли в нов град. Можем бързо да актуализираме ред от всяка таблица от нашата база данни с помощта на АКТУАЛИЗИРАНЕ изявление на SQL в метода execute (). Ще трябва да използваме клаузата WHERE на SQL като условие за избор на служител. Основният синтаксис на АКТУАЛИЗИРАНЕ изявление е показано по-долу.

АКТУАЛИЗИРАНЕ_на_таблица НАСТРОЯВАНЕ_на_задължение WHERE Някои_условия

Вижте примера по-долу като илюстрация на израза UPDATE.

импортиране на sqlite3 conn = sqlite3.свързване ("проба.db ") print (" \ n [+] Успешно свързан към базата данни ") cur = conn.cursor () print ("\ n [+] Курсорът е настроен успешно") print ("\ n [+] Data Before Update \ n") cur.изпълни ("SELECT * FROM служител") преди = cur.fetchall () за i in преди: print (i) cur.изпълни ("АКТУАЛИЗИРАНЕ на SET SET name = 'Aditya', където name = 'Sam'") print ("\ n [+] Data After Update \ n") cur.изпълни ("SELECT * FROM служител") след = cur.fetchall () за i in след след: print (i) cur.close () conn.commit () conn.близо()

Горната програма ще актуализира служителя на масата. Той замества името Сам с името Адитя където и да се появи в таблицата. Вижте изображението по-долу за изхода на програмата.

Заключение

Това е нашето изчерпателно ръководство за изпълнение на някои основни задачи, свързани с базата данни на SQLite, използвайки Python. В предстоящия урок ще видим още няколко усъвършенствани употреби, които трябва да ви отведат до следващото ниво на обучение на SQLite база данни за Python. Следете FOSSLinux.

Как да обърнете посоката на превъртане на мишката и тъчпада в Windows 10
Мишка и Тъчпадs не само правят изчисленията лесни, но и по-ефективни и отнемат по-малко време. Не можем да си представим живот без тези устройства, но...
Как да промените курсора на мишката и размера на курсора, цвета и схемата в Windows 10
Показалецът на мишката и курсорът в Windows 10 са много важни аспекти на операционната система. Това може да се каже и за други операционни системи, т...
Безплатни и игри с отворен код за разработване на Linux игри
Тази статия ще обхване списък с безплатни двигатели за игри с отворен код, които могат да се използват за разработване на 2D и 3D игри на Linux. Същес...