所以我使用此命令制作了一个表
.open C:/Users/Fries/Desktop/Test.db
我关闭了SQL lite,并使用记事本在数据库中填充了以下数据
CREATE TABLE Persons (
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
当我打开数据库并键入.tables时,由于某种原因出现错误
答案 0 :(得分:0)
正确使用命令即可正常工作。
简而言之,您所做的就是
即您打开的文件是实际的数据库,而不是您在记事本中键入的文件。
数据,将在一个或多个表的列中。必须通过SQLITE3命令(包括SQL)输入。 CREATE TABLE ...是一种这样的SQL命令(您有效且已在下面使用)。
您应该做的是启动SQLIT3(如果将sqlite3的路径已添加到PATH环境变量中,则键入sqlite3),然后输入诸如CREATE TABLE ...... >
E.G。
首次从命令提示符启动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
也许您可以做到 :-
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
在记事本中打开文件 Test.db :-
SQLite format 3 @ .°
e e ‚tablePersonsPersonsCREATE TABLE Persons ( PersonID int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255) )
即在记事本中输入正确的数据以创建有效的SQLite3数据库文件会很困难,甚至不可能。