Работа с базой данных SQLite в Python: примеры использования

GetCoder.ru
Изображение статьи

Python и SQLite: основные операции с базой данных в Python. Creat, insert, select, update и delete.

Базы данных - важная часть многих программных проектов, и Python предоставляет широкие возможности для работы с ними. Одним из популярных инструментов является SQLite, который представляет собой лёгкую и быструю систему управления базами данных. В этой статье мы рассмотрим примеры использования библиотеки для работы с SQLite в Python на примере класса main, который демонстрирует основные операции: создание таблицы, вставку, выборку, обновление и удаление данных.

Установка SQLite

Перед тем как начать работу с SQLite в Python, убедитесь, что у вас установлен модуль sqlite3. В большинстве случаев он уже будет доступен в вашей установке Python. Если нет, вы можете установить его с помощью pip:

  • copy
pip install pysqlite3

Давайте рассмотрим каждый из методов класса main, который демонстрирует основные операции работы с базой данных SQLite в Python.

Подключение к базе данных

  • copy
self.db = dbSQLite('myDataBase.sqlite', True)

Этот код создаёт экземпляр класса dbSQLite, который представляет собой подключение к базе данных SQLite. Если база данных с указанным именем не существует, она будет создана.

Создание таблицы

  • copy
nameTable = 'table_example' structure = 'id integer PRIMARY KEY AUTOINCREMENT NOT NULL, name TEXT, title TEXT, status INTEGER' answer = self.db.create_table(nameTable, structure)

Этот код создаёт таблицу table_example с указанной структурой. В данном примере создаются столбцы id, name, title и status.

Внесение данных

  • copy
variable = {'name': 'test_name', 'title': 'test_title', 'status': 'test_status'} answer = self.db.insert(variable, nameTable, 'name, title, status', ':name, :title, :status')

Этот код вносит данные в таблицу table_example с указанными значениями для столбцов name, title и status.

Выборка данных

  • copy
variable = {'id': '1'} answer = self.db.select(variable, '*', nameTable, 'id = :id')

Этот код выполняет запрос на выборку всех данных из таблицы table_example, где значение столбца id равно 1.

Удаление данных

  • copy
variable = {'id': '1'} answer = self.db.delete(variable, nameTable, 'id = :id')

Этот код удаляет запись из таблицы table_example, где значение столбца id равно 1.

Обновление данных

  • copy
variable = {'id': '2', 'name': 'update_test_name', 'status': 'update_test_status'} answer = self.db.update(variable, nameTable, 'name = :name, status = :status','id = :id')

Этот код обновляет запись в таблице table_example, где значение столбца id равно 2, устанавливая новые значения для столбцов name и status.

Заключение

В этой статье мы рассмотрели примеры использования библиотеки для работы с базой данных SQLite в Python на основе класса main. SQLite предоставляет простой и удобный способ управления данными в приложениях Python, и знание его основных операций может быть полезным при создании различных проектов.

  • copy
