Как создать базу данных python
Перейти к содержимому

Как создать базу данных python

  • автор:

Как создать базу данных SQLite на Python

SQLite — это легкая и простая в настройке система управления реляционными базами данных. SQLite не требует сервера, что является его самым большим преимуществом. В отличие от других СУБД, таких как MySQL или PostgreSQL, не требуется сервер для запуска базы данных. Таким образом, нам не нужна установка.

Базы данных SQLite хранятся локально вместе с файлами, хранящимися на диске. Это значительно ускоряет доступ к данным в базе данных и управление ими.

Все транзакции в SQLite соответствуют требованиям ACID.

Создать базу данных SQLite на Python

Чтобы создать базу данных SQLite на Python, используйте встроенный модуль sqlite3. Модуль sqlite3 предоставляет API, с помощью которого вы можете создавать базу данных. Он совместим с API базы данных Python. Не требует никаких внешних библиотек.

Создадим базу данных SQLite на Python.

Шаг 1. Импортируйте пакет sqlite3

Первый шаг — импортировать пакет sqlite3:

import sqlite3 

Он предоставляет API, который понадобится для создания базы данных.

Шаг 2. Используйте функцию connect()

Используйте функцию sqlite3.connect() для создания базы данных. Будет создан объект подключения.

connection = sqlite3.connect('shows.db') 

Имя нашей базы данных — «shows.db». Сохраняем подключение к объекту подключения.

В следующий раз, когда мы запустим этот файл app.py , он просто подключается к базе данных, и если базы данных нет, он создаст ее.

Шаг 3. Создайте таблицу базы данных

Чтобы создать таблицу в базе данных, нам нужно использовать объект курсора. Чтобы создать объект курсора, используйте метод connection.cursor() .

cursor = connection.cursor() 

С помощью этого объекта курсора мы теперь можем выполнять команды и запросы в базе данных.

Наша первая команда — создать таблицу Shows .

Используйте метод cursor.execute() , чтобы написать запрос CREATE TABLE.

cursor.execute('''CREATE TABLE IF NOT EXISTS Shows (Title TEXT, Director TEXT, Year INT)''') 

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

Шаг 4: Зафиксируйте эти изменения в базе данных.

Чтобы зафиксировать изменения в базе данных, используйте метод connection.commit() .

connection.commit() 

Шаг 5: Закройте соединение.

Последний шаг — закрыть соединение с помощью функции connection.close() .

connection.close() 

Вот и все. См. следующий полный код для создания базы данных SQLite на Python.

import sqlite3 connection = sqlite3.connect('shows.db') cursor = connection.cursor() cursor.execute('''CREATE TABLE IF NOT EXISTS Shows (Title TEXT, Director TEXT, Year INT)''') connection.commit() connection.close() 

После запуска файла вы увидите, что в вашем текущем каталоге проекта создан один файл с именем shows.db. Это файл базы данных SQLite, созданный Python.

Вывод

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

Источник:

Встроенная база данных Python

Перед началом статьи хочу сказать, что еще больше полезной и нужной информации вы найдете в нашем Telegram-канале. Подпишитесь, мне будет очень приятно.

Если вы разработчик программного обеспечения, то, скорее всего, вы знакомы с невероятно легкой базой данных SQLite или даже уже использовали ее. Она содержит практически все функции реляционной базы данных и представлена всего одним файлом. На официальном сайте можно найти несколько сценариев применения SQLite:

  • встроенные устройства и интернет вещей;
  • анализ данных;
  • передача данных;
  • архив файлов и/или контейнер данных;
  • внутренние или временные базы данных;
  • замена корпоративной базы данных в период демо-версий или тестирования;
  • обучение и тестирование;
  • экспериментальные расширения языка SQL.

Если вам нужна SQLite для каких-либо других целей, то обратитесь к документации.

Но самое главное — SQLite встроена в библиотеку Python. То есть вам не нужно устанавливать серверное или клиентское ПО и поддерживать работу какого-либо сервиса. Если вы импортировали библиотеку в Python и приступили к работе, значит вы уже используете систему управления реляционными базами данных!

Импортирование и использование

«Встроенность» предполагает, что вам не нужно запускать pip install для получения библиотеки. Просто импортируйте ее с помощью:

import sqlite3 as sl

Создание соединения с БД

Не беспокойтесь о драйверах, строках подключения и т.д. Вы можете создать базу данных SQLite и задать такой простой объект подключения, как:

После запуска этой строки кода происходит создание с БД и активируется подключение к ней. Дело в том, что базы данных, к которой мы просим подключиться Python, не существует, поэтому он автоматически создает пустую. Также мы можем ввести точно такой же код для подключения к уже существующей базе данных.

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

Теперь создадим таблицу:

with con: con.execute(«»» CREATE TABLE USER ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER ); «»»)

Мы добавили три столбца в таблицу USER. Как видите, SQLite действительно легка и при этом поддерживает все основные функции обычной реляционной СУБД, такие как тип данных, обнуляемый тип, первичный ключ и автоинкремент.

