Быстрый в изучении - мощный в программировании
>> Telegram ЧАТ для Python Программистов

Свободное общение и помощь советом и решением проблем с кодом! Заходите в наш TELEGRAM ЧАТ!

>> Python Форум Помощи!

Мы создали форум где отвечаем на все вопросы связанные с языком программирования Python. Ждем вас там!

>> Python Канал в Telegram

Обучающие статьи, видео и новости из мира Python. Подпишитесь на наш TELEGRAM КАНАЛ!

python sqlite

Занесение данных в таблицу SQLite

Мы создадим таблицу Cars и внесем несколько строк данных в неё.

#!/usr/bin/python
# -*- coding: utf-8 -*-
 
import sqlite3 as lite
import sys
 
# Подключаемся к базе данных
con = lite.connect('test.db')
 
with con:
    cur = con.cursor()    
    # Создаем таблицу
    cur.execute("CREATE TABLE Cars(Id INT, Name TEXT, Price INT)")
    # Вносим данные
    cur.execute("INSERT INTO Cars VALUES(1, 'Audi', 52642)")
    cur.execute("INSERT INTO Cars VALUES(2, 'Mercedes', 57127)")
    cur.execute("INSERT INTO Cars VALUES(3, 'Skoda', 9000)")
    cur.execute("INSERT INTO Cars VALUES(4, 'Volvo', 29000)")
    cur.execute("INSERT INTO Cars VALUES(5, 'Bentley', 350000)")
    cur.execute("INSERT INTO Cars VALUES(6, 'Citroen', 21000)")
    cur.execute("INSERT INTO Cars VALUES(7, 'Hummer', 41400)")
    cur.execute("INSERT INTO Cars VALUES(8, 'Volkswagen', 21600)")

Данный скрипт создаёт таблицу Cars и вставляет 8 строк в таблицу.

cur.execute("CREATE TABLE Cars(Id INT, Name TEXT, Price INT)")

Этот SQL-запрос создает новую таблицу Cars. Таблица имеет три столбца.

cur.execute("INSERT INTO Cars VALUES(1,'Audi',52642)")
cur.execute("INSERT INTO Cars VALUES(2,'Mercedes',57127)")

Далее...

Выполнение запроса в 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()
Далее...