SQLite关于数据库和表的操作

1.创建数据库

我们可以使用 .open 来建立新的数据库文件:(会新建到CMD当前运行的路径下)

sqlite>.open test.db

打开已存在数据库也是用 .open 命令,以上命令如果 test.db 存在则直接会打开,不存在就创建它。

另外,主要的方法:

sqlite3 DatabaseName.db

一旦数据库被创建,您就可以使用 SQLite 的 .databases 命令来检查它是否在数据库列表中

 .databases
main: D:\CStools\SQLite\test.db r/w

您可以使用 SQLite .quit 命令退出 sqlite 提示符,如下所示:

sqlite>.quit
$

2.附加数据库

假设这样一种情况,当在同一时间有多个数据库可用,您想使用其中的任何一个。SQLite 的 ATTACH DATABASE 语句是用来选择一个特定的数据库,使用该命令后,所有的 SQLite 语句将在附加的数据库下执行。

SQLite 的 ATTACH DATABASE 语句的基本语法如下:

ATTACH DATABASE file_name AS database_name;

例如:

attach database 'test.db' as 'test'

此时再次执行.database

.database
main: D:\CStools\SQLite\test.db r/w
test: D:\CStools\SQLite\test.db r/w

注意:数据库名称 main 和 temp被保留用于主数据库和存储临时表及其他临时数据对象的数据库。这两个数据库名称可用于每个数据库连接,且不应该被用于附加,否则将得到一个警告消息❌

sqlite>  ATTACH DATABASE 'testDB.db' as 'TEMP';
Error: database TEMP is already in use
sqlite>  ATTACH DATABASE 'testDB.db' as 'main';
Error: database main is already in use

3.分离数据库

SQLite 的 DETACH DATABASE 语句是用来把命名数据库从一个数据库连接分离和游离出来,连接是之前使用 ATTACH 语句附加的。如果同一个数据库文件已经被附加上多个别名,DETACH 命令将只断开给定名称的连接,而其余的仍然有效。您无法分离 main 或 temp 数据库。

SQLite 的 DETACH DATABASE ‘Alias-Name’ 语句的基本语法如下:

DETACH DATABASE 'Alias-Name';

例如:

detach database 'test';

此时再次执行.database命令:可以看到方才附加的test数据库已经消失了

 .database
main: D:\CStools\SQLite\test.db r/w

4.创建表

SQLite 的 CREATE TABLE 语句用于在任何给定的数据库创建一个新表。创建基本表,涉及到命名表、定义列及每一列的数据类型。

CREATE TABLE 语句的基本语法如下:

CREATE TABLE database_name.table_name(
   column1 datatype  PRIMARY KEY(one or more columns),
   column2 datatype,
   column3 datatype,
   .....
   columnN datatype,
);

实例:创建两个表

表company:

sqlite> create table company(
   ...> ID INT PRIMARY KEY NOT NULL,
   ...> NAME TEXT NOT NULL,
   ...> ADDRESS CHAR(50),
   ...> SALARY REAL
   ...> );

表DEPARTMENT:

sqlite> CREATE TABLE DEPARTMENT(
   ...> ID INT PRIMARY KEY NOT NULL,
   ...> DEPT CHAR(50) NOT NULL,
   ...> EMP_ID INT NOT NULL
   ...> );

您可以使用 SQLIte 命令中的 .tables 命令来验证表是否已成功创建,该命令用于列出附加数据库中的所有表

sqlite> .table
COMPANY     DEPARTMENT

您可以使用 .schema 命令得到表的完整信息,如下所示:

sqlite> .schema company
CREATE TABLE company(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);

5.删除表

SQLite 的 DROP TABLE 语句用来删除表定义及其所有相关数据、索引、触发器、约束和该表的权限规范。

DROP TABLE 语句的基本语法如下。您可以选择指定带有表名的数据库名称,如下所示:

DROP TABLE database_name.table_name;

例如:我们删除刚才创建的company表

sqlite> drop table company;
sqlite> .tables
DEPARTMENT

版权声明:本文为Gherbirthday0916原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。