Команды работают при правильном использовании.
Короче говоря, то, что вы сделали, это
- Создание и сохранение базы данных, в которой нет таблиц.
- Открыть этот файл с помощью Блокнота (несмотря на предупреждения, которые вы, возможно, получили)
- Введены некоторые данные и сохранен файл.
- Таким образом, удаляя все в файле, о котором SQLite знает, поэтому, когда вы открываете его, SQLite сообщает вам, что это не база данных, например. первые 16 байтов должны быть формат SQLite 3 \ 000 (см. ниже, когда файл базы данных открывается в блокноте).
- Откройте файл из программы SQLITE3, которая затем сообщит вам, что это не база данных.
т.е. Файл, который вы открываете, является реальной базой данных, а не тем, что вы ввели в блокнот.
Данные, которые будут находиться в столбцах таблицы или таблиц. Должен быть введен с помощью команд SQLITE3 (включая SQL). CREATE TABLE ... является одной из таких команд SQL (ваша команда действительна и использовалась ниже как есть).
Что вам нужно сделать, это запустить SQLIT3 (набрать sqlite3, если его путь был добавлен в переменную среды PATH), а затем ввести команды, такие как CREATE TABLE ......
например.
При первом запуске sqlite3 из командной строки вы получите: -
C:\Users\Mike>sqlite3
SQLite version 3.22.0 2018-01-22 18:45:57
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
База данных открыта как таковая, но это база данных в памяти и будет потеряна, если вы выйдете.
Вы можете создать базу данных на диске, открыв ее (даже если она не существует), используя .open , а затем введя команды. Вы также можете ввести команды, а затем использовать команду .save для сохранения базы данных в памяти на диск.
Итак, после всего вышесказанного вы можете сделать: -
sqlite> .open Test.db
sqlite> CREATE TABLE Persons ( PersonID int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255) );
sqlite> SELECT * FROM Sqlite_master;
table|Persons|Persons|3|CREATE TABLE Persons ( PersonID int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255) )
sqlite> .quit
- Это создает файл Test.db (который не существует, в противном случае он откроет его)
- Затем создает таблицу Persons .
- А затем извлекает строки в системной таблице с именем sqlite_master (перечисляет элементы, включая таблицы).
- Наконец он выходит из SQLITE3.
Возможно, вы могли бы тогда сделать
: -
C:\Users\Mike>sqlite3 SQLite version 3.22.0 2018-01-22 18:45:57 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database.
sqlite> .open Test.db
sqlite> .tables Persons
sqlite> INSERT INTO Persons VALUES (1,'Smith','Fred','Somewhere','London');
sqlite> select * FROM persons; 1|Smith|Fred|Somewhere|London sqlite> .quit
- Запускает SQLITE3
- Открывает уже существующий Test.db файл.
- Перечисляет таблицы.
- вставляет строку
- отображает строки в таблице Persons (т.е. только что добавленная строка)
- Наконец выходит из SQLITE3
Открытие файла Test.db в блокноте: -
SQLite format 3 @ .°
e e ‚tablePersonsPersonsCREATE TABLE Persons ( PersonID int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255) )
- Вы можете увидеть некоторые знакомые данные (например, SQL, использованный для создания таблицы, хранится в таблице sqlite_master в столбце с именем SQL и будет отображаться как есть)
- Другие данные не будут отображаться в используемом / пригодном для использования формате.
т.е. Вам будет сложно ввести правильные данные, чтобы создать правильный файл базы данных SQLite3 в блокноте.