SQLite3 数据库学习(二):SQLite 中的 SQL 语句详解
参考引用
- SQLite 权威指南(第二版)
- SQLite3 入门
1. SQL 语句操作 SQLite 数据库
1.1 创建数据表格
- create table 表名(字段名 数据类型, 字段名 数据类型, 字段名 数据类型, 字段名 数据类型);
- 命令行语句结束要加分号 ;
- . 开头的命令是 SQLite 数据库自带命令,而非 SQL 语句
$ sqlite3 sqlite> .open my.db # 打开 my.db 数据库(不存在则直接创建) sqlite> create table student(number varchar(256), name varchar(256), address text, QQ char(32));
1.2 插入数据
- insert into 表名 values(‘字段数据’,‘字段数据’,‘字段数据’,‘字段数据’ );
- 如果数据类型是 char, varchar, text 数据必须用 ‘’ 或者 “” 引用,建议用 ‘’
sqlite> insert into student values('20200101', '张三', '广州','911683830'); sqlite> insert into student values('20200102', '何青德', '广州','911683831');
1.3 查询数据
- select 字段名…字段名 from 表名;
- 说明:字段名如果是多个可以用逗号隔开,如果是所有可以用星号 *
sqlite> select * from student; 20200101|张三|广州|911683830 20200102|何青德|广州|911683831sqlite> select name, qq from student; 张三|911683830 何青德|911683831 - select 字段名…字段名 from 表名 where 条件;
sqlite> insert into student values('20200103', '何阳华', '北京','10080'); sqlite> insert into student values('20200104', '岳飞', '中国','1000000000'); sqlite> select * from student; 20200101|张三|广州|911683830 20200102|何青德|广州|911683831 20200103|何阳华|北京|10080 20200104|岳飞|中国|1000000000sqlite> select * from student where address='广州'; 20200101|张三|广州|911683830 20200102|何青德|广州|911683831sqlite> select * from student where address like '广%'; # 模糊查询 20200101|张三|广州|911683830 20200102|何青德|广州|911683831# 两个条件同时成立(与)-- and sqlite> select * from student where address like '广%' and QQ like '%1'; 20200102|何青德|广州|911683831# 两个条件只要成立一个(或)-- or sqlite> select * from student where address like '广%' or QQ like '%1'; 20200101|张三|广州|911683830 20200102|何青德|广州|911683831
1.4 更新数据
- update 表名 set 字段1=字段1值, 字段2=字段2值… where 条件表达式
sqlite> update student set qq='199999999999' where name='岳飞'; sqlite> select * from student; 20200101|张三|广州|911683830 20200102|何青德|广州|911683831 20200103|何阳华|北京|10080 20200104|岳飞|中国|199999999999
1.5 删除数据
- delete from 表名; // 删除整个表数据,不会删除表格
- drop table 表名; // 整个表格全部删除–把表格从数据库中也删除
- delete from 表名 where 条件;
sqlite> select * from student; 20200101|张三|广州|911683830 20200102|何青德|广州|911683831 20200103|何阳华|北京|10080 20200104|岳飞|中国|199999999999sqlite> delete from student where number='20200103'; sqlite> select * from student; 20200101|张三|广州|911683830 20200102|何青德|广州|911683831 20200104|岳飞|中国|199999999999
1.6 查询创建表命令
sqlite> .schema student
CREATE TABLE student(number varchar(256), name varchar(256), address text, QQ char(32));
1.7 alter 添加字段
sqlite> select * from student;
20200101|张三|广州|911683830
20200102|何青德|广州|911683831
20200104|岳飞|中国|199999999999sqlite> alter table student add column age int ;
sqlite> select * from student;
20200101|张三|广州|911683830|
20200102|何青德|广州|911683831|
20200104|岳飞|中国|199999999999|sqlite> update student set age=18;
sqlite> select * from student;
20200101|张三|广州|911683830|18
20200102|何青德|广州|911683831|18
20200104|岳飞|中国|199999999999|18sqlite> alter table student add column sex varchar(8) default '男' ;
sqlite> select * from student;
20200101|张三|广州|911683830|18|男
20200102|何青德|广州|911683831|18|男
20200104|岳飞|中国|199999999999|18|男
1.8 pragma 查询表结构信息
0|number|varchar(256)|0||0
1|name|varchar(256)|0||0
2|address|text|0||0
3|QQ|char(32)|0||0
4|age|int|0||0
5|sex|varchar(8)|0|'男'|0
2. SQLite 创建带约束条件表格
-
id 自动增长:ID INTEGER PRIMARY KEY AUTOINCREMENT
-
PRIMARY KEY:主键,not null:不能为 NULL,UNIQUE 唯一 ,DEFAULT 默认值
# 设置 id 为主键,自增加 # 设置 name 唯一 # 设置 status 不能为空-默认为值 0 # 设置 online 不能为空 create table device(id integer primary key autoincrement, name varchar(256) unique, status int not NULL default 0, online int not NULL); -
if not exists 判断表格是否存在
- 如果不存在就创建
create table if not exists device(id integer primary key autoincrement, name varchar(256) unique, status int default 0, online int not NULL);
2.1 插入数据
sqlite> insert into device value(0,'led',0,0);
Error: near "value": syntax error # 应该写 valuessqlite> insert into device values(0,'led',0,0);
sqlite> insert into device values(0,'led',0,0);
Error: UNIQUE constraint failed: device.id # id 不能重复sqlite> insert into device values(1,'led',0,0);
Error: UNIQUE constraint failed: device.name # name 不能重复
sqlite> insert into device values(1,'led1',0,0);sqlite> select * from device;
0|led|0|0
1|led1|0|0
- 指定字段(列)插入
- 没有指定的就可以用默认值
sqlite> insert into device(name, online) values('led2',0); sqlite> insert into device(name, online) values('led3',0); sqlite> select * from device; 0|led|0|0 1|led1|0|0 2|led2|0|0 3|led3|0|0
2.2 删除、退出表
-
删除表
- drop table 表名;
sqlite> .tables device studentsqlite> create table test(id int); sqlite> .tables device student testsqlite> delete from test; sqlite> .tables device student testsqlite> drop table test; sqlite> .tables device student -
退出表
sqlite> .quit
相关文章:
SQLite3 数据库学习(二):SQLite 中的 SQL 语句详解
参考引用 SQLite 权威指南(第二版)SQLite3 入门 1. SQL 语句操作 SQLite 数据库 1.1 创建数据表格 create table 表名(字段名 数据类型, 字段名 数据类型, 字段名 数据类型, 字段名 数据类型); 命令行语句结束要加分…...
基础课4——客服中心管理者面临的挑战
客服管理者在当今的数字化时代也面临着许多挑战。以下是一些主要的挑战: 同行业竞争加剧:客服行业面临着来自同行业的竞争压力。为了获得竞争优势,企业需要不断提高自身的产品和服务质量,同时还需要不断降低成本、提高效率。然而…...
RFID技术在危险废物管理中的应用解决方案
一、背景介绍 随着我国经济的快速发展,轻纺、化工、制药、电子等行业的危险废物排放量逐年增加。然而,由于危险废弃物处理不当,可能导致大气、水体和土壤污染,对环境和人体健康造成严重威胁,制约了经济和健康的可持续…...
二百零三、Flume——Flume实时采集数据频率为1s的高频率Kafka数据直接写入ODS层表的HDFS文件路径下
一、目的 在离线数仓中,需要用Flume去采集Kafka中的数据,然后写入HDFS中。 由于每种数据类型的频率、数据大小、数据规模不同,因此每种数据的采集需要不同的Flume配置文件。玩了几天Flume,感觉Flume的使用难点就是配置文件 二、…...
Word或者WPS批量调整文中图片大小的快捷方法
文章目录 0、前言1、编写宏代码2、在文档中调用宏实现一键批量调整3、就这么简单! 0、前言 不知道大家是不是也和我一样,经常需要在编写的Word(或者WPS)文档里插入大量的图片,但是这些图片的尺寸大小一般都不一样&…...
url在api测试工具可以访问,但在浏览器不能访问
api测试工具可以正常返回数据,但在浏览器中输入url无法访问网站那么很有可能是端口号的原因被浏览器取消了访问。 我们可以通过两种方法解决: 1.修改配置文件中的端口号。 2.取消端口号的限制。(具体方法已经有很多前辈讲过了,若感…...
k8s之Helm
理论: 什么是 He lm 在没使用 helm 之前,向 kubernetes 部署应用,我们要依次部署 deployment、svc 等,步骤较繁琐。 况且随着很多项目微服务化,复杂的应用在容器中部署以及管理显得较为复杂,helm 通过打包…...
ElasticSearch 增删改查操作
本文主要是介绍 ElasticSearch 的文档增删改查和批量操作,同时会介绍一些 REST API 返回状态码的具体含义。 我们先来看下这个表: 这个表包含了 Index、Create、Read、Update、Delete 这五种方法,我们先来看下 CRUD 操作的 HTTP 请求都长什么…...
ctfshow sql171-179
mysql 先打开我们本地的mysql,可以看到这些数据库 information_schema information_schema 库: 是信息数据库,其中保存着关于MySQL服务器所维护的所有其他数据库的信息比如数据库名,数据库表, SCHEMATA表: 提供了当前MySQL实例…...
Mysql 自带分页异常
Mysql 自带分页异常 limit?,? 25条数据,在分页是10时,第一页和第二页的数据有重复的 分页是30时无异常。 经检查后发现,是mysql的分页出现了问题,其中分页后进行了排序,按照state进行的排序 select * from user or…...
MySQL MVCC机制详解
MySQL MVCC机制详解 MVCC, 是Multi Version Concurrency Control的缩写,其含义是多版本并发控制。这一概念的提出是为了使得MySQL可以实现RC隔离级别和RR隔离级别。 这里回顾一下MySQL的事务, MySQL的隔离级别和各种隔离级别所存在的问题。 事务是由 …...
搭建成功simulink-stm32硬件在环开发环境
本次实验所使用的软件版本和硬件平台参数如下: Matlab版本: 2021b STM32硬件平台:YF_STM32_Alpha 1R4(参考自STM32 Nucleo F103RB官方开发板) YF_STM32_Alpha开发板 STM32 Nucleo F103RB 开发板 2.1 STM32硬件支持包下载 读者朋友平时使用的是和谐版M…...
【计算机网络】UDP协议
UDP的结构 我们学习一个协议最主要的就是理解它的报文格式,对于UDP协议来说 我们看下面的这张图。 16位UDP长度,表示整个数据报(UDP首部UDP数据)的最大长度。UDP报文长度占两个字节,16位表示的数据范围(0-…...
ubuntu安装mysql8.0.35过程和报错处理
ubuntu安装mysql8.0.35过程 1.更新包列表:首先,确保您的系统已更新到最新状态。运行以下命令来更新包列表和安装最新的软件包: sudo apt update sudo apt upgrade2.安装MySQL服务器:运行以下命令来安装MySQL服务器: …...
SQL基础理论篇(一):什么是SQL
文章目录 什么是SQLSQL的四大部分常用的SQL标准参考文献 什么是SQL SQL的全称是Structured Query Language,即结构化查询语句。 其最早诞生于1974年,IBM研究员发布的一篇论文"SEQUEL:一门结构化的英语查询语言"。这几十年里&…...
物联网AI MicroPython学习之语法 GPIO输入输出模块
学物联网,来万物简单IoT物联网!! GPIO 介绍 模块功能: GPIO通用输入输出。 接口说明 GPIO - 构建GPIO对象 函数原型:Pin(port, dir , pull)参数说明: 参数类型必选参数?说明portintY对应开发板的引脚号…...
phalcon 访问IndexController 中只能访问indexAction方法,访问不了testAction等其它问题的解决办法
phalcon 访问IndexController 中只能访问indexAction方法,访问不了testAction,也访问不了indexAction方法,但是可以访问ArticleController里面的任意方法。访问其它方法出现这个错误“php - phalcon IndexController handler class cannot be loaded” 有人说是Apache 的rew…...
docker安装AWVS 23.9.231005181
本文声明仅AWVS用作学习使用 将镜像文件secfa_awvs.tar复制到目标机器上。 我的百度网盘文件路径: 链接:https://pan.baidu.com/s/1Pe4qlVp9XKbZ3dLrouaP2w 提取码:67mc –来自百度网盘超级会员V6的分享 在目标机器上,使用以下命…...
数据同步工具调研选型:SeaTunnel 与 DataX 、Sqoop、Flume、Flink CDC 对比
产品概述 Apache SeaTunnel 是一个非常易用的超高性能分布式数据集成产品,支持海量数据的离线及实时同步。每天可稳定高效同步万亿级数据,已应用于数百家企业生产,也是首个由国人主导贡献到 Apache 基金会的数据集成顶级项目。 SeaTunnel 主…...
【Vue】Vue3 Swiper 插件 loop 无限滚动、并且暂停的问题
上午把官网的合作伙伴做了,好坑,swiper 自动滚动展示的数量 slides-per-view 的两倍必须小于等于 *SwiperSlide* 组件的渲染数量,才能进行自动滚动,官网居然都没有说。 比如 slidesPerView 6,那么 SwiperSlide 组件渲…...
Unity发行版DLL调试实战:DnSpy无源码IL级断点指南
1. 这不是“反编译”,而是Unity游戏开发者的日常调试手段你有没有遇到过这样的情况:接手一个Unity发行版游戏,想快速验证某个功能逻辑是否按预期执行,或者排查一个偶发的崩溃,但手头只有打包后的Assembly-CSharp.dll&a…...
1901-2022年中国气温变化分析实战:用这份1km栅格数据我们能发现什么?
1901-2022年中国气温变化分析实战:如何从1km栅格数据中挖掘气候演变规律当一份覆盖122年、分辨率精确到1公里的气温栅格数据摆在面前时,我们看到的不仅是数字矩阵,更是一部写在经纬度坐标里的气候变迁史诗。这份由逐月数据聚合生成的逐年气温…...
独立站内容分层:一层给 SEO,一层给 GEO
你的内容在喂两个完全不同的"阅读者" 你的博客文章,从来都不只有一个读者。 传统认知里,独立站内容的读者只有两类:真人访客和搜索引擎爬虫。SEO 优化的一切工作,本质上都是在讨好后者,顺带服务前者。 但…...
碧蓝航线自动化脚本终极指南:3小时学会全自动游戏管理
碧蓝航线自动化脚本终极指南:3小时学会全自动游戏管理 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研,全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript 还在为碧蓝…...
Mysql:事务管理(中)
在前面的章节中,我们提到了 MVCC(多版本并发控制),它巧妙地通过“版本快照”解决了“读-写”冲突,实现了非阻塞读。但如果两个事务同时执行 UPDATE 操作修改同一行数据,即 写-写(Write-Write&am…...
基于雷达与光敏传感器的低功耗智能窗防设备设计与实现
1. 项目概述:一个基于雷达与光敏的智能窗防设备几年前,我因为一次短暂的出差,家里空置了几天,回来后就一直琢磨着怎么给家里的窗户加点“动静”。市面上的智能安防摄像头固然好,但要么需要复杂的布线,要么云…...
3分钟告别英文恐惧:Android Studio中文界面轻松切换指南
3分钟告别英文恐惧:Android Studio中文界面轻松切换指南 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本) 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack 你是否曾经因…...
掌握Umi-OCR:5分钟上手开源免费离线文字识别工具
掌握Umi-OCR:5分钟上手开源免费离线文字识别工具 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。…...
NHSE终极教程:5分钟掌握动物森友会存档编辑技巧
NHSE终极教程:5分钟掌握动物森友会存档编辑技巧 【免费下载链接】NHSE Animal Crossing: New Horizons save editor 项目地址: https://gitcode.com/gh_mirrors/nh/NHSE 还在为《集合啦!动物森友会》的收集烦恼吗?想快速打造梦想岛屿却…...
BiliBiliCCSubtitle终极指南:5个实战技巧高效下载B站字幕
BiliBiliCCSubtitle终极指南:5个实战技巧高效下载B站字幕 【免费下载链接】BiliBiliCCSubtitle 一个用于下载B站(哔哩哔哩)CC字幕及转换的工具; 项目地址: https://gitcode.com/gh_mirrors/bi/BiliBiliCCSubtitle 还在为无法保存B站视频字幕而烦恼࿱…...
