SQLite3的使用

14_SQLite3

SQLite3是一个嵌入式数据库系统,它的数据库就是一个文件。SQLite3不需要一个单独的服务器进程或操作系统,不需要配置,这意味着不需要安装或管理,所有的维护都来自于SQLite3软件本身。

安装步骤

在Linux上安装SQLite3:

  1. sudo apt-get update 更新软件库
  2. sudo apt-get install libsqlite3 安装libsqlite3
  3. sudo apt-get install libsqlite3-dev 安装libsqlite3依赖库
  4. sqlite3 运行

SQLite3的使用

以“.”开头的命令

命令说明
.archive …管理SQL归档文件
.auth ON|OFF显示授权回调函数
.backup ?DB? FILE将数据库DB(默认为“main”)备份到FILE
.bail on|off在错误发生后停止。默认为OFF
.binary on|off打开或关闭二进制输出。默认为OFF
.cd DIRECTORY将工作目录更改为DIRECTORY
.changes on|off显示SQL更改的行数
.check GLOB如果自从.testcase以来的输出不匹配,则失败
.clone NEWDB从现有数据库克隆数据到NEWDB中
.databases列出附加数据库的名称和文件
.dbconfig ?op? ?val?列出或更改sqlite3_db_config()选项
.dbinfo ?DB?显示有关数据库的状态信息
.dump ?TABLE? …将所有数据库内容呈现为SQL
.echo on|off打开或关闭命令回显
.eqp on|off|full|…启用或禁用自动EXPLAIN QUERY PLAN
.excel在电子表格中显示下一个命令的输出
.exit ?CODE?以返回代码CODE退出此程序
.expert实验性功能。为查询建议索引
.explain ?on|off|auto?更改EXPLAIN格式模式。默认值:auto
.filectrl CMD …运行各种sqlite3_file_control()操作
.fullschema ?–indent?显示模式和sqlite_stat表的内容
.headers on|off打开或关闭标题的显示
.help ?-all? ?PATTERN?显示有关PATTERN的帮助文本
.import FILE TABLE将数据从FILE导入TABLE
.imposter INDEX TABLE在索引INDEX上创建仿冒表TABLE
.indexes ?TABLE?显示索引的名称
.limit ?LIMIT? ?VAL?显示或更改SQLITE_LIMIT的值
.lint OPTIONS报告潜在的模式问题。
.load FILE ?ENTRY?加载扩展库
.log FILE|off打开或关闭日志记录。文件可以是stderr/stdout
.mode MODE ?TABLE?设置输出模式
.nullvalue STRING在NULL值的位置使用字符串STRING
.once (-e|-x|FILE)仅将下一个SQL命令的输出发送到FILE
.open ?OPTIONS? ?FILE?关闭现有数据库并重新打开FILE
.output ?FILE?将输出发送到FILE,如果省略FILE,则发送到stdout
.parameter CMD …管理SQL参数绑定
.print STRING…打印文本字符串STRING
.progress N在每个N操作码后调用进度处理程序
.prompt MAIN CONTINUE替换标准提示符
.quit退出此程序
.read FILE从FILE读取输入
.recover尝试从损坏的数据库中恢复尽可能多的数据。
.restore ?DB? FILE从FILE还原数据库DB(默认为“main”)的内容
.save FILE将内存中的数据库写入FILE
.scanstats on|off打开或关闭sqlite3_stmt_scanstatus()指标
.schema ?PATTERN?显示与PATTERN匹配的CREATE语句
.selftest ?OPTIONS?运行在SELFTEST表中定义的测试
.separator COL ?ROW?更改列和行分隔符
.session ?NAME? CMD …创建或控制会话
.sha3sum …计算数据库内容的SHA3哈希值
.shell CMD ARGS…在系统Shell中运行CMD ARGS…
.show显示各种设置的当前值
.stats ?on|off?显示统计信息或打开/关闭统计信息
.system CMD ARGS…在系统Shell中运行CMD ARGS…
.tables ?TABLE?列出LIKE模式为TABLE的表名
.testcase NAME开始将输出重定向到“testcase-out.txt”
.testctrl CMD …运行各种sqlite3_test_control()操作
.timeout MS尝试以MS毫秒为间隔打开已锁定表
.timer on|off打开或关闭SQL计时器
.trace ?OPTIONS?在每个SQL语句执行时输出
.vfsinfo ?AUX?有关顶级VFS的信息
.vfslist列出所有可用的VFS
.vfsname ?AUX?打印VFS堆栈的名称
.width NUM1 NUM2 …设置“ column”模式的列宽度

