sqlite3 shell: полезные заметки (из личного опыта)

Aug 02, 2012 21:09

В небольших проектах SQLITE3, основанных на Python (в частности, Django) - как раз та база, что надо. Просто. Удобно. Эффективно. Меня вообще привлекает в программировании то, что просто. А тут - представьте себе - вся база данных умещается в один простой файл, который хранится на жестком диске.

Работая на Python, понимаешь, что есть выбор. Доступ к базе sqlite3 можно получить, используя библиотеку sqlite3 - об этом в подробностях здесь:
11.13. sqlite3 - DB-API 2.0 interface for SQLite databases

...или можно, запустив оболочку sqlite shell, об этом подробно - здесь:

Command Line Shell For SQLite

И так, и так получается неплохо. Но мне больше в душу запал второй вариант.

Как запустить оболочку? Если вы работаете на Linux (у меня на компе - старая добрая Ubuntu), откройте терминал, зайдете в каталог, где у вас база данных (пусть она называется, скажем, test.db) и введите команду:

$ sqlite3 test.db

Есть в оболочке sqlite3 приятные моменты. Например, такая команда (источник: SQLite command line shell basic DDL and DML - DOS, ищи п. 22):

sqlite> .schema University
CREATE TABLE University (
UniversityID INTEGER PRIMARY KEY,
UniversityCode TEXT NOT NULL,
UniversityName TEXT NOT NULL, Country TEXT);
sqlite>

Легко и просто можно посмотреть схему конкретной таблицы. Другая команда:

sqlite> .tab

С ее помощью вы получите список таблиц, которые есть в базе test.db. Далее, допустим, что в базе test.db есть таблица persons. Содержимое этой таблицы вы получаете легко и просто с помощью команды:

sqlite> select * from persons;

(Совет: не забудьте про точку с запятой в конце команды, иначе не сработает!)

Если сравнивать с библиотекой sqlite3, то вроде и там все то же самое можно сделать. Но мне - далеко не специалисту в SQL - как-то затруднительно понять, как получить с помощью этой библиотеку список таблиц базы данных или схему конкретной таблицы. Я невнимательно читал документацию? Очень может быть. Но ведь я - ленивый юзер. А ленивый юзер при прочих равных условиях - конечно, выберет sqlite3 sherll. IMHO

sqlite3, python

Previous post Next post
Up