Открытие файла базы данных из командной строки SQLite
Я использую Оболочка Командной Строки SQLite. Как задокументировано, я могу открыть базу данных, предоставив ее в качестве аргумента исполняемому файлу:
Я не могу понять, как открыть файл базы данных из в программе после его вызова без предоставления файла в качестве аргумента командной строки (если я, скажем, дважды щелкните sqlite3.exe в Windows). какова команда в инструменте оболочки SQLite для указания файла базы данных?
7 ответов
вы можете присоединить одну и даже несколько баз данных и работать с ней так же, как с помощью SQLite dbname.db
где в обычном режиме main используется для командной строки db
Я думаю, что самый простой способ просто открыть одну базу данных и начать запрос:
Примечание: это работает только для версии 3.8.2+
так же, как и в другой системе БД, вы можете использовать имя БД для идентификации таблиц с двойным именем. уникальные табличные имена могут использоваться напрямую.
или если имя таблицы во всех подключенных базах данных, является уникальным
но я думаю, что из sqlite-shell предназначен только для ручного поиска или ручного управления данными, и поэтому этот способ более несущественный
обычно вы используете SQLite-command-line в скрипте
Если это новая база данных, которую вы хотите создать и открыть, это
Если база данных существует в другой папке, путь должен быть указан следующим образом:
в командной оболочке Windows вы должны использовать » \ «для представления каталога, но в SQLite каталоги представлены»/». Если вы все еще предпочитаете использовать в нотации Windows, вы должны использовать escape-последовательность для каждого’\’
интересно, почему никто не смог получить то, что вопрос на самом деле спрашивает. Он заявил какова команда в инструменте оболочки SQLite для указания файла базы данных?
я нашел лучший способ сделать работу-это
таким образом, вы можете сделать вступить работа с различными таблицами, принадлежащими к различным базам данных, а также.
можно просто указать имя файла базы данных в командной строке:
кроме того, вы можете выполнить свой запрос из командной строки:
вы можете прикрепить другой файл базы данных из оболочки SQLite:
таблицы из 2-й базы данных будут доступны через префикс базы данных:
но кто знает, как указать несколько файлов базы данных из командной строки, чтобы выполнить запрос из командная строка?
SQLite — замечательная встраиваемая БД (часть 1)
Решил все-таки написать статью про SQLite, в которой хочу обобщить свой 3-х летний опыт использования этой БД под Windows. Вижу, что тема популярная, но информации мало.
Эта статья не для начинающих программистов.
Она не является учебником по SQL.
Она не агитирует использовать SQLite.
Она не агитирует не использовать SQLite.
Статья написана в виде вопросов от гипотетического новичка в SQLite и ответов на них (поскольку информации очень много и так хоть немного проще ее структурировать).
Что такое SQLite?
SQLite — это встраиваемая кроссплатформенная БД, которая поддерживает достаточно полный набор команд SQL и доступна в исходных кодах (на языке C).
Исходные коды SQLite находятся в public domain, то есть вообще никаких ограничений на использование.
Сайт (с прекрасной документацией на английском): http://sqlite.org
Текущая версия: 3.7.13
SQLite можно скомпилировать самому, но я скачиваю ее уже скомпилированную в виде Windows DLL.
Для собственной сборки обычно скачивают т.н. «amalgamation»,
т.е. исходники SQLite в виде единого файла на языке C + sqlite3.h.
Чтобы уменьшить размер кода SQlite, выкинув ненужные ништяки, используются всякие DEFINE.
Насколько SQLite популярна?
Кратко: она везде. Как минимум, на любом смартфоне.
Насколько она надежна?
2 млн тестов), покрытие кода тестами 100% (с августа 2009).
А какие еще инструменты дают разработчики?
Доступна консольная утилита для работы с базами (sqlite3.exe, «a command-line shell for accessing and modifying SQLite databases»).
И все?
Да, от основных разработчиков — все. Однако, другие люди пишут всякие менеджеры и пр.
Лично я так и не нашел идеального и пользуюсь консолью.
Что значит «достаточно полный набор SQL»?
Как известно, в своем развитии SQL устремился в разные стороны. Крупные производители начали впихивать всякие расширения. И хотя принимаются всякие стандарты (SQL 92), в реальной жизни все крупные БД не поддерживают стандартов полностью + имеют что-то свое. Так вот, SQLite старается жить по принципу «минимальный, но полный набор». Она не поддерживает сложные штуки, но во многом соответствует SQL 92.
И вводит некие свои особенности, которые очень удобны, но — не стандартны.
Что конкретно в поддержке SQL может вызвать недоумение?
Нельзя удалить или изменить столбец в таблице (ALTER TABLE DROP COLUMN…, ALTER TABLE ALTER COLUMN… ).
Есть триггеры, но не настолько мощные как у крупных RDBMS.
Есть поддержка foreign key, но по умолчанию — она ОТКЛЮЧЕНА.
Нет встроенной поддержки UNICODE (но ее, вообщем, нетрудно добиться).
Нет хранимых процедур.
А что своего хорошего или необычного?
a) каждая запись содержит виртуальный столбец rowid, который равен 64-битному номеру (уникальному для таблицы).
Можно объявить свой столбец INTEGER PRIMARY KEY и тогда этот столбец станет rowid (со своим именем, имя rowid все равно работает).
При вставке записи можно указать rowid, а можно — не указывать (и система тогда вставит уникальный).
Подробности: www.sqlite.org/autoinc.html
b) можно без труда организовать БД в памяти (это очень удобно и чуть позже расскажу подробнее);
c) легко переносить: по умолчанию, БД — это один файл (в кроссплатформенном формате);
d) тип столбца не определяет тип хранимого значения в этом поле записи, то есть в любой столбец можно занести любое значение;
e) много встроенных функций (которые можно использовать в SQL): www.sqlite.org/lang_corefunc.html;
Не понял — что там с типом? Зачем нужен тип столбца тогда вообще?
Тип столбца определяет как сравнивать значения (нужно же их привести к единому типу при сравнении, скажем, внутри индекса).
Но не обязывает заносить значения именно такого типа в столбец. Нечто вроде weak typing.
Допустим, мы объявили столбец как «A INTEGER».
SQlite позволяет занести в этот столбец значения любого типа (999, «abc», «123», 678.525).
Если вставляемое значение — не целое, то SQlite пытается привести его к целому.
Т.е. строка «123» превратится в целое 123, а остальные значения запишутся «как есть».
Так можно вообще не задавать тип столбца?
Очень часто так и делается: CREATE TABLE foo (a,b,c,d).
А как с архитектурой? Сервера-то нету?
Сервера нету, само приложение является сервером. Доступ к БД происходит через «подключения» к БД (нечто вроде хэндла файла ОС), которые мы открываем через вызов соот-й функции DLL. При открытии указывается имя файла БД. Если такого нету — он автоматически создается.
Допустимо открывать множество подключений к одной и тоже БД (через имя файла) в одном или разных приложениях.
Система использует механизмы блокировки доступа к файлу на уровне ОС, чтобы это все работало
(эти механизмы обычно плохо работают на сетевых дисках, так что не рекомендуется использовать SQlite с файлом на сети).
Изначально SQlite работал по принципу «многие читают — один пишет».
То есть только одно соединение пишет в БД в данный момент времени. Если другие соединения попробуют тоже записать, то словят ошибку SQLITE_BUSY.
Можно, однако, ввести таймаут операций. Тогда подключение, столкнувшись с занятостью БД, будет ждать N секунду прежде, чем отвалиться с ошибкой SQLITE_BUSY.
И как быть?
Либо одно подключение и все запросы через него, либо исходить из возможного таймаута и предусмотреть повтор выполнения SQL.
Есть и еще одна возможность: не так давно появился новый вид лога SQlite: Write Ahead Log, WAL.
Если включить для БД именно этот режим лога, то несколько подключений смогут одновременно модифицировать БД.
Но в этом режиме БД уже занимает несколько файлов.
Ну понятно теперь почему SQLite — ужасна, ведь у нее нет ГЛОБАЛЬНОГО КЭША?
Действительно, все современные RDBMS немыслимы без глобального разделяемого кэша, который может хранить всякие ништяки вроде скомпилированных параметризованных запросов. Этим занят сервер, которого тут нет. Однако, в рамках одного приложения SQlite может разделять кэш между несколькими подключениями (читать тут: www.sqlite.org/sharedcache.html) и немного сэкономить память.
А почему все жалуются, что SQLite — тормозит?
Две причины. Первая — настройки по умолчанию. Они работают на надежность, а не на производительность.
Вторая — непонимание механизма фиксации транзакций. По умолчанию после любой команды SQlite будет фиксировать транзакцию (то есть ожидать пока БД окажется в целостном состоянии для отключения питания). В зависимости от режима паранойи SQLite потратит на это от 50 до 300 мс (ожидая окончания записи данных на диск).
Что делать-то? Мне нужно вставить 100 тыс записей и быстро!
Удалить индексы, включить режим синхронизации OFF (или NORMAL), вставлять порциями по N тысяч (N — подобрать, для начала взять 5000). Перед вставкой порции сделать BEGIN TRANSACTION, после — COMMIT.
А вот я нашел ошибку! Как рапортовать?
Дело в том, что популярность SQLite страшна — она везде. Это не шутка.
И разработчики столкнулись с валом сообщений об ошибках, которые либо были вызваны непониманием, либо являлись скрытым feature request. Они, фактически, закрыли прямой прием репортов с ошибками.
Так что следует подписаться на список рассылки и описать там проблему и надеятся на лучшее.
Лично у меня возникла ситуация, которую я трактовал как дефект SQLIte. Я описал это в рассылке. В следующей версии поведение SQLite было исправлено.
Удобная утилита, чтобы поиграться с SQLite.
Файл формата SQLITE открывается специальными программами. Чтобы открыть данный формат, скачайте одну из предложенных программ.
Чем открыть файл в формате SQLITE
Расширение SQLITE (полн. SQLite Database File) представляет собой базу данных, являющуюся результатом генерации SQLite. SQLite – самостоятельная, интегрированная система управления базами данных (СУБД), функционирование которой обеспечивается в автономном режиме.
По своей сути, SQLITE формат – это структурированный набор данных в виде электронных таблиц с определенными записями, полями и типами данных. Доступ, контроль и управление СУБД реализованы посредством встроенных команд SQL, доступных в любой системе, поддерживающей SQLite.
Библиотека SQLite находится в свободном доступе и может быть адаптирована под многообразные программные приложения и языки программирования.
SQLITE формат распознают большинство автоматизированных комплексов Autodesk, а также геопространственный софт.
Программы для открытия SQLITE файлов
SQLITE расширение не прихотливо к платформе конкретной операционной системы и одинаково успешно может функционировать на базе ОС Windows, Mac и Linux.
Чтобы открыть SQLITE файл в ОС Windows принято использовать:
На базе ОС Mac SQLITE будет доступен с применением все тех же программных плагинов SQLite, Sqliteman и SQLite Database Browser.
Для того, чтобы воспроизвести расширение в ОС Linux необходимо использовать MapGuide Open Source, SQLite и Sqliteman.
В случае если при воспроизведении формата возникает ошибка: либо поврежден или заражен исходный файл, либо осуществляется открытие SQLITE файла с применением некорректной программной утилиты.
Конвертация SQLITE в другие форматы
Уникальная структура и область применения SQLITE для каждого конкретного случая не предоставляют возможностей для конвертации данного формата в другие расширения. Попытки конвертации расширения в другой формат могут не только не дать никаких практических результатов, но и повредить исходный файл. В этой связи трансляция данного формата не практикуется.
Почему именно SQLITE и в чем его достоинства?
Приходится констатировать, что SQLITE расширение не является столь популярным и востребованным форматом среди обычных пользователей. Однако без его наличия трудно представить корректную организацию систем управления базами данных (СУБД) на базе SQLite, а также хранение записей в виде электронных таблиц.
База данных, создающаяся с помощью SQLite — автономной встроенной системы управления базами данных (DBMS). Хранит данные в таблицах, каждая из которых может содержать различные поля и типы данных. Доступ к ней можно получить с помощью команд SQL при помощи любой системы, поддерживающей SQLite.
Библиотека SQLite доступна в бесплатном формате и поддерживается различными программами и языками программирования. Файлы SQLITE распознаются инфраструктурой Autodesk и геопространственными продуктами.
Чем открыть файл в формате SQLITE (SQLite Database File)
Freevi
Бесплатная программа SQLiteStudio для редактирования SQLite баз данных

