Для работы с 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()
Порядок работы:
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)
Дополнительное чтиво