从这里运行这个简单示例时遇到问题:
我创建了数据库
[prompt]$ sqlite3 /tmp/bedrock.db
sqlite> .help
sqlite> CREATE TABLE employee (Name varchar(20),Dept varchar(20),jobTitle varchar(20));
sqlite> .schema employee
CREATE TABLE employee (Name varchar(20),Dept varchar(20),jobTitle varchar(20));
sqlite> INSERT INTO employee VALUES ('Fred Flinstone','Quarry Worker','Rock Digger');
sqlite> INSERT INTO employee VALUES ('Wilma Flinstone','Finance','Analyst');
sqlite> INSERT into employee values ('Barney Rubble','Sales','Neighbor');
sqlite> INSERT INTO employee VALUES ('Betty Rubble','IT','Neighbor');
sqlite> .tables
employee
sqlite> SELECT Name FROM employee WHERE dept='Sales';
Barney Rubble
sqlite> SELECT * FROM employee;
Fred Flinstone|Quarry Worker|Rock Digger
Wilma Flinstone|Finance|Analyst
Barney Rubble|Sales|Neighbor
Betty Rubble|IT|Neighbor
sqlite> DELETE FROM employee WHERE dept='Sales';
sqlite> .output /tmp/bedrock.sql
sqlite> .dump
sqlite> .exit
一切似乎都很好,我退出了程序,但是在我再次进入sqlite3程序后,当我尝试.databases
命令(但它出现在退出之前)时数据库不在那里,我不知道我知道如何再次修改它。
更新:
我设法在官方文档网站上找到了this page,它完美地完成了对我来说很好。但是在退出sqlite3应用程序后,我仍然在修改数据库和更新内容时感到困扰。 有什么方法可以与我选择的数据库进行交互吗?在创建数据库后添加/删除表?
答案 0 :(得分:1)
您可以随时修改数据库(包含数据和表结构)。即使在添加了数据之后。即使你离开了sqlite3程序。
在上面的示例中,有两个文件。一个是/tmp/bedrock.db
。那是数据库。使用/tmp
作为数据库并不是一个好主意,因为/tmp
中的文件已被删除。无论如何,您可以使用sqlite3 /tmp/bedrock.db
重新连接到该数据库。
请注意,在使用sqlite3命令时,必须包含数据库。如果你在没有数据库的情况下启动sqlite3,那么.databases
命令wil 不就会显示数据库。
另一个文件是/tmp/bedrock.sql
。那只是你用来创建数据库的sql。通常没用,通常你不创建它。它在该示例中创建的原因是因为该示例是从旧版本的sqlite更新的。但这不是你需要担心的事情。如果我是你,我会完全忘记这个文件。
如果尚未删除(因为它在/tmp
中),那么您现在可以使用sqlite3 /tmp/bedrock.db
连接到您的数据库并继续修改它。