Документация по Python. Теоретические материалы, и практические задачи

Python sqlite

В этой большой статьей, мы с вами сегодня познакомимся с одним из самых популярных встроенных модулей, для работы с базой данных python sqlite. SQLite предназначен для хранения информации, и для его удобного чтения. На этом уроке, мы разберем, все основные моменты по работе с ним.

Создание новой базы данных SQLite

Как и в примере с csv файлами, при попытке подключения к несуществующей базе данных, она автоматически создастся. И так, что бы начать работу с базой данных, нам ее надо сначала создать, как обычно, рассмотрим сначала код, затем разберем как это работает.

                    
import sqlite3
from sqlite3 import Error


def create_connection(db_file):
    """ Создание соединения с БД """
    conn = None
    try:
        conn = sqlite3.connect(db_file)
        print(sqlite3.version)
    except Error as e:
        print(e)
    finally:
        if conn:
            conn.close()


if __name__ == '__main__':
    create_connection(r"C:\db\pythonsqlite.db")
  1. Импортируем непосредственно сам модуль SQLite
  2. Создаем функцию подключения create_connection, в качестве аргумента передаем нашу БД
  3. Вызываем функцию connect() модуля SQLite
  4. Используем блок try…except, что бы в случае ошибке вывести ее на экран, в случае успеха, мы увидим версию SQLite
  5. Затем после всех наших операций, незабываем закрыть соединение

После запуска, вы увидите, что по указанному пути, у вас появился файл pythonsqlite.db.

Создание базы данных в оперативной памяти

Базу данных можно создать и внутри вашей оперативной памяти. Для этого вам достаточно передать имя файла как :memory: методу connect(), после чего, у вас создастся новая БД внутри вашего ОЗУ. Ниже приведен пример кода.

                    
import sqlite3
from sqlite3 import Error


def create_connection():
    """ Создание БД внутри ОЗУ
    """
    conn = None;
    try:
        conn = sqlite3.connect(':memory:')
        print(sqlite3.version)
    except Error as e:
        print(e)
    finally:
        if conn:
            conn.close()


if __name__ == '__main__':
    create_connection()

Создание таблиц в SQLite python

Для создания новой таблицы в SQLite из программы Python, нам необходимо выполнить следующие действия:

  1. Создаем объект Connection используя метод connect() модуля sqlite3
  2. Создаем объект cursor, вызвав метод cursor объекта Connection
  3. Передаем инструкцию CREATE TABLE методу execute() объекта Cursor

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

Python sqlite

Сначала приведу полный листинг кода, а потом поэтапно разберем, как это все работает.

                    
import sqlite3
from sqlite3 import Error


def create_connection(db_file):
   
    conn = None
    try:
        conn = sqlite3.connect(db_file)
        return conn
    except Error as e:
        print(e)

    return conn


def create_table(conn, create_table_sql):

    try:
        c = conn.cursor()
        c.execute(create_table_sql)
    except Error as e:
        print(e)


def main():
    database = r"C:\sqlite\db\pythonsqlite.db"

    sql_create_projects_table = """ CREATE TABLE IF NOT EXISTS projects (
                                        id integer PRIMARY KEY,
                                        name text NOT NULL,
                                        begin_date text,
                                        end_date text
                                    ); """

    sql_create_tasks_table = """CREATE TABLE IF NOT EXISTS tasks (
                                    id integer PRIMARY KEY,
                                    name text NOT NULL,
                                    priority integer,
                                    status_id integer NOT NULL,
                                    project_id integer NOT NULL,
                                    begin_date text NOT NULL,
                                    end_date text NOT NULL,
                                    FOREIGN KEY (project_id) REFERENCES projects (id)
                                );"""

    # create a database connection
    conn = create_connection(database)

    # create tables
    if conn is not None:
        # create projects table
        create_table(conn, sql_create_projects_table)

        # create tasks table
        create_table(conn, sql_create_tasks_table)
    else:
        print("Error! cannot create the database connection.")


if __name__ == '__main__':
    main()
  1. Создаем функцию create_connection() для соединения с базой данных, которая возвращает объект conn. Объект conn представляет базу SQLite.
  2. Создаем функцию create_table(), которая принимает объект conn, и инструкцию SQL create_table_sql. Внутри нашей функции вызываем метод execute() объекта Cursor(), что бы выполнить запрос в БД.
  3. Создаем функцию main(), для создания таблиц projects и tasks
  4. Запускаем функцию main()

После запуска нашей программы, вы увидите, что в вашей базе данных, создались две таблицы project и tasks.

Оставьте комментарий

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