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
目录
相关文章
|
19天前
|
存储 SQL 数据库
数据库知识:了解SQLite或其他移动端数据库的使用
【10月更文挑战第22天】本文介绍了SQLite在移动应用开发中的应用,包括其优势、如何在Android中集成SQLite、基本的数据库操作(增删改查)、并发访问和事务处理等。通过示例代码,帮助开发者更好地理解和使用SQLite。此外,还提到了其他移动端数据库的选择。
21 8
|
30天前
|
Web App开发 SQL 数据库
使用 Python 解析火狐浏览器的 SQLite3 数据库
本文介绍如何使用 Python 解析火狐浏览器的 SQLite3 数据库,包括书签、历史记录和下载记录等。通过安装 Python 和 SQLite3,定位火狐数据库文件路径,编写 Python 脚本连接数据库并执行 SQL 查询,最终输出最近访问的网站历史记录。
|
1月前
|
存储 关系型数据库 数据库
轻量级数据库的利器:Python 及其内置 SQLite 简介
轻量级数据库的利器:Python 及其内置 SQLite 简介
|
1月前
|
应用服务中间件 PHP Apache
PbootCMS提示错误信息“未检测到您服务器环境的sqlite3数据库扩展...”
PbootCMS提示错误信息“未检测到您服务器环境的sqlite3数据库扩展...”
|
2月前
|
存储 API 数据库
QML使用Sqlite数据库存储ListModel数据
本文介绍了在QML中使用Sqlite数据库存储ListModel数据的方法,包括如何创建数据库、读取数据、动态添加和删除数据,以及如何在程序启动和退出时与数据库同步数据。
|
2月前
|
数据库 数据库管理
qt对sqlite数据库多线程的操作
本文总结了在Qt中进行SQLite数据库多线程操作时应注意的四个关键问题,包括数据库驱动加载、加锁、数据库的打开与关闭,以及QsqlQuery变量的使用。
135 1
|
29天前
|
存储 缓存 关系型数据库
sqlite 数据库 介绍
sqlite 数据库 介绍
35 0
|
3月前
|
人工智能 小程序 Java
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
本文介绍了一款名为PyWxDump的开源工具,它可以获取微信账户信息、解密SQLite数据库以查看和备份聊天记录。此工具适用于已登录电脑版微信的用户,通过GitHub下载后简单几步即可操作。适合对数据恢复感兴趣的开发者,但请注意合法合规使用并尊重隐私。
478 2
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
|
2月前
|
JSON NoSQL 数据库
和SQLite数据库对应的NoSQL数据库:TinyDB的详细使用(python3经典编程案例)
该文章详细介绍了TinyDB这一轻量级NoSQL数据库的使用方法,包括如何在Python3环境中安装、创建数据库、插入数据、查询、更新以及删除记录等操作,并提供了多个编程案例。
107 0
|
3月前
|
关系型数据库 Java MySQL
C#winform中使用SQLite数据库
C#winform中使用SQLite数据库
185 3
C#winform中使用SQLite数据库