Создание и доступ к базе данных SQLite с помощью Python

Задачи

После этой прочтения статьи вы сможете:

  • Создавать базу данных
  • Создавать таблицу
  • Вставлять данные в таблицу
  • Запрашивать данные из таблицы
  • Получать набор результатов в датафрейм pandas
  • Закрыть соединение с базой данных

SQLite – это программная библиотека, реализующая автономный, бессерверный, бесконфигурационный, транзакционный движок баз данных SQL. SQLite – наиболее широко распространенный в мире движок баз данных SQL.

Задача 1: Создать базу данных с помощью

SQLite

#Install & load sqlite3
#!pip install sqlite3  ##Uncomment the code to install sqlite3
import sqlite3
# Connecting to sqlite
# connection object
conn = sqlite3.connect('INSTRUCTOR.db')

Класс Cursor – это экземпляр, с помощью которого можно вызывать методы, выполняющие операторы SQLite, извлекающие данные из наборов результатов запросов. Создать объект Cursor можно с помощью метода cursor() объекта/класса Connection.

# cursor object
cursor_obj = conn.cursor()

Задача 2: Создать таблицу в базе данных

На этом шаге мы создадим в базе данных таблицу со следующими данными:

Создание и доступ к базе данных SQLite с помощью Python

Прежде чем создавать таблицу, необходимо выяснить, существует ли она уже или нет. Для удаления таблицы из базы данных используется запрос DROP. Cursor – это объект, который помогает выполнить запрос и получить записи из базы данных.

Не волнуйтесь, если вы получите эту ошибку:

# создание таблицы
table = """ create table IF NOT EXISTS INSTRUCTOR(ID INTEGER PRIMARY KEY NOT NULL, FNAME VARCHAR(20), LNAME VARCHAR(20), CITY VARCHAR(20), CCODE CHAR(2));"""
 
cursor_obj.execute(table)
 
print("Table is Ready")
Создание и доступ к базе данных SQLite с помощью Python

Задача 3: Вставить данные в таблицу

На этом шаге мы вставим в таблицу несколько строк данных.

Таблица INSTRUCTOR, которую мы создали в предыдущем шаге, содержит 3 строки данных:

Создание и доступ к базе данных SQLite с помощью Python

Начнем со вставки только первой строки данных, т.е. для преподавателя Rav Ahuja

cursor_obj.execute('''insert into INSTRUCTOR values (1, 'Rav', 'Ahuja', 'TORONTO', 'CA')''')
Создание и доступ к базе данных SQLite с помощью Python

На выходе вы получите : sqlite3.Cursor at 0x27a1a491260, что означает, что в базе данных mySql есть объект sqlite3.Cursor по адресу 0x27a1a49126, выводимый в таблицу.

Теперь с помощью одного запроса вставьте оставшиеся две строки данных

cursor_obj.execute('''insert into INSTRUCTOR values (2, 'Raul', 'Chong', 'Markham', 'CA'), (3, 'Hima', 'Vasudevan', 'Chicago', 'US')''')
Создание и доступ к базе данных SQLite с помощью Python

Задача 4: Запросить данные в таблице

На этом шаге мы получим данные, которые мы вставили в таблицу INSTRUCTOR.

statement = '''SELECT * FROM INSTRUCTOR'''
cursor_obj.execute(statement)

print("All the data")
output_all = cursor_obj.fetchall()
for row_all in output_all:
  print(row_all)
Создание и доступ к базе данных SQLite с помощью Python

Получение нескольких строк из таблицы

statement = '''SELECT * FROM INSTRUCTOR'''
cursor_obj.execute(statement)
  
print("All the data")
Создание и доступ к базе данных SQLite с помощью Python

Если необходимо получить несколько строк из таблицы, то используем fetchmany(numberofrows) и указываем число, сколько строк необходимо получить.

output_many = cursor_obj.fetchmany(2) 
for row_many in output_many:
  print(row_many)
Создание и доступ к базе данных SQLite с помощью Python

Извлечь из таблицы только FNAME

statement = '''SELECT FNAME FROM INSTRUCTOR'''
cursor_obj.execute(statement)
  
print("All the data")
output_column = cursor_obj.fetchall()
for fetch in output_column:
  print(fetch)
Создание и доступ к базе данных SQLite с помощью Python

Бонус: теперь напишите и выполните оператор обновления, который изменит значение CITY в Rav на MOOSETOWN

query_update='''update INSTRUCTOR set CITY='MOOSETOWN' where FNAME="Rav"'''
cursor_obj.execute(query_update)
Создание и доступ к базе данных SQLite с помощью Python
statement = '''SELECT * FROM INSTRUCTOR'''
cursor_obj.execute(statement)
  
print("All the data")
output1 = cursor_obj.fetchmany(2)
for row in output1:
  print(row)
Создание и доступ к базе данных SQLite с помощью Python

Задача 5: Получение данных в Pandas

На этом шаге мы извлечем содержимое таблицы INSTRUCTOR в датафрейм Pandas

import pandas as pd
#retrieve the query results into a pandas dataframe
df = pd.read_sql_query("select * from instructor;", conn)

#print the dataframe
df
Создание и доступ к базе данных SQLite с помощью Python
#print just the LNAME for first row in the pandas data frame
df.LNAME[0]
Создание и доступ к базе данных SQLite с помощью Python

После того как данные помещены во фрейм данных Pandas, с ними можно выполнять типичные для pandas операции.

Например, с помощью метода shape можно узнать, сколько строк и столбцов содержится во фрейме данных

df.shape
Создание и доступ к базе данных SQLite с помощью Python

Задача 6: Закрыть соединение

Мы освобождаем все ресурсы, закрывая соединение. Помните, что всегда важно закрывать соединения, чтобы неиспользуемые соединения не занимали ресурсы.

# Close the connection
conn.close()

Резюме

В этом уроке вы создали базу данных и таблицу в блокноте Python, используя SQLite3. Затем создали таблицу и вставили в нее несколько строк данных. Затем выполнили запрос к этим данным. Вы также извлекли данные в кадр данных pandas.

+1
0
+1
0
+1
0
+1
0
+1
0

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *