You are currently viewing SQL с использованием Python

SQL с использованием Python

В этой статье обсуждается интеграция 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.