sqlite基础学习

SQLite学习笔记之 在哪可以找到SQLite的学习资料 在哪可以找到SQLite的学习资料 SQLite 网站上有大量的信息,包括官方文档、邮件列表、Wiki以及其他常用信息,其网址是 www.sqlite.org。SQLite社区也非常不错,几乎能在SQLite 邮件列表中找到一切需要的东西。此外,SQLite 作者提供 SQLite 专业培训和支持,包括定制程序(移植到嵌入式平台等)。包含本地加密和为嵌入式应用做较小优化的增强版的 SQLite。更多信息可登录 www.hwaci.com/sw/sqlite/prosupport.html。 《 SQLit 阅读详情

1. 前言

  • 本文资料来源网络公开资源,并根据个人实践见解纯手打整理,如有错误请随时指出。
  • 本文主要用于个人积累及分享,文中可能引用其他技术大牛文章(仅引用链接不转载),如有侵权请告知必妥善处理。
  • 参考资料和引用链接:Android基础教程-SQLite高级操作-视频课程

2. 学习内容

主要说明sqlite工具的基础使用(windows环境)和sqlite基本知识和常用语法使用两大块内容


2.1. windows下sqlite工具使用

工具下载地址,点击Downloadan按钮,之后进入如下下载页面:


2.1.1. 调用sqlite3工具

找到sqlite工具zip解压后的sqlite3.exe,打开cmd,输入如下(路径请替换):

F:\do\self\sqlite-base-doc\sqlite-tools-win32-x86-3180000>sqlite3

通用命令帮助,这个可以简单了解下,随用随查:

sqlite>.help

如下图:


2.1.2. 创建数据库
sqlite>.open test01.db

或,在未调用sqlite3命令时,直接调用

F:\do\self\sqlite-base-doc\sqlite-tools-win32-x86-3180000>sqlite3 test02.db

2.1.3. 数据库常用命令
命令说明
.databases查询数据库,数据库的名称和文件
.tables查询表,所有表的名称
.schema ‘tablename’查询表的完整信息
.quit或.exit退出SQLite

更多:http://www.runoob.com/sqlite/sqlite-commands.html


2.2. sqlite基本知识

2.2.1关于sqlite

sqLite支持大部分SQL92规范,但也有未实现的SQL特性,请见链接:
http://www.sqlite.org/omitted.html


2.2.2常用方法
create
关键字名称说明
Table建表…
View建viewview只读,不能对数据或状态进行改动
Index索引…
Trigger触发器只支持行触发器,语句触发器不支持
约束条件

均为建表时添加,增删改查等操作时起约束作用

  • not null
    非空

  • unique
    唯一

  • primary key
    主键,直观就是_id

  • check
    插入时对某些值进行检查,比如某整型字段age,约束该字段的值必须大约或小于10

  • default
    这个字段约定插入时未赋值时的默认值

测试代码:
sqlite> create table t3 (id int primary key not null, name, idcard not null unique, age default 18 check(age>=18));

insert select delete update

增删改查


drop

删除表、view等


alter

除了重命名表和在已有的表中添加列,alter table 命令不支持其他操作

sqlite> alter table test01 rename to test010;
sqlite> alter table test010 add column alias char(20);

attach

附着数据库。sqlite是单文件的,所有的表都在一个库文件里。
数据库较大时,需要将数据库分成多个数据库,提高速度,这几个数据库是attach在一起的。
例如:

xxx>sqlite3 test01.db
sqlite>.databases

此时可以看到有“main”数据库 xxx\xxx\test01.db,如下图:

然后,将test02.db attach 到 test01.db上:

sqlite>attach database 'test02.db' as '02';

再查看databases,可以看到如下已attach成功:


detach
sqlite>detach database '02';

group by

查询数据时,根据某一列中数据相同的进行分组

如,t3表中age列

select * from t3 group by age;

假设表中有2人年龄22,2人年龄18,这是结果会显示22岁的2人中后插入的那个人和18岁的2人中后插入的那个人来那个条数据。不太好举例,用的不多。

比如计算某个月的航班费用总和之类的情况可能会用到

select sum(flight_fee) from table_xx group by month;

having

在group by某列后,进行条件限制的条件语句,如

...group by age having age>20;

distinct

某列可能有重复的值,使用distinct去除重复值

如筛选出非重复的用户名字:

select distinct name from tableuser;

order by

排序 asc升序,desc降序

select * from t3 order by age asc;

limit

限制输出数据条数

输出3条:

select * from t3 limit 3;

按年龄升序,从第0位置数据开始提取3条:

select * from t3 order by age asc limit 0,3;

或

select * from t3 order by age asc limit 3 offset 0;

