копия чужой авторской работы
Начало
Для работы с базами данных в языке Python существует единый интерфейс доступа. Все разработчики модулей, осуществляющих связь базами данных Python, должный придерживаться спецификации DB-API(DataBase Application Program Inteface). Эта спецификация более интересна для разработчиков модулей, чем для прикладных программистов, потому мы не будет ее подробно рассматривать ,[Получить полное описание спецификации можно в документе по адресу -
Ссылка скрыта от гостей
]Разумеется, модуль sqlite3 поддерживает эту спецификацию, а также предоставляет некоторые нестандартные возможности. Поэтому, изучив методов и атрибуты этого модуля, вы получите достаточно полное представление о стандарте DB-API 2.0 и сможете в дальнейшем работать с другой базой данных.
Получить номер спецификации, поддерживаемой модулем, можно с помощью атрибута apilevel:
Python:
>>> import sqlite3 # Подключаем модуль;
>>> sqlite3.apilevel # Получаем номер спецификации;
'2.0'
Получить номер версии используемого модуля sqlite3 можно с помощью атрибутов sqlite_version и sqlite_version_info. Атрибут sqlite_version возвращает номер версии в виде строки, а атрибут sqlite_version_info - в видте кортежа из трех четырех чисел.
Пример:
Python:
>>> import sqlite3
>>> sqlite3.sqlite_version
'3.31.1'
>>> sqlite3.sqlite_version_info
(3, 31, 1)
>>>
Согласно спецификации DB-API 2.0, последовательность работы с базой данных выглядит следующим образом:
1. Производится подключение к базе данных с помощью функции connect(). Функция возвращает объект соединения, с помощью которого осуществляются дальнейшая работа с базой даннных.
2. Создается объект-курсор.
3. Выполняется SQL-Запросы и обрабатываются результаты. Перед выполнением первого запроса, который изменяет записи(INSERT, REPLACE, UPDATE И DELETE), автоматически запускается транзакция.
4. Завершается транзакция или отменяются все изменение в рамках транзакции.
5. Закрывается объект-курсор.
6. Закрывается соединение с базой данных.
Создание и открытие базой данных
Для создания и открытия базы данных служит функция, как я говорил ранее - connect(). Функция имеет следующий формат:
connect(database)
В параметре database указывается абсолютный или относительный путь к базе данных. Если база данных не существует, то она будет создана и открыта для работы. Если база данных уже существует, то она просто открывается без всяких изменений.
Функция connect() возвращает объект соединения, с помощью которого осуществляются вся дальнейшая работа с базой данных. Если открыть базу данных не удалось, то возбуждается исключение. Соединение закрывается, когда вызывается метод close() объекта соединения.
Выполнение запросов
Согласно спецификации DB-API 2.0, после создания объекта соединения необходимо создать объект-курсор. Все дальнейшие запросы должны производиться через этот объект. Создание объект-курсора производится с помощью метода cursor(). Для выполнения запроса к базе данных предназначены следующие методы объекта-курсора:close() - закрывает объект-курсора;
executescript(SQL-запросы через точку с запятой) - выполняет несколько SQL запросов за один раз. Если в процессе выполнение запросов, возникает ошибка, метод возбуждает исключение. Давайте создадим таблицу user, с столбцами nickname, email и password.
Ну перед этим, я бы вам по рекомендовал такую программу как - DB Browser for SQLite3.
[ВЕСЬ ТЕКСТ, БЫЛ СКОПИРОВАН С ЭТОГО ИСТОЧНИКА -
Ссылка скрыта от гостей
].
Создаем таблицу
Итак, давайте создадим простую таблицу user, со столбцами nickname, email и password:
Python:
import sqlite3 # Импортируем библиотеку;
con = sqlite3.connect('test.db') # Создаем базу данных[Если он не существует];
cur = con.cursor() # Создаем объект-курсор.
# Переменная sql, будет иметь sqlite команды
sql = """\
CREATE TABLE user( -- Создаем таблицу
-- Внутри него будут простые столбцы
id_user INTEGER PRIMARY KEY AUTOINCREMENT, -- столбец nickname в простой текстовый режим[TEXT]
email TEXT, -- столбец email в простой текстовый режим[TEXT]
password TEXT; -- столбец password в простой текстовый режим[TEXT]
)
"""
# Так же, вызываем простое условие, если всё "Чики-пуки", то вызывается команда print() с положительной сообшенией.
if cur.executescript(sql):
print('Запрос успешно выполнен!')
cur.close() # Закрываем объект курсор
con.close() # Закрываем соеденение с базой
Код получился не так и уж большим, давайте посмотрим что случилось. Ну вас возникает вопрос - Где таблица? Если посмотреть на ваш проект(Ваши файлы питоны), то у вас появился файл test.db, чтобы открыть его, для этого жмякаем 2 клика на файл, и оп, открывается DB Browser for SQLite, если он у вас не стоит, то нажмите правый клик на файл -> Открыть с помощью -> DB Browser for SQLite.
Запускаем код и видим результат.
Отлично, теперь нажимаем на файл test.db и видим:
Как видите на экране, у нас создалась таблица user и 3 столбца.
Итоги
Тоесть, мы узнали как работает код, как создавать таблицу, как подключать и т.д. Но все же, я бы вам рекомендовал учить SQL, хотя бы на половину(
Ссылка скрыта от гостей
) Надеюсь данная статься была полезна для вас.[БУДУ РАД, ЕСЛИ НАЙДЕТЕ ОШИБКИ В КОДЕ ИЛИ В ТЕКСТЕ!]