# -*- coding: utf-8 -*- import sqlite3, time, os class dbSQLite(): # Подключение / создание БД def __init__(self, fileLocation, creating = None): try: if os.path.exists(fileLocation) == False and creating == None: raise Exception('The file at '+fileLocation+' was not found') self.conn = sqlite3.connect(fileLocation) self.conn.row_factory = self.dict_factory self.cursor = self.conn.cursor() except Exception as e: exit(str(e)) # Подготовка ассоциативного массива def dict_factory(self, cursor, row): d = {} for idx, col in enumerate(cursor.description): d[col[0]] = row[idx] return d # Вывод данных def select(self, variable, what, nameTable, where = None, order = None): try: sql = 'SELECT '+what+' FROM '+nameTable sql += ' WHERE '+where if where != None else '' sql += ' ORDER BY '+order if order != None else '' variable = {} if variable == None else variable self.cursor.execute(sql, variable) return self.cursor.fetchall() except Exception as e: return 'Error: select ('+str(e)+')' # Создание таблицы def create_table(self, nameTable, structure): try: sql = 'CREATE TABLE IF NOT EXISTS '+nameTable+' ('+structure+')' self.cursor.execute(sql) self.conn.commit() return True except Exception as e: #result = 'Error: create_table ('+str(e)+')' time.sleep(0.01) return self.create_table(nameTable, structure) # Внесение данных def insert(self, variable, nameTable, rows = None, values = None): sql = 'INSERT INTO '+nameTable sql += ' ('+rows+')' if rows != None else '' sql += ' VALUES ('+values+')' variable = {} if variable == None else variable try: self.cursor.execute(sql, variable) result = self.cursor.lastrowid self.conn.commit() return result except Exception as e: #result = 'Error: insert ('+str(e)+')' time.sleep(0.01) return self.insert(variable, nameTable, rows, values) # Обновление данных def update(self, variable, nameTable, params, where = None): try: sql = 'UPDATE '+nameTable+' SET '+params sql += ' WHERE '+where if where != None else '' variable = {} if variable == None else variable self.cursor.execute(sql, variable) self.conn.commit() return True except Exception as e: #result = 'Error: update ('+str(e)+')' time.sleep(0.01) return self.update(variable, nameTable, params, where) # Удаление данных def delete(self, variable, nameTable, where): try: sql = 'DELETE FROM '+nameTable+' WHERE '+where variable = {} if variable == None else variable self.cursor.execute(sql, variable) self.conn.commit() return True except Exception as e: #result = 'Error: delete ('+str(e)+')' time.sleep(0.01) return self.delete(variable, nameTable, where) # Закрыть соединение def disconnect(self): try: self.conn.close() return True except Exception as e: result = 'Error: disconnect ('+str(e)+')' # Пример запросов class main(): def __init__(self): # Подключение self.db = dbSQLite('myDataBase.sqlite', True) # Создание таблицы nameTable = 'table_example' structure = 'id integer PRIMARY KEY AUTOINCREMENT NOT NULL, name TEXT, title TEXT, status INTEGER' #answer = self.db.create_table(nameTable, structure) #print(answer) # Внесение данных variable = {'name': 'test_name', 'title': 'test_title', 'status': 'test_status'} #answer = self.db.insert(variable, nameTable, 'name, title, status', ':name, :title, :status') #print(answer) # Вывод данных variable = {'id': '1'} #answer = self.db.select(variable, '*', nameTable, 'id = :id') #print(answer) # Удаление variable = {'id': '1'} #where = 'name = ? and status = ?' #answer = self.db.delete(variable, nameTable, 'id = :id') #print(answer) # Обновление variable = {'id': '2', 'name': 'update_test_name', 'status': 'update_test_status'} #answer = self.db.update(variable, nameTable, 'name = :name, status = :status','id = :id') #print(answer) # Закрыть соединение self.db.disconnect() if __name__ == "__main__": main()
  • 13.03.2024
  • 38
  • 0

Работа с базой данных SQLite в Python: примеры использования

Базы данных - важная часть многих программных проектов, и Python предоставляет широкие возможности для работы с ними. Одним из популярных инструментов является SQLite, который представляет собой лёгкую и быструю систему управления базами данных. В этой статье мы рассмотрим примеры использования библиотеки для работы с SQLite в Python на примере класса main, который демонстрирует основные операции: создание таблицы, вставку, выборку, обновление и удаление данных.

Установка SQLite

Перед тем как начать работу с SQLite в Python, убедитесь, что у вас установлен модуль sqlite3. В большинстве случаев он уже будет доступен в вашей установке Python. Если нет, вы можете установить его с помощью pip:

  • copy
pip install pysqlite3

Давайте рассмотрим каждый из методов класса main, который демонстрирует основные операции работы с базой данных SQLite в Python.

Подключение к базе данных

  • copy
self.db = dbSQLite('myDataBase.sqlite', True)

Этот код создаёт экземпляр класса dbSQLite, который представляет собой подключение к базе данных SQLite. Если база данных с указанным именем не существует, она будет создана.

Создание таблицы

  • copy
nameTable = 'table_example' structure = 'id integer PRIMARY KEY AUTOINCREMENT NOT NULL, name TEXT, title TEXT, status INTEGER' answer = self.db.create_table(nameTable, structure)

Этот код создаёт таблицу table_example с указанной структурой. В данном примере создаются столбцы id, name, title и status.

Внесение данных

  • copy
variable = {'name': 'test_name', 'title': 'test_title', 'status': 'test_status'} answer = self.db.insert(variable, nameTable, 'name, title, status', ':name, :title, :status')

Этот код вносит данные в таблицу table_example с указанными значениями для столбцов name, title и status.

Выборка данных

  • copy
variable = {'id': '1'} answer = self.db.select(variable, '*', nameTable, 'id = :id')

Этот код выполняет запрос на выборку всех данных из таблицы table_example, где значение столбца id равно 1.

Удаление данных

  • copy
variable = {'id': '1'} answer = self.db.delete(variable, nameTable, 'id = :id')

Этот код удаляет запись из таблицы table_example, где значение столбца id равно 1.