join , on
  • 交叉连接 - cross join
  • 内连接 - inner join
  • 外连接 - outer join
cross join

两张表交叉连接,表1和表2每行相匹配,最终输出结果的数据条数是两个表行数相乘,列数相加。生成数据量可能相当大,使用需谨慎,用到的情况但也比较少,不做过多学习。

inner join

常用,默认join方式,inner关键字可省略
根据on条件检出符合条件的两表数据

outer join

是inner join的扩展模式,但sqlite只支持left outer join(不支持right、full),且left关键字不可省略。

与 inner join的显著异同:

  1. 表1 left outer join 表2 ,当表1中的数据根据on条件对应到表2,表1中有不符合条件的数据时,查询结果仍会显示表1中多余的数据;

  2. 表2 left outer join 表1 ,当表2中的数据根据on条件对应到表1,表1中有不符合条件的数据时,查询结果将不会显示表1中多余数据,此时和inner join查询结果相同;

inner join和outer join可用的表达式
  • 表达式on
    常用条件声明

  • 表达式using

    使用某一个两表中共有的字段,当这两个字段中的值相同是,才会被捡出

    此表达式有一定使用价值,在一定条件下可以简化语句。

  • 表达式nature

    自动检测两表中共有的字段,当共有字段的值相同是,才会被捡出

    此表达式较局限。

示例和代码

http://www.runoob.com/sqlite/sqlite-joins.html


like , GLOB
  • like大小写不敏感,GLOB大小写敏感,且GLOB关键字必须大写
  • like通配符为%和_,GLOB通配符为*和?
  • % 和 * 应用类似, _ 和 ? 应用类似
示例和代码

http://www.runoob.com/sqlite/sqlite-like-clause.html

http://www.runoob.com/sqlite/sqlite-glob-clause.html


unions

合并多个select语句的结果,不返回任何重复的行,如:两段select语句中间加上unions关键字即可。


null, is not null, is null
  • null 空,无值;不是’null’字符串,也不是空格或零;可以这样使用,如:

    ...update table set name=null where id=12;
  • is not null 作为运算符,如:

    ...where name is not null;
  • is null 作为运算符,同is not null用法


其它运算符

可参看:http://www.runoob.com/sqlite/sqlite-operators.html


函数

可参看:http://www.runoob.com/sqlite/sqlite-functions.html


子查询

子查询是嵌套在另一个语句的where语句中的,也就是说不只是可以用在select,insert、update、delete均可用
一般跟在运算符如 =、<、>、>=、<=、IN后
如:

...where age in (select age from agetable where age > 30);

事务transaction

sqlite数据库是ACID数据库,是事务完全的,在事务过程可以当保证数据的正确性。

命令说明
begin transaction在语句之前
commit \ end transaction在语句之后
rollbackcommit \ end transaction执行前有效
SQLite学习手册-中文全本.pdf SQLite学习手册-中文全本.pdf。 阅读详情

相关推荐

在实战中学AI-车流量统计项目-YOLOV11车辆检测-YOLOV11模型的部署

考虑实际落地中部署推理资源消耗,速度与模型精度之间的均衡,同时,车辆属于比较通用场景的目标检测,我们将YOLOV11作为最终的模型选择,目前官方开源的模型基于coco数据集训练,里面已经包含了车辆相关类别,经测试,在监控视角下效果基本可用,所以,在落地过程中,我们先用这个模型来打通部署链路,后面再逐步优化模型性能。在Nvidia的硬件下做部署,部署框架优先选择官方框架TensorRT,下面重点讲述如何用TensorRT部署YOLOV11模型。

Aleo_优快云的博客 2167

sqlite数据库基础学习