После запуска этого кода создается таблица, но она ничего не выводит.

Включение записей

Вставим несколько записей в только что созданную таблицу USER, чтобы доказать, что она действительно создана.

Предположим, мы хотим вставить сразу несколько записей. Выполним:

sql = ‘INSERT INTO USER (id, name, age) values(?, ?, ?)’ data = [ (1, ‘Alice’, 21), (2, ‘Bob’, 22), (3, ‘Chris’, 23) ]

Определяем оператор SQL с вопросительными знаками ? в качестве заполнителя. Теперь создадим образцы данных для вставки, а затем вставим их с помощью объекта подключения:

with con:
con.executemany(sql, data)

После запуска кода не появилось никаких предупреждений, значит все прошло успешно.

Запрос к таблице

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

with con: data = con.execute(«SELECT * FROM USER WHERE age <= 22") for row in data: print(row)

Как видите, все очень просто!

Более того, несмотря на свою легкость SQLite является широко используемой базой данных, и большинство программного обеспечения клиентов SQL ее поддерживает.

Чаще всего я использую инструмент DBeaver. Рассмотрим его на примере.

Подключение к базе данных SQLite из клиента SQL (DBeaver)

Поскольку я использую Google Colab, я буду загружать файл my-test.db на свой компьютер. При запуске Python на локальном компьютере можно использовать клиент SQL для прямого подключения к файлу баз данных.

Создаем новое соединение в DBeaver и выбираем SQLite в качестве типа БД:

Затем переходим к файлу БД:

Теперь к базе данных можно выполнить любой SQL-запрос, как и в любых других реляционных БД:

Непрерывная интеграция с Pandas

Но это еще не все. Дело в том, что, являясь встроенной функцией Python, SQLite может легко интегрироваться с фреймом данных Pandas.

Определяем фрейм данных:

df_skill = pd.DataFrame(< 'user_id': [1,1,2,2,3,3,3], 'skill': ['Network Security', 'Algorithm Development', 'Network Security', 'Java', 'Python', 'Data Science', 'Machine Learning'] >)

Затем просто вызываем метод фрейма данных to_sql(), чтобы сохранить его в базе данных:

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

Допустим, мы хотим объединить таблицу USER и SKILL и прочитать результат во фрейме данных Pandas. Это тоже можно выполнить без проблем.

df = pd.read_sql(»’ SELECT s.user_id, u.name, u.age, s.skill FROM USER u LEFT JOIN SKILL s ON u.id = s.user_id »’, con)

Результаты запишем в новую таблицу под названием USER_SKILL:

Теперь мы также можем использовать клиент SQL для получения таблицы:

В Python есть множество скрытых сюрпризов. Но скрыты они не специально: дело лишь в том, что в Python настолько много функций «из коробки», что невозможно раскрыть их все сразу.

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

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

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

Открывайте для себя еще больше удивительных возможностей Python!

Весь код из этой статьи находится в моем Google Colab Notebook.

Как использовать Python для работы с базами данных

Изучите основы работы с базами данных на Python, включая SQLite, PostgreSQL, MySQL и Oracle, с примерами кода и практическими советами.

Алексей Кодов
Автор статьи
23 июня 2023 в 18:51

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

Работа с SQLite

SQLite — это встроенная база данных в Python, идеально подходящая для небольших проектов и тестирования. Для работы с SQLite достаточно импортировать модуль sqlite3 .

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

import sqlite3 # Создание или подключение к базе данных conn = sqlite3.connect("my_database.db")

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

# Создание объекта курсора для выполнения SQL-запросов cursor = conn.cursor() # Создание таблицы cursor.execute(""" CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, age INTEGER ) """) # Сохранение изменений conn.commit()

Вставка данных

# Вставка одной записи cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("Alice", 25)) conn.commit() # Вставка нескольких записей data = [("Bob", 30), ("Charlie", 22), ("David", 40)] cursor.executemany("INSERT INTO users (name, age) VALUES (?, ?)", data) conn.commit()

Запрос данных

# Выборка всех записей cursor.execute("SELECT * FROM users") rows = cursor.fetchall() for row in rows: print(row) # Выборка записей с условием cursor.execute("SELECT * FROM users WHERE age > ?", (25,)) rows = cursor.fetchall() for row in rows: print(row)

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

# Обновление записи cursor.execute("UPDATE users SET age = ? WHERE name = ?", (26, "Alice")) conn.commit() # Удаление записи cursor.execute("DELETE FROM users WHERE name = ?", ("Bob",)) conn.commit()

Работа с другими базами данных

Для работы с другими базами данных, такими как PostgreSQL, MySQL и Oracle, необходимо установить соответствующие пакеты, а затем импортировать и использовать их аналогично модулю sqlite3 .

PostgreSQL

import psycopg2 conn = psycopg2.connect(database="my_database", user="user", password="password", host="localhost", port="5432")

MySQL

import mysql.connector conn = mysql.connector.connect(user="user", password="password", host="localhost", database="my_database")

Oracle

import cx_Oracle conn = cx_Oracle.connect("user/password@localhost:1521/my_database")

�� Удачной работы с базами данных на Python! Не забывайте закрывать соединение с базой данных после завершения работы:

conn.close()

Заключение

В этой статье мы рассмотрели основные аспекты работы с базами данных на Python, включая создание, подключение, вставку, выборку, обновление и удаление данных. Теперь вы готовы применить эти знания в своих проектах. Удачи вам в изучении Python и разработке!

Базы данных

Здравствуйте, здесь и сейчас я хочу рассказать, что такое базы данных, зачем они нужны, и т.д.; для работы с ними мы будем использовать python и его библиотеку sqlite3.

База данных — совокупность данных, хранимых в соответствии со схемой данных, манипулирование которыми выполняют в соответствии с правилами средств моделирования данных

Так нам говорит Яндекс, но если сказать простыми словами, не углубляясь во все эти понятия, то:

Базы данных (БД) — библиотека, хранящая данные в том или ином виде.

То есть как в библиотеку мы можем прийти и взять книгу «Война и мир», зная что она будет лежать в разделе романов, на букву «В», так и из БД мы можем взять запись по определённому аргументу, в данном случае жанру.

И тут возникает вопрос.

Как это сделать?

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

Как хранятся данные в базах данных

Сначала нужно понять, что БД делятся на:

Сетевые и иерархические БД:

Такие БД представляют собой графы и хранят информацию в них же.

  • Иерархические — древовидный граф
  • Сетевые — полный граф

Данные БД здесь мы рассматривать не будем. Поэтому перейдём к реляционной БД.

Реляционные базы данных

Реляционные БД — БД, в которых данные хранятся в виде таблицы, например Exel.

SQL — именно реляционная БД, и все данные в ней хранятся, в виде таблицы. Например такой:

Я думаю что, на вопрос мы ответили, и можно идти дальше.

Зачем нужны базы данных?

За всю жизнь, человечество накопила невероятно много информации, а БД, как мы знаем собирают, и сортирует эту информацию по таблицам (в нашем случае). И БД помогают абсолютно спокойно ориентироваться во всей этой куче информации, добавлять её туда, изменять и т.д.;

Из теории в практику

Сейчас мы пойдём в практику, но перед этим хотелось бы уточнить кое-что. Сверху я написал такую строку:

SQL — именно реляционная БД, и все данные в ней хранятся, в виде таблицы.

И как вы понимаете, это неверно.
SQL — это структурированный язык запросов (structured query language). Грубо говоря это язык программирования, позволяющий управлять Базами данных, таблицами в них и т.д.

Мой косяк исправили, идём в практику!

Установка sqlite3

Да, это смешно, но мало ли кому-нибудь понадобится

Я не буду описывать алгоритм установки, ведь это давно сделали за меня, если вам нужно установить данный модуль, то просьба идти вот сюда.

Создание первой БД

import sqlite3 as sql con = sql.connect('test.db') with con: cur = con.cursor() cur.execute("CREATE TABLE IF NOT EXISTS `test` (id INTEGER)") con.commit() 

Сначала импорт, потом «con =».
Объясняю, sql.connect(«test.db») — создает файл с именем «test.db», если запустили впервые. То есть принимает на вход путь до файла с расширением .db

cur = con.cursor — позволит нам производить операции с БД, остальное не важно.

cur.execute(. ) — создаёт таблицу с именем тест и всего 1 колонкой id, в которой все данные — числа

commit() — грубо говоря, сохранение БД

А давайте создадим программу, которая запрашивает имя и фамилию, и записывает их в БД, а потом по выбору цифр либо выводит, либо записывает снова.

import sqlite3 as sql print("1 - добавление\n2 - получение") choice = int(input("> ")) con = sql.connect('test.db') with con: cur = con.cursor() cur.execute("CREATE TABLE IF NOT EXISTS `test` (`name` STRING, `surname` STRING)") if choice == 1: name = input("Name\n> ") surname = input("Surname\n> ") cur.execute(f"INSERT INTO `test` VALUES ('', '')") elif choice == 2: cur.execute("SELECT * FROM `test`") rows = cur.fetchall() for row in rows: print(row[0], row[1]) else: print("Вы ошиблись") con.commit() cur.close() 

Стандартные моменты пропустим.

cur.execute(«INS. ») — Добавление данных

cur.execute(«SeL. ») — Получение данных. И так как там отдаётся массив, то мы его перебираем, а после ещё и из кортежа данные берём.

«SELECT», «INSERT», «DROP» и т.д. — это всё SQL.

cur.fetchall() — это что бы в переменную записалось всё, что пришло из БД.

Вывод

Базы данных — важная и очень нужная вещь. Здесь мы затронули настолько её малую часть, что аж смешно. Поэтому чтобы действительно узнать как это работает, советую почитать об этом всём в интернете, благо информации много. Удачи!

Добавить комментарий

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