SQL语句

以下是SQLite 3中常用的SQL语句:

  1. 创建表格
CREATE TABLE table_name (column_1 data_type constraints,column_2 data_type constraints,...,column_n data_type constraints
);

字段名column_1;数据类型data_type;约束条件constraints

  1. 删除表格
DROP TABLE table_name;
  1. 查询数据
SELECT column_1, column_2, ..., column_n 
FROM table_name;
  1. 插入数据
INSERT INTO table_name (column_1, column_2, ..., column_n)
VALUES (value_1, value_2, ..., value_n);
  1. 更新数据
UPDATE table_name
SET column_1 = value_1, column_2 = value_2, ..., column_n = value_n
WHERE condition;
  1. 删除数据
DELETE FROM table_name WHERE condition;

示例:创建

以下是使用SQLite 3创建一个名为“students”的学生信息表并插入三个学生信息的示例:

  1. 打开shell命令行终端。
  2. 连接到您的SQLite数据库文件。
$ sqlite3 mydatabase.db

备注:$表示在shell命令行的命令行提示符
出现如下界面表示sqlite3打开成功,版本不同显示信息会略有差异

QLite version 3.31.1 2020-01-27 19:55:54
Enter ".help" for usage hints.
sqlite> 
  1. 创建一个名为“students”的学生信息表。该表将包含以下列:ID,姓名,年龄,性别和成绩。
sqlite> CREATE TABLE students ( --创建表students...> ID INTERGER PRIMARY KEY NOT NULL, ...> name TEXT NOT NULL, ...> age INTEGER NOT NULL,...> gender TEXT NOT NULL,...> score REAL NOT NULL);

备注:sqlite> ...>是sqlite3的命令行提示符

作为主键PRIMARY KEY;数据类型为整数INTERGER;不能为空NOT NULL;数据类型为文本TEXT;数据类型为实数REAL

此时,可以输入.table命令检查表student是否创建成功,如下所示:

sqlite> .table
students

如果没有创建成功,或者表被删除,将会什么也不显示,例如此时执行DROP语句,将看不到表了

sqlite> DROP TABLE students; --删除表students
sqlite> .table
sqlite>

重复上面的CREATE TABLE(为了放便大家复制,粘贴后面把sqlite3>, ...>都省略了)

CREATE TABLE students (
ID INTERGER PRIMARY KEY NOT NULL,
name TEXT NOT NULL,
age INTEGER NOT NULL,
gender TEXT NOT NULL,
score REAL NOT NULL);
  1. 插入三个学生信息。例如:
INSERT INTO students (ID, name, age, gender, score)...> values(1,'张三', 18, '男', 90.0);
INSERT INTO students (ID, name, age, gender, score)
values(2,'子涵', 18, '女', 88.5);
INSERT INTO students (ID, name, age, gender, score)
values(3, '张伟', 19, '男', 82.5);

这将向学生信息表中添加三条记录。每条记录都包含姓名、年龄、性别和分数等列的值。由于我们使用了自增长的主键列ID,因此每个记录都将在插入时自动被赋予一个唯一的ID值。

  1. 确认学生信息已成功插入。可以使用SELECT语句来检索学生信息表中的所有行。例如:
select * FROM students;
1|张三|18|男|90.0
2|子涵|18|女|88.5
3|张伟|19|男|82.5

如果嫌弃这种界面,可以执行.headers on和.mode column,再执行SELECT语句,就好看了,如下图:

sqlite> .headers on 
sqlite> .mode column
sqlite> select * FROM students;
ID          name        age         gender      score     
----------  ----------  ----------  ----------  ----------
1           张三          18          男           90.0      
2           子涵          18          女           88.5      
3           张伟          19          男           82.5  