1.sqlite数据库简介 sqlite是一款轻型的嵌入式数据库,它占用资源非常的低,它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口。 sqlite数据库的优点: 在读取数据的时候可以减少网络访问的消耗, 简化数据库的管理, 程序的部署也比较容易. 简单,访问速度快(最好不要把它看做一个数据库,而是一个文件系统) 支持常见的SQL语法,包括常见数据库功能: 事务、索引、视图、触发器的部分功能. (麻雀虽

Allmyg的博客 1562

泛微OA表单开发实战:如何用JavaScript动态控制明细表的必填与可编辑属性

本文详细介绍了如何在泛微OA系统中使用JavaScript动态控制明细表字段的必填与可编辑属性。通过主表字段变更事件监听和明细表字段属性批量修改,实现智能化的表单交互,提升用户体验和系统灵活性。文章深入解析了关键API的使用方法,并提供了实战代码示例和最佳实践。

weixin_30955617的博客 550

SQLite 入门教程(非常详细)零基础入门到精通,收藏这一篇就够了

我们作为一个小白想转行网络安全岗位,或者是有一定基础想进一步深化学习,却发现不知从何下手。其实如何选择网络安全学习方向,如何进行实战与理论的结合并不难,找准正确方式很重要。接下来我将从成长路线开始一步步带大家揭开网安的神秘面纱。

hackeroink的博客 3583

求一个点到任意两个点所在直线距离 C#代码公式

求点C(X0,Y0) 到点A(x1,y1)和点B(x2,y2)所在直线的距离 1.已知任意两个点,求这两个点所在直线 已知点A(x1,y1),点B(x2,y2) 设直线上另外任意一个点为(x,y) 那么 (x-x1)/(y-y1) = (x2-x1)/(y2-y1); 整理后得方程: (y2-y1)x + (x1-x2)y + (y1-...

qq_29434987的博客 4492

TMS320F28377D的sys/bios双核工程配置详解——从零搭建到RAM优化

本文详细解析了TMS320F28377D双核系统在sys/bios环境下的工程配置与RAM优化策略。从开发环境搭建、SYS/BIOS工程创建到双核CMD文件配置,提供了实战技巧和常见问题解决方案,帮助开发者高效实现电力电子控制系统中的双核协作与性能优化。

weixin_28292761的博客 600

【基础详解】快速入门入门 SQLite数据可

SQLite 是一个开源的嵌入式关系数据库,实现了自给自足的、无服务器的、配置无需的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库系统不同,比如 MySQL、PostgreSQL 等,SQLite 不需要在系统中设置和管理一个单独的服务。这也使得 SQLite 是一种非常轻量级的数据库解决方案,非常适合小型项目、嵌入式数据库或者测试环境中。无服务器的:SQLite 不是一个单独的服务进程,而是直接嵌入到应用程序中。它直接读取和写入磁盘文件。事务性的。

wufaqidong1的博客 6755

ESP32-P4实战:LVGL V9.4 PPA加速配置与性能对比

本文详细介绍了如何在ESP32-P4平台上配置LVGL V9.4的PPA硬件加速功能,通过启用PPA加速显著提升图形处理性能并降低CPU占用率。文章包含环境准备、配置步骤、性能对比及常见问题解决方案,帮助开发者高效利用ESP32-P4的PPA加速器优化嵌入式GUI应用。

rice5的博客 1190

数据库SQLite基础学习(一)————认识以及基本SQL语句

数据库SQLite基础学习(一)————认识以及基本SQL语句 数据库SQLite基础学习(一)————认识以及基本SQL语句 了解SQLite数据库 下载和安装SQLite SQLite 基本命令 SQLite语法 用 SQLite Expert Professional 打开一个SQLite数据库文件,查看其中的表 了解SQLite数据库 SQLite是一款轻型的数据库,...

Yangchenju的博客 1060

动态规划之【树形DP】第3课:树形DP应用案例实践2

动态规划之【树形DP】第3课:树形DP应用案例实践2

王老师青少年编程 765

【网络与爬虫 41】TLS指纹伪造技术深度解析:ja3、ja4反检测与绕过策略

TLS指纹是现代反爬虫系统的重要检测手段,通过分析客户端TLS握手特征来识别爬虫。本文将深入解析ja3、ja4等TLS指纹技术原理,详细介绍指纹伪造和绕过策略,通过实际代码示例和工具使用,帮助开发者掌握TLS指纹反检测技术,构建更隐蔽的网络爬虫系统。

熵数实验室 1万+

SQLite 学习

首先简单介绍一下SQLite数据库:SQLite是一款轻型数据库,占用资源非常低,并且其简单语句的处理性能比Mysql和Postgresql 都要快。对于像android手机这样内存有限的设备而言,SQlite数据库理所当然的成为Android平台开发者处理数据的首先,并且其数据库单文件的特性也使得在Android中操作数据库更加灵活。SQLite非常健壮,据说其创建者保守估计SQLite可以处理...

huobengluantiao8 197

基于SC、SCL、BP、SCAN和SSC的译码算法及Matlab代码

本文将介绍几种常见的译码算法,包括SC(Successive Cancellation)、SCL(Successive Cancellation List)、BP(Belief Propagation)、SCAN(Soft-Input Soft-Output Successive Cancellation)、SSC(Stacked Successive Cancellation)的原理,并提供相应的Matlab代码实现。以上是基于SC、SCL、BP、SCAN和SSC的译码算法的Matlab代码示例。

ByteWhisper的博客 946

SQLite学习手册-中文全本

SQLite学习手册-中文全本 【下载地址】SQLite学习手册-中文全本 《SQLite学习手册-中文全本》是一份全面且实用的SQLite数据库学习指南,适合初学者和进阶开发者。手册详细介绍了SQLite的基础知识、高级特性以及实用技巧,内容涵盖广泛且结构清晰。通过丰富的实例和深入的解释,帮助读者掌握SQLite的使用...

gitblog_06715的博客 526

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

SQLite学习手册-中文全本:助您掌握SQLite数据库核心技能

SQLite学习手册-中文全本:助您掌握SQLite数据库核心技能 【下载地址】SQLite学习手册-中文全本 《SQLite学习手册-中文全本》是一份全面且实用的SQLite数据库学习指南,适合初学者和进阶开发者。手册详细介绍了SQLite的基础知识、高级特性以及实用技巧,内容涵盖广泛且结构清晰。通过丰富的实例和深入的...

gitblog_06784的博客 842

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

开始学习SQLite

纯属无聊,从SQLite开始学习数据库! 准备的资源: sqlite-shell-win32-x86-3071502.zip Navicat for SQLite SQLite源码 The Definitive Guide to SQLite (2nd) sqlte_api-V4.1.0.zip (For LabVIEW) 在看SQLite源程序时,发现每

Enjoy Coding With LabVIEW 1919

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

SQLite學習心得分享<一>

~*~~*~~*~~*~~*~~*本文主要是分享自己學習SQLite數據庫語言過程中的一些基礎知識,運用技巧,僅供參考,參考過程如有錯誤望不吝賜教*~~*~~*~~*~~*~~*~

LeoChen_LC的博客 645

sqlite学习

见附件

jenniferyayun的博客 261

sqlite学习笔记

内容主要来自: https://www.sqlite.net.cn/tutorial/2.html在官网(https://www.sqlite.org/download.html)的Windows 区下载预编译的二进制文件(Precompiled Binaries for Windows): sqlite-dll-win32-x86-3380500.zip或sqlite-dll-win64-x64-3380500.zip sqlite-tools-win32-x86-3380500.zip 两个都要下载.把

编程驴子的博客 1210

SQLite权威指南第二版资源下载介绍:SQLite学习与实践的全面指南

SQLite权威指南第二版资源下载介绍:SQLite学习与实践的全面指南 【下载地址】SQLite权威指南第二版资源下载介绍 《SQLite权威指南,第二版》是一本全面深入的SQLite学习宝典,从SQLite的起源、设计理念到实际应用,系统讲解了其核心功能与高级特性。书中不仅涵盖了SQLite在C语言中的API使用,还...

gitblog_06790的博客 984

sqlite3 学习笔记

SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统。SQLite 非常适合用于嵌入式系统、物联网设备、移动应用程序和客户端应用程序,它不需要服务器,简单易用。

某风吾起的博客 2121

SQLITE 学习

http://sourceforge.net/project/showfiles.php?group_id=132486 ADO.NET 2.0 Provider for SQLite https://addons.mozilla.org/en-US/firefox/addon/5817 SQLite Manager 0.2.41 http://www.boy5d.com/arti...

weixin_30414635的博客 61

SQLite 学习资料

SQLite 学习资料   http://blog.chinaunix.net/u2/69153/article_89202.html

xtpebg的专栏 240

SQLite学习笔记导读

概述 SQLite学习笔记部分总共分为7篇文章,讲述的均为 SQLite 的使用,未对 SQLite 进行深入的研究。本系列读书笔记均源自两本书籍:《SQLite权威指南》和《SQL必知必会》。下面对7篇文章的内容做一个内容概要: SQLite学习笔记(一):讲述了什么是SQL,如何创建、删除和修改表以及SQLite的数据类型和常用命令。 SQLite学习笔记(二):对SELECT命令的完...

Marck的博客 843

SQLITE 学习网站

<br />http://www.sqlite.com.cn/MySqlite/6/553.Html<br /> <br />http://www.cnblogs.com/waw/archive/2011/05/15/2046785.html<br /> <br />等等

haha_mingg的专栏 646

SQLite学习手册_中文全本下载仓库:SQLite学习者的必备资源

SQLite学习手册_中文全本下载仓库:SQLite学习者的必备资源 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 SQLite学习手册_中文全本下载仓库是一个专门提供《SQLite学习手册_中文全本》下载资源的开源项目。这本书全面、深入地介绍了SQLite数据库的各个方面,是数据库开发者、学习者以及广大技术爱好者的不二选择。 项目技术分析 SQLite是一款轻量级的...

gitblog_06778的博客 268
下一篇: GreenDao教程(1):配置流程
RobotHost
博客等级 码龄10年 12粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值