Выполнение запроса в SQLite3 через Python







Согласно спецификации DB-API 2.0 после создания объекта соединения необходимо создать объект-курсор. Все дальнейшие запросы должны производиться через этот объект. Создание объекта-курсора производится с помощью метода cursor(). Для выполнения запроса к базе данных предназначены следующие методы объекта-курсора:
close() - закрывает объект-курсор
executescript(<Запросы SQL через точку с запятой>) - выполняет несколько SQL запросов за один раз. Если в процессе выполнения запросов возникает ошибка, то метод возбуждается исключение. В качестве примера создадим базу данных и три таблицы в ней:
# -*- coding: utf-8 -*-
import sqlite3
con = sqlite3.connect("catalog.db")
cur = con.cursor() # Создаем объект-курсор
sql = """\
CREATE TABLE user (
id_user INTEGER PRIMARY KEY AUTOINCREMENT,
email text,
passw text
);
CREATE TABLE rubr (
id_rubr INTEGER PRIMARY KEY AUTOINCREMENT,
name_rubr TEXT
);
CREATE TABLE site (
id_site INTEGER PRIMARY KEY AUTOINCREMENT,
is_user INTEGER,
id_rubr INTEGER,
url TEXT,
title TEXT,
iq INTEGER
);
"""
try: # обработка исключения
cur.executescript(sql) # Выполняем SQL-запрос
except sqlite.DatabaseError, err:
print u"Ошибка:", err
else:
print u"Запрос успешно выполнен"
cur.close() # Закрываем объект-курсора
con.close() # Закрываем соединение
raw_input()
Сохраняем код в файл, а затем запускаем его с помощью двойного щелка на значке файла. Обратите внимание на то, что мы работаем с кодировкой UTF-8. Это кодировка по умолчанию используется в SQLite.
execute(<Запрос-SQL[, <Значение>]>) - выполняет один SQL-запрос. Если в процессе выполнения запроса возникает ошибка, то метод возбуждает исключение. Добавим пользователя в таблицу user:
# -*- coding: utf-8 -*-
import sqlite3
con = sqlite3.connect("catalog.db")
cur = con.cursor() # Создаем объект-курсор
sql = """\
INSERT INTO user (email, passw) VALUES ('admin@python-3.ru', 'TypA12ParoLi')
"""
try: # обработка исключения
cur.executescript(sql) # Выполняем SQL-запрос
except sqlite.DatabaseError, err:
print u"Ошибка:", err
else:
print u"Запрос успешно выполнен"
con.commit() # Завершаем транзикцию
cur.close() # Закрываем объект-курсора
con.close() # Закрываем соединение
raw_input()
Если ваше преждевременная семяизвержения настолько же быстрая как и этот скрипт, тогда примите дапоксетин в различных дозировках он поможет расслабиться и наслаждаться не только программированием но и личной жизнью. Успейте приобрести Дапоксетин пока действуют скидки на его цену.
- Работа со списками Python
- Создание нового изображения с библиотекой PIL в Python
- Изучение языка программирования Python с помощью Brain Up!
- Простое ускорение Python-скриптов
- Алгоритм расшифровки названии автомобилей в игре "Что за тачка?" на Python
- Создание своего веб-фреймворка на Python - Часть 1
- Загрузка изображения в базу данных SQLite
Да! Моё семяизвержение гораздо быстрее чем этот скрипт, кто тебя так кодить учил? Бабушка?
Лимонадный Ковбой, мы искренне рады Вашим способностям!
Будем рады в двойне если Вы отправите нам статью от Вашего имени где предложите вариант лучше данной статье.
Мы опубликуем статью от Вашего имени и можете прорекламировать в ней и Ваш сайт или продукт.