Чтоб открыть базу данных жмем в основном меню «Базы данных»-> «Добавить базу данных», после чего выскакивает окошко, в котором выбираем файл с интересующей нас базой данной, при необходимости делаем небольшие настройки (какой именно версии база данных и запоминать ли её), и жмем «ОК». С настройками можете особо не заворачиваться и все оставить по умолчанию, в 99% случаев все прекрасно работает.
После подключения базы данных она добавляется в левую табличку, по щелчку на которой раскрывается список таблиц, которые там содержаться. В правой части можно увидеть структуру таблице на одноименной вкладке и данные, которые там храниться, для чего нужно щелкнуть по вкладке «Данные».
Об остальных возможностях SQLiteStudio нет смысла рассказывать, большинству простых пользователей они не понадобиться, а все остальные сами понимают, зачем лезут редактировать базы данных и как это нужно делать. Только хочу дать одну рекомендацию, делайте резервную копию базы данных, перед тем как начнете лезть в неё, а тем более редактировать.
На удивление здесь много настроек, однако, они все в основном связны с внешним видом программы (цвета, шрифты, что показывать и что прятать) и быстрыми клавишами.
Программа на 5+ справляется со своими задачами позволяя получить доступ к данным хранящимся в базах данных формата SQLite, редактировать данные и таблицы. Самое главное все работает довольно стабильно, быстро и не стопориться на некоторых файлах по непонятным причинам, как приложения других разработчиков.
Программа прекрасно работает на 32-х и 64-х битных операционных системах. Интерфейс переведен приблизительно на десять языков, в том числе и русский.
Официальный сайт SQLiteStudio http://sqlitestudio.pl/
Страница для бесплатного скачивания SQLiteStudio http://sqlitestudio.pl/?act=download
Последняя версия на момент написания SQLiteStudio 2.1.5
Размер программы: исполняемый файл 5,28Мб
Совместимость: Windows Vista, Windows 7, 8 и Windows XP
Менеджер SQLite баз данных, который позволяет просматривать и редактировать SQLite 3, SQLite 2 и SQLCipher базы данных.
Менеджер SQLite баз данных, который решает проблему, чем открыть db файл, и при этом позиционируется как редактор SQLite для SQLite 3, SQLite 2 и SQLCipher базы данных. Переведен на русский язык.
Особенности SQLite Editor
SQLiteStudio не нужно устанавливать, можно скачать портативную версию и начать редактировать SQLite базы данных без усилий.
На панели слева отображаются все доступные базы данных вместе с их данными. Иерархическое древовидное представление позволяет выбрать любую таблицу, триггер, процедуру или оператор и просмотреть данные в главном окне.
Через меню Базы данных можно открыть файл *.db, *.sdb, *.sqlite или *.db2 и подключиться к нему с помощью контекстного меню. Кроме того, можно импортировать схему из других баз данных или из файлов различных форматов, таких как CSV и dBase. После этого можно просматривать все существующие данные и манипулировать ими как угодно.
Используя Редактор запросов SQL, расположенный в меню Инструменты, можно вручную создать сценарий SQL и выполнить его.
История SQLiteStudio
Проект стартовал в начале 2007 года. Разработчик искал какой-нибудь SQLite-менеджер, которым легко пользоваться. Просто нужно было быстро создать таблицу и поместить в нее данные. Так как найти ничего не удалось, именно так появилась SQLiteStudio.
В то время разработчик был очень увлечен Tcl, поэтому это был предпочтительный язык программирования.
SQLiteStudio версии 1.0.0 имела очень простой графический интерфейс с сеткой для ввода данных.
Версия 1.1.0 (Рождество 2008 г.) представила поддержку SQLite 2, Tcl / Tk 8.5 (со сглаживанием, которого не было в версии 1.0.0), а также много других функций. Это был большой шаг вперед.
Версия 2.0.0 (ноябрь 2010 г.) внедрила более умное завершение синтаксиса, подсветку синтаксических ошибок, красивый принтер для SQL-кода (форматировщик), поддержку перетаскивания и многое другое. Это была первая версия, в которой использовался настоящий парсер кода. Кроме того, он был первым, работающим на Mac OS X.
Выпущено 28 исправлений! Проект настолько вырос, что поддерживать его стало проблемой. Исходный код также был не самым красивым (в плане поддержки).
SQLiteStudio версии 2.1.0 (декабрь 2012 года, канун Нового года) не добавляла «огромных» возможностей, но расширила множество второстепенных функций, которые уже были в 2.0.0. Многое изменилось в исходном коде, чтобы его было легче поддерживать.
Было принято решение перейти на C++ и библиотеку Qt.
После выпуска 2.1.2 началась работа над версией 3.0.0 на C ++ и Qt. Это был март 2013 года.
SQLiteStudio 3.0.0В версии приобрела большую скорость и ощущение легкости. Кроме того, она был намного лучше спроектирована, поэтому было легче поддерживать и расширять. Порт на MacOS X стал намного стабильнее и стал выглядеть нативно.


