В небольших проектах 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