Обновление данных

  • copy
variable = {'id': '2', 'name': 'update_test_name', 'status': 'update_test_status'} answer = self.db.update(variable, nameTable, 'name = :name, status = :status','id = :id')

Этот код обновляет запись в таблице table_example, где значение столбца id равно 2, устанавливая новые значения для столбцов name и status.

Заключение

В этой статье мы рассмотрели примеры использования библиотеки для работы с базой данных SQLite в Python на основе класса main. SQLite предоставляет простой и удобный способ управления данными в приложениях Python, и знание его основных операций может быть полезным при создании различных проектов.

  • copy
# -*- coding: utf-8 -*- import sqlite3, time, os class dbSQLite(): # Подключение / создание БД def __init__(self, fileLocation, creating = None): try: if os.path.exists(fileLocation) == False and creating == None: raise Exception('The file at '+fileLocation+' was not found') self.conn = sqlite3.connect(fileLocation) self.conn.row_factory = self.dict_factory self.cursor = self.conn.cursor() except Exception as e: exit(str(e)) # Подготовка ассоциативного массива def dict_factory(self, cursor, row): d = {} for idx, col in enumerate(cursor.description): d[col[0]] = row[idx] return d # Вывод данных def select(self, variable, what, nameTable, where = None, order = None): try: sql = 'SELECT '+what+' FROM '+nameTable sql += ' WHERE '+where if where != None else '' sql += ' ORDER BY '+order if order != None else '' variable = {} if variable == None else variable self.cursor.execute(sql, variable) return self.cursor.fetchall() except Exception as e: return 'Error: select ('+str(e)+')' # Создание таблицы def create_table(self, nameTable, structure): try: sql = 'CREATE TABLE IF NOT EXISTS '+nameTable+' ('+structure+')' self.cursor.execute(sql) self.conn.commit() return True except Exception as e: #result = 'Error: create_table ('+str(e)+')' time.sleep(0.01) return self.create_table(nameTable, structure) # Внесение данных def insert(self, variable, nameTable, rows = None, values = None): sql = 'INSERT INTO '+nameTable sql += ' ('+rows+')' if rows != None else '' sql += ' VALUES ('+values+')' variable = {} if variable == None else variable try: self.cursor.execute(sql, variable) result = self.cursor.lastrowid self.conn.commit() return result except Exception as e: #result = 'Error: insert ('+str(e)+')' time.sleep(0.01) return self.insert(variable, nameTable, rows, values) # Обновление данных def update(self, variable, nameTable, params, where = None): try: sql = 'UPDATE '+nameTable+' SET '+params sql += ' WHERE '+where if where != None else '' variable = {} if variable == None else variable self.cursor.execute(sql, variable) self.conn.commit() return True except Exception as e: #result = 'Error: update ('+str(e)+')' time.sleep(0.01) return self.update(variable, nameTable, params, where) # Удаление данных def delete(self, variable, nameTable, where): try: sql = 'DELETE FROM '+nameTable+' WHERE '+where variable = {} if variable == None else variable self.cursor.execute(sql, variable) self.conn.commit() return True except Exception as e: #result = 'Error: delete ('+str(e)+')' time.sleep(0.01) return self.delete(variable, nameTable, where) # Закрыть соединение def disconnect(self): try: self.conn.close() return True except Exception as e: result = 'Error: disconnect ('+str(e)+')' # Пример запросов class main(): def __init__(self): # Подключение self.db = dbSQLite('myDataBase.sqlite', True) # Создание таблицы nameTable = 'table_example' structure = 'id integer PRIMARY KEY AUTOINCREMENT NOT NULL, name TEXT, title TEXT, status INTEGER' #answer = self.db.create_table(nameTable, structure) #print(answer) # Внесение данных variable = {'name': 'test_name', 'title': 'test_title', 'status': 'test_status'} #answer = self.db.insert(variable, nameTable, 'name, title, status', ':name, :title, :status') #print(answer) # Вывод данных variable = {'id': '1'} #answer = self.db.select(variable, '*', nameTable, 'id = :id') #print(answer) # Удаление variable = {'id': '1'} #where = 'name = ? and status = ?' #answer = self.db.delete(variable, nameTable, 'id = :id') #print(answer) # Обновление variable = {'id': '2', 'name': 'update_test_name', 'status': 'update_test_status'} #answer = self.db.update(variable, nameTable, 'name = :name, status = :status','id = :id') #print(answer) # Закрыть соединение self.db.disconnect() if __name__ == "__main__": main()