В этой статье обсуждается интеграция SQLite3 с Python. Здесь мы обсудим все операции CRUD с базой данных SQLite3 с использованием Python. CRUD содержит четыре основные операции:
Примечание: Для этого необходимо базовое понимание SQL.
Здесь мы собираемся соединить SQLite с Python. В Python есть собственная библиотека для SQLite3, называемая sqlite3. Давайте объясним, как это работает.
Подключение к базе данных SQLite
- Чтобы использовать SQLite, мы должны импортировать sqlite3.
import sqlite3
- Затем создайте соединение с помощью connect() метод и передайте имя базы данных, к которой вы хотите получить доступ, если есть файл с таким именем, он откроет этот файл. В противном случае Python создаст файл с заданным именем.
sqliteConnection = sqlite3.connect('gfg.db')
- После этого вызывается объект курсора, способный отправлять команды в SQL.
cursor = sqliteConnection.cursor()
Пример: Подключение к базе данных SQLite3 с помощью Python
import sqlite3
# connecting to the database
connection = sqlite3.connect("gfg.db")
# cursor
crsr = connection.cursor()
# print statement will execute if there
# are no errors
print("Connected to the database")
# close the connection
connection.close()
Выход:
Connected to the database
Объект курсора
Прежде чем перейти к SQLite3 и Python, давайте обсудим объект курсора.
- Объект cursor используется для установления соединения для выполнения SQL-запросов.
- Он действует как промежуточное программное обеспечение между подключением к базе данных SQLite и SQL-запросом. Он создается после подключения к базе данных SQLite.
- Курсор — это структура управления, используемая для перемещения и извлечения записей базы данных.
- Все команды будут выполняться только с использованием объекта курсора.
Выполнение запросов SQLite3 – Создание таблиц
После подключения к базе данных и создания объекта курсора давайте посмотрим, как выполнять запросы.
- Чтобы выполнить запрос в базе данных, создайте объект и запишите в него команду SQL с комментариями. Пример:- sql_comm = ”Инструкция SQL”
- И выполнить команду очень просто. Вызовите метод курсора execute() и передайте имя команды sql в качестве параметра в нем. Сохраните ряд команд в качестве sql_comm и выполните их. После выполнения всех действий сохраните изменения в файле, зафиксировав эти изменения, а затем потеряйте соединение.
Пример: Создание таблиц SQLite3 с использованием Python
В этом примере мы создадим таблицы SQLite3 с использованием Python. Для создания таблиц будет использоваться стандартная команда SQL.
import sqlite3
# connecting to the database
connection = sqlite3.connect("gfg.db")
# cursor
crsr = connection.cursor()
# SQL command to create a table in the database
sql_command = """CREATE TABLE emp (
staff_number INTEGER PRIMARY KEY,
fname VARCHAR(20),
lname VARCHAR(30),
gender CHAR(1),
joining DATE);"""
# execute the statement
crsr.execute(sql_command)
# close the connection
connection.close()
Выход:
Вставка в таблицу
Чтобы вставить данные в таблицу, мы снова запишем команду SQL в виде строки и будем использовать метод execute ().
Пример 1: Вставка данных в таблицу SQLite3 с помощью Python
# Python code to demonstrate table creation and
# insertions with SQL
# importing module
import sqlite3
# connecting to the database
connection = sqlite3.connect("gfg.db")
# cursor
crsr = connection.cursor()
# SQL command to insert the data in the table
sql_command = """INSERT INTO emp VALUES (23, "Rishabh",\
"Bansal", "M", "2014-03-28");"""
crsr.execute(sql_command)
# another SQL command to insert the data in the table
sql_command = """INSERT INTO emp VALUES (1, "Bill", "Gates",\
"M", "1980-10-28");"""
crsr.execute(sql_command)
# To save the changes in the files. Never skip this.
# If we skip this, nothing will be saved in the database.
connection.commit()
# close the connection
connection.close()
Выход:
Пример 2. Вставка данных, введенных пользователем
# importing module
import sqlite3
# connecting to the database
connection = sqlite3.connect("gfg.db")
# cursor
crsr = connection.cursor()
# primary key
pk = [2, 3, 4, 5, 6]
# Enter 5 students first names
f_name = ['Nikhil', 'Nisha', 'Abhinav', 'Raju', 'Anshul']
# Enter 5 students last names
l_name = ['Aggarwal', 'Rawat', 'Tomar', 'Kumar', 'Aggarwal']
# Enter their gender respectively
gender = ['M', 'F', 'M', 'M', 'F']
# Enter their jpining data respectively
date = ['2019-08-24', '2020-01-01', '2018-05-14', '2015-02-02', '2018-05-14']
for i in range(5):
# This is the q-mark style:
crsr.execute(f'INSERT INTO emp VALUES ({pk[i]}, "{f_name[i]}", "{l_name[i]}", "{gender[i]}", "{date[i]}")')
# To save the changes in the files. Never skip this.
# If we skip this, nothing will be saved in the database.
connection.commit()
# close the connection
connection.close()
Выход:
Извлечение данных
В этом разделе мы обсудили, как создать таблицу и как добавлять новые строки в базу данных. Извлечение данных из записей так же просто, как их вставка. Метод execute использует команду SQL для получения всех данных из таблицы с помощью “Select * from table_name”, и все данные таблицы могут быть извлечены в объекте в виде списка списков.
Пример: Чтение данных из таблицы sqlite3 с помощью Python
# importing the module
import sqlite3
# connect withe the myTable database
connection = sqlite3.connect("gfg.db")
# cursor object
crsr = connection.cursor()
# execute the command to fetch all the data from the table emp
crsr.execute("SELECT * FROM emp")
# store all the fetched data in the ans variable
ans = crsr.fetchall()
# Since we have already selected all the data entries
# using the "SELECT *" SQL command and stored them in
# the ans variable, all we need to do now is to print
# out the ans variable
for i in ans:
print(i)
Выход:
Примечание: Следует отметить, что файл базы данных, который будет создан, будет находиться в той же папке, что и файл python. Если мы хотим изменить путь к файлу, измените его при открытии файла.
Обновление данных
Для обновления данных в таблице SQLite3 мы будем использовать инструкцию UPDATE. Мы можем обновлять как отдельные столбцы, так и несколько столбцов, используя инструкцию UPDATE в соответствии с нашими требованиями.
UPDATE table_name SET column1 = value1, column2 = value2,…
В приведенном выше синтаксисе оператор SET используется для задания новых значений для конкретного столбца, а предложение WHERE используется для выбора строк, для которых необходимо обновить столбцы.
Пример: Обновление таблицы SQLite3 с помощью Python
# Import module
import sqlite3
# Connecting to sqlite
conn = sqlite3.connect('gfg.db')
# Creating a cursor object using
# the cursor() method
cursor = conn.cursor()
# Updating
cursor.execute('''UPDATE emp SET lname = "Jyoti" WHERE fname="Rishabh";''')
# Commit your changes in the database
conn.commit()
# Closing the connection
conn.close()
Выход:
Удаление данных
Для удаления данных из таблицы SQLite3 мы можем использовать команду удалить.
DELETE FROM table_name [WHERE Clause]
Пример: Удаление из таблицы SQLite3 с помощью Python
# Import module
import sqlite3
# Connecting to sqlite
conn = sqlite3.connect('gfg.db')
# Creating a cursor object using
# the cursor() method
cursor = conn.cursor()
# Updating
cursor.execute('''DELETE FROM emp WHERE fname="Rishabh";''')
# Commit your changes in the database
conn.commit()
# Closing the connection
conn.close()
Выход:
Удаление таблицы
DROP используется для удаления всей базы данных или таблицы. Он удалил обе записи в таблице вместе со структурой таблицы.
Синтаксис:
DROP TABLE TABLE_NAME;
Пример: Удалите таблицу SQLite3 с помощью Python
Общие таблицы в gfg.db перед удалением
Теперь давайте отбросим таблицу учащихся, а затем снова проверим общую таблицу в нашей базе данных.
# Import module
import sqlite3
# Connecting to sqlite
conn = sqlite3.connect('gfg.db')
# Creating a cursor object using
# the cursor() method
cursor = conn.cursor()
# Updating
cursor.execute('''DROP TABLE Student;''')
# Commit your changes in the database
conn.commit()
# Closing the connection
conn.close()
Выход:
Примечание: Чтобы узнать больше о SQLit3 с Python, обратитесь к нашему учебнику по Python SQLite3.