Часть 12.7: Логические выражения при выборке данных: AND, OR и SELECT в SQLite
Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем изучать базы данных и наше знакомство с библиотекой SQLite3. Мы…
Здравствуйте, уважаемые посетители сайта ZametkiNaPolyah.ru. Продолжаем изучать базы данных и наше знакомство с библиотекой SQLite3. В данной публикации мы поговорим про расширения файлов баз данных SQLite3 и посмотрим, как создать базу данных в SQLite3.
Давайте теперь поговорим про то, как работает библиотека SQLite3. Хочется сразу отметить то, что базы данных в SQLite3 представляют собой обычные файлы, хранящиеся на вашем компьютере. Я уже упоминал, что база данных SQLite3 создается в той папке, из которой мы запустили шелл.
Содержание статьи:
Давайте разберемся с тем, какое расширение файлов баз данных у SQLite3. Заодно и научимся создавать базы данных SQLite3. Выполним небольшую работу по шагам:
Шаг первый: запускаем шелл sqlite3 в папке c:\SQLite\Example DB\Lesson 2\ (у вас это может быть любая другая папка).
Шаг второй: я утверждал, что SQLite3 создает файл с базой данных в той папке, откуда мы запускаем консоль. Проверив папку Lesson 2, мы увидим, что в ней ничего нет. Выходит, что база данных SQLite3 не созадлась.
Шаг третий: возможно, если мы создадим таблицу и наполним ее данными, то появится и база данных? Давайте это проверим.
[php]
— Запрос на создание таблицы с именем books
CREATE TABLE books (
id_books INTEGER PRIMARY KEY AUTOINCREMENT,
auth_name TEXT NOT NULL,
title TEXT NOT NULL,
count_page INTEGER NOT NULL,
price REAL NOT NULL
);
— Запрос на добавление данных в таблицу
INSERT INTO books (auth_name, title, count_page, price)
VALUES ('М.А. Булгаков', 'Собачье сердце', 120, 100.10);
INSERT INTO books (auth_name, title, count_page, price)
VALUES ('М.А. Булгаков', 'Мастер и Маргарита', 423, 310.10);
INSERT INTO books (auth_name, title, count_page, price)
VALUES ('Л.Н. Толстой', 'Война и мир', 820, 1320.60);
INSERT INTO books (auth_name, title, count_page, price)
VALUES ('М.А. Шолохов', 'Тихий дон', 1121, 675);
[/php]
Выше написаны пять запросов: один запрос на создание таблицы в текущей базе данных SQLite3 и четыре запроса на добавление данных в только что созданную таблицу. Вы можете скопировать листинг целиком в свой шелл и выполнить его. Не пугайтесь, если на данный момент что-то непонятно, в данный момент мы разбираемся с особенностями SQLite3.
Шаг четвертый: убеждаемся, что таблица создана. Для этого у SQLite3 есть команда .tables, которая показывает все таблицы в базе данных.
Шаг пятый: убеждаемся, что таблица наполнена при помощи оператора SELECT.
[php]
— Выбрать все значения из всех столбцов таблицы books
SELECT * FROM books;
[/php]
Оператор SELECT позволяет выбрать данные. В данном случае все данные из таблицы books.
Шаг шестой: проверяем папку Lesson 2 и видим, что она пуста, база данных SQLIte3 опять не создалась.
Шаг седьмой: проверим какие базы данных доступны нам для управления. Для этого есть команда .databases.
Мы видим, что есть только база данных main, которой нет на вашем жестком диске/SSD. Вся суть в том, что пока мы явно не выберем файл базы данных или не создадим его при запуске SQLite3, мы будем работать с виртуальной базой данных, находящейся в оперативной памяти. Когда мы закроем консоль всё, что мы создали удалится.
Шаг восьмой: давайте создадим базу данных SQLite3. Для этого в командной строке набираем: sqlite3 database_name.ext. Таким образом мы создали базу данных в SQLite3. Проверим при помощи команды .databases.
Дам некоторые пояснение и рекомендации. Имя файла базы данных SQLite3 может быть любым, как и его расширение. Ограничения накладываются только файловой системой и ОС. Но, чтобы избежать мелких неприятностей и недопонимания, я рекомендую использовать для названия файла буквы латинского алфавита, цифры, тире и символ подчеркивания. А расширению давать понятные и прозрачные имена, например: db3, sqlite, sqlite3, sql3.
Шаг девятый: проверяем нашу рабочую папку и видим, что в ней появился файл с базой данных SQLite3, который мы создали при запуске шелла через командную строку.
Нет,не получается создать БД. Делаю пошагово как у Вас и после .databases -нет ничего (((
И капча код безопасности) — постоянно все ошибку выводит.
Откройте командную строку. Перейдите в ту папку, где у вас установлена SQLite3, в моем случае это cd c:\sqlite.
Далее напишите sqlite3.exe new_database.db3. Таким образом вы запустите SQLite3 и сразу же создадите файл базы данных с именем new_database.db3. Вот только что сам это сделал:
sqlite> .databases
main: c:\sqlite\new_database.db3
Про капчу ничего не понял 🙂
Приходится сидеть на этом сайте, т.к. черпаешь совсего инета. БД не получаетсясоздать, хотя делаю пошагово как у Вас.
Комменты отправляются постоянно с глюками:1) постоянно неправильный код капчи ( хотя вижу хорошо)
Для этого в командной строке набираем: sqlite3 database_name.ext.А насамом деле, надо еще и путь набрать или откуда путь взялся? и все равно НЕ ПОЛУЧАЕТСЯ. В отчаянии. Надругих сайтах написано, что надо драйвер sqliteodbc и туда путь прописывать. Зло берет. не получается ни черта.
Ок, сделайте как на других сайтах, я не против.
не получается в шелл создать БД. Делаю пошагово за сайтом. На другом сайте пишут, что надо SQLite OCDB лрайвер установить и туда прописывать путь БД. Можете это прокомментировать?
Так вы может сперва определитесь, что вы хотите сделать? Через командую строку запустить SQLite и создать БД или вы хотите через графический менеджер запускаться? Эта публикация описывает, как создать БД SQLite3 из командой строки, до этого вы писали комментарий в публикации про DBeaver.
В самой статье есть скрины, которые показывают, что все работает, я повторил сейчас те же самые команды, у меня всё работает. Что там на других сайтах я не знаю 🙂
пропадают комментарии
На модерацию они уходят.
Здравствуйте.Не получается в ком.строке. У меня установлена и sqlite3.exeи разные менеджеры.
1. Я пробую просто с шелл, но у меня вот так почему-то установлен C:\SQLite3\sqlite-tools-win32-x86-3340000\sqlite3.exe --так я качала по Вашим урокам влияет ли это на то, что не создается БД и после Ваших ответов ( за ответы ПАСИБИЩЕ).
2. Вот что еще прописано в окне шелла Сonneced to transient in memory database/ Наверное, здесь загвоздка ?
P.S. Про капчу -это у Вас насайте, чтоб отправить коммент, то правильно вводишь символы, а она не принимает.И так мучаешься несколько минут...
Сделайте скрин папки, в которую sqlite установлен и скрин командной строки, пришлите мне на почту, почта в разделе «От автора» есть, сслыка в шапке сайте.
установите SQLite Expert Professional