SQLite关于数据库和表的操作

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



1.创建数据库


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


sqlite>.open test.db


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


sqlite3 DatabaseName.db


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


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


sqlite>.quit
$


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


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';


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


.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
目录
相关文章
|
1月前
|
API 数据库 C语言
【C/C++ 数据库 sqlite3】SQLite C语言API返回值深入解析
【C/C++ 数据库 sqlite3】SQLite C语言API返回值深入解析
170 0
|
3月前
|
开发框架 前端开发 .NET
七天.NET 8操作SQLite入门到实战 - (1)第七天BootstrapBlazor UI组件库引入
七天.NET 8操作SQLite入门到实战 - (1)第七天BootstrapBlazor UI组件库引入
|
3月前
|
存储 数据库连接 数据库
Android数据存储:解释SQLite数据库在Android中的使用。
Android数据存储:解释SQLite数据库在Android中的使用。
42 0
|
2月前
|
存储 监控 安全
内网屏幕监控软件的数据存储与管理:使用SQLite数据库保存监控记录和配置信息
在当今数字化时代,安全和监控在企业和组织中变得至关重要。内网屏幕监控软件作为一种关键工具,帮助组织监视员工的活动并确保信息安全。这种软件不仅需要高效地记录和管理监控数据,还需要能够方便地进行配置和调整。本文将讨论如何使用SQLite数据库来保存监控记录和配置信息,并介绍如何通过自动化机制将监控到的数据提交到指定网站。
167 2
|
14天前
|
SQL 关系型数据库 数据库
Python中SQLite数据库操作详解:利用sqlite3模块
【4月更文挑战第13天】在Python编程中,SQLite数据库是一个轻量级的关系型数据库管理系统,它包含在一个单一的文件内,不需要一个单独的服务器进程或操作系统级别的配置。由于其简单易用和高效性,SQLite经常作为应用程序的本地数据库解决方案。Python的内置sqlite3模块提供了与SQLite数据库交互的接口,使得在Python中操作SQLite数据库变得非常容易。
|
19天前
|
关系型数据库 MySQL 数据库连接
Python+SQLite数据库实现服务端高并发写入
Python中使用SQLite内存模式实现高并发写入:创建内存数据库连接,建立表格,通过多线程并发写入数据。虽然能避免数据竞争,但由于SQLite内存模式采用锁机制,可能在高并发时引发性能瓶颈。若需更高性能,可选择MySQL或PostgreSQL。
23 0
|
1月前
|
关系型数据库 数据库 C++
嵌入式数据库sqlite3【基础篇】基本命令操作,小白一看就懂(C/C++)
嵌入式数据库sqlite3【基础篇】基本命令操作,小白一看就懂(C/C++)
|
1月前
|
存储 SQL 数据库
django如何连接sqlite数据库?
django如何连接sqlite数据库?
51 0
|
2月前
|
SQL 数据库管理
sqlite语句order by两个字段同时排序处理
sqlite语句order by两个字段同时排序处理
21 0
|
2月前
|
SQL 关系型数据库 MySQL
Python中的数据库操作:SQLite与MySQL的连接
Python中的数据库操作:SQLite与MySQL的连接
124 0