显示表头.headers on ;设置显示方式,每列用空格分开.mode column ;

  1. 退出SQLite shell或关闭终端会话。
sqlite> .exit

在这里插入图片描述

示例:查询

  1. 打开数据库

    sqlite3 mydatabase.db
    
  2. 查询表students中的所有数据

    SELECT * FROM students;
    
  3. 查询年龄为17的学生信息

    SELECT * FROM students WHERE age = 17;
    

    过滤结果集的关键字WHERE;

  4. 如果只想返回一条记录,可以使用 LIMIT 子句限制结果集的大小

    SELECT * FROM students WHERE age = 17 LIMIT 1;
    
  5. 查询年龄大于17,分数大于90的学生信息

    SELECT * FROM students WHERE age > 10 AND score >90;
    

    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/863646.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《概率论与数理统计》期末复习笔记_下

目录 第4章 随机变量的数字特征 4.1 数学期望 4.2 方差 4.3 常见分布的期望与方差 4.4 协方差与相关系教 第5章 大数定律和中心极限定理 5.1 大数定律 5.2 中心极限定理 第6章 样本与抽样分布 6.1 数理统汁的基本概念 6.2 抽样分布 6.2.1 卡方分布 6.2.2 t分布 6.…

Winform使用HttpClient调用WebApi的基本用法

Winform程序调用WebApi的方式有很多,本文学习并记录采用HttpClient调用基于GET、POST请求的WebApi的基本方式。WebApi使用之前编写的检索环境检测数据的接口,如下图所示。 调用基于GET请求的无参数WebApi 创建HttpClient实例后调用GetStringAsync函数获…

技术打包 催化剂浸渍制作方法设备

网盘 https://pan.baidu.com/s/1Bybbyy5qEA2uTUlaELmWwg?pwdepdk 改性加氢处理催化剂载体、催化剂及其制备方法和应用.pdf 水滑石基催化剂在高浓度糖转化到1,2-丙二醇中的应用.pdf 海泡石负载铁锰双金属催化剂及其制备方法和应用.pdf 甘油氢解催化剂及其制备方法和应用.pdf 用…

【原理】机器学习中的最小二乘法公式推导过程

本文来自《老饼讲解-BP神经网络》https://www.bbbdata.com/ 目录 一、什么是最小二乘法1.1. 什么是最小二乘法1.2. 最小二乘法的求解公式 二、最小二乘法求解公式的推导 最小二乘法是基本的线性求解问题之一,本文介绍最小二乘法的原理,和最小二法求解公式…

【Vue】Vue3基础

