time

Python и база данных sqlite

python-sqlite.jpg Для работы с SQLite в Python понадобится установленый пакет sqlite и python 2.5+.

# под Arch Linux
sudo pacman -S sqlite

# под Ubuntu
sudo apt-get install sqlite

Проверка sqlite

$ sqlite3 test.db
sqlite> .tables
sqlite> .exit

$ python
>>> import sqlite3
>>> sqlite3.version

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

import sqlite3

con = sqlite3.connect('users.db')
cur = con.cursor()
cur.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, firstName VARCHAR(100), secondName VARCHAR(30))')
con.commit()
cur.execute('INSERT INTO users (id, firstName, secondName) VALUES(NULL, "Guido", "van Rossum")')
con.commit()
print cur.lastrowid

cur.execute('SELECT * FROM users')
print cur.fetchall()
con.close()

Порядок работы:

  1. Создание соединения с базой данных. Если БД не существует то она будет создана, иначе файл будет открыт.
  2. Создание объекта курсора для взаимодействия с БД.
  3. Вставка кортежа со значениями, в зависимости от пользовательского вода
cur.execute('INSERT INTO users VALUES (null, ?, ?)', (firstName, secondName))
con.commit()

Выборка данных

Выборка нескольких строк с данными:

import sqlite3

con = sqlite3.connect('users.db')
cur = con.cursor()
cur.execute('SELECT * FROM names')
print cur.fetchall()

cur.execute('SELECT * FROM names')
for row in cur:
    print '-'*10
    print 'ID:', row[0]
    print 'First name:', row[1]
    print 'Second name:', row[2]
    print '-'*10
con.close()

Выборка одной строки с данными:

import sqlite3

con = sqlite3.connect('users.db')
with con:
    cur = con.cursor()
    cur.execute('SELECT * FROM names')
    data = cur.fetchone()
    print data[0]
con.close()

Есть возможность выбрать заданное количество строк, передав желаемое значение в курсор:

cur.execute('SELECT * FROM names')
print cur.fetchmany(2)

Дополнительное чтиво

blog comments powered by Disqus