VUE3基础 1、简介2、创建工程2.1 基于vue-cli创建(脚手架webpack)2.2 基于vite创建(推荐)2.3 目录结构2.4 vscode插件推荐 3、核心语法3.1 选项式(options API)和组合式(composition API&#x…

Arduino - LED 矩阵

Arduino - LED 矩阵 Arduino - LED Matrix LED matrix display, also known as LED display, or dot matrix display, are wide-used. In this tutorial, we are going to learn: LED矩阵显示器,也称为LED显示器,或点阵显示器,应用广泛。在…

scatterlist的相关概念与实例分析

概念 scatterlist scatterlist用来描述一块内存,sg_table一般用于将物理不同大小的物理内存链接起来,一次性送给DMA控制器搬运 struct scatterlist {unsigned long page_link; //指示该内存块所在的页面unsigned int offset; //指示该内存块在页面中的…

纯硬件FOC驱动BLDC

1. 硬件FOC 图 1 为采用 FOC 的方式控制 BLDC 电机的过程,经由 FOC 变换( Clark 与 Park 变换) ,将三相电流转换为空间平 行电流 ID 与空间垂直电流 IQ。经过 FOC 逆变化逆( Clark 变换与逆 Park 变换) ,将两相电流转换为三相电流用于控 制电…

喜茶新品被迫更名,内容营销专家刘鑫炜谈品牌定位敏锐度和适应性

喜茶,作为茶饮界的知名品牌,一直以其独特的创意和优质的产品受到消费者的喜爱。然而,近期喜茶推出的一款新品“小奶栀”却因其名称发音问题引发了不小的争议。 事件回顾 “小奶栀”这款新品在上市之初,以其独特的口感和创新的命名…

气膜结构的年度维护费用解析—轻空间

气膜结构作为一种新型建筑形式,广泛应用于体育场馆、仓储、展览馆等场所。由于其独特的结构特点,气膜建筑的维护工作显得尤为重要。轻空间将详细探讨气膜结构的年度维护费用构成及影响因素,帮助大家全面了解气膜建筑的运营成本。 气膜结构年度…

android studio 添加aar包

按着以前旧的导包方式栽了大跟头,后面在留老板的的博客下找到了解决办法,记录一下。 Andriod Studio 导入aar最新的方式_gradle 8 引入arr-CSDN博客 最新导包方式 1.在新建libs目录,在app/libs目录下导入aar包(其实就是拷贝过去…

揭秘品牌推广的制胜之道:步骤、流程、方法与技巧全攻略!

品牌推广是现代营销战略中的核心环节,对于提升品牌知名度、塑造品牌形象以及扩大市场份额具有举足轻重的作用。 作为一名手工酸奶品牌的创始人,目前全国复制了100多家门店,我来为大家分享品牌推广的制胜之道,包括具体步骤、流程、…

STM32的EXTI简介

一,EXTI(External Interrupt)外部中断事件控制器 什么是EXTI? 1.监测指定的GPIO口的电平信号变化,并检测到指定条件时,向内核的中断控制器NVIC发出中断申请。NVIC在裁决后,如果满足条件&#xf…

pytest-自动执行固件

目前为止,所有固件的使用都是手动指定,或者作为参数,或者使用 usefixtures。 如果我们想让固件自动执行,可以在定义时指定 autouse 参数。 下面是两个自动计时固件,一个用于统计每个函数运行时间(functio…

【自然语言处理】司法阅读理解

司法阅读理解 1 任务目标 1.1 任务说明 裁判文书中包含了丰富的案件信息,比如时间、地点、人物关系等等,通过机器智能化地阅读理解裁判文书,可以更快速、便捷地辅助法官、律师以及普通大众获取所需信息。 本次任务覆盖多种法律文书类型&am…

半个月从几十升粉到500(发红包喽)

目录 1. 背景2. 涨粉秘籍2.1 持续创作高质量内容2.1.1 保持频率2.1.2 技术文章为主2.1.3 图文并茂 2.2 积极参与社区活动2.2.1 社区分享2.2.2 发文活动 2.3 互动与建立信任2.3.1 与读者互动2.3.2 红包互动2.3.3 动态分享 2.4 标题与内容的优化2.4.1 标题吸引2.4.2 内容实用 2.5…

Anaconda 和 Python 的区别及其重要性

引言 Python 是一种广泛使用的编程语言,特别是在数据科学、机器学习和科学计算领域。随着 Python 的普及,许多开发工具和环境也应运而生,其中 Anaconda 是一个非常流行的 Python 发行版。本文将探讨 Anaconda 和 Python 的区别,A…

【面试分享】嵌入式面试题常考难点之关于单链表的增删改查

文章目录 【面试分享】嵌入式面试题常考难点之关于单链表的增删改查一、单链表结点定义二、增(Create)——插入结点1. 于链表头部插入结点(头插法)2. 于链表尾部插入结点(尾插法)3. 于链表中间插入结点3-1.…

Listary(Windows 文件搜索工具)专业版值得购买吗?

说到经典的国货软件,有一款 Win 软件是一定绕不过去的。它就是知名的本地文件搜索工具 Listary! 便捷的文件搜索窗口;快捷操作的体验;与系统更匹配的外观设计;更智能的排序和更可靠的索引。 便捷的文件搜索窗口 紧凑…

Java基础(三)——类和对象、构造方法

个人简介 👀个人主页: 前端杂货铺 ⚡开源项目: rich-vue3 (基于 Vue3 TS Pinia Element Plus Spring全家桶 MySQL) 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 &#x1…