type
status
date
slug
summary
tags
category
icon
password

SQLite

notion image
命令行中要使用sql语句的时候先打这个
确保 sqlite> 提示符与点命令之间没有空格,否则将无法正常工作。
两个-后面跟上文字就是注释,这个是单行注释
//之间放东西就是多行注释
之后如果sql语句的语法忘记了就看:
notion image
notion image
SQLite的数据类型(准确来说应该是存储类)
notion image
就是说每个类都有一个亲和类型,而且每一列仍然可以存储不同类型的数据,但是存入的时候会将当前类的亲和类型作为数据的存储类型(有点像强制类型转换,就是能转就转,不能转就算了,这里说的能转就是不丢失信息并且转换可逆)
notion image
时间的存储
sql中布尔型的值转换为整形的01
创建的数据库名称在关系数据库管理系统中应该是唯一的
这里面的.db实际上就是数据库文件,会被当做数据库来被数据库引擎驱动
创建完数据库之后命令行会出现
之后就可以直接在这之后打命令,表示对当前的数据库进行操作
notion image
注意创建数据库文件是在命令的同一目录下创建的
notion image
这样就创建了一个数据库文件
notion image
退出sqlite提示符
.help可以提示出命令行上所有的指令
notion image
dump指令可以将数据库文件转换为sql文件,下面的指令有可以将sql文件转换为db文件
什么叫做转换整个数据库的内容到sql语句中?
notion image
感觉就是给一个数据库起别名
就是在进行一个数据库的操作的时候想要操作另一个数据库了,但是操作一个数据库的时候只能在这个数据库的sqlite语句中进行操作,操作也只会影响当前的数据库,此时如果想要操作其他的数据库只能.quit退出当前的数据库操作。这个指令就相当于简化了这个步骤,可以在一个数据库的sql语句中取操作另一个数据库
.database指令是用来显示当前有哪些数据库的
notion image
这个时候就附加进来一个test数据库
附加数据库时不能将数据库名附加为temp和main,因为这两个名称已经使用了
附加的逆操作就是分离(detach),用于将附加数据库分离出来
也可以将一个表的数据直接填充到另一个表中
notion image
建表的时候只能这样处理,就是要先打一个左括号然后输入信息,最后打入右括号和分号
notion image
选取数据之后返回的数据格式是这样的
notion image
显示的结果为上图
notion image
进行算术运算之前需要打一个select
notion image
where语句实际上就是一个条件判断,在数据库中寻找所有满足where后面条件的数据项(或者说数据行)
notion image
where语句的实例
notion image
甚至可以支持小于大于(就是不等于)等价于!=
要注意所有的sql语句都需要打分号
notion image
主要的逻辑运算符
notion image
这两个逻辑运算需要提供一个通配符,然后选择符合通配符的选项,但是要注意,like不区分大小写,但是glob区分大小写
逻辑运算符in是需要给出一个集合的(写在in的后面并用括号框起来)
between逻辑运算符要搭配and进行使用,就像英语语法一样
notion image
这个查询还可以嵌套(上面这个exist感觉没啥用),上面这个例子就通过where查询了两次
notion image
位运算符好像没什么特别大的区别
sql里面的布尔表达式都是一样的,布尔表达式的运算结果还是真或者假
sql里面给数据取名要使用as
如:
sql还提供了一些内置的函数来对表进行汇总计算
notion image
notion image
notion image
sql语句返回当前时间
得到的时间不对主要是因为时区不对
notion image
使用这个内置函数可以获取本地时间,但是好像不支持使用as
notion image
查表的时候就是进行where字句的判断,满足条件就返回
逻辑运算符not不能单独使用,他只是表示逻辑取反,所以最少要先给他提供一个逻辑运算式
不使用where语句的时候默认更新所有数据项(数据行)
不使用where语句的时候就是删除所有数据行
notion image
like语句可以使用的通配符(百分号代表仍以多个字符或者数字,而下划线就代表一个字符或者数字)
notion image
glob就有点像是正则表达式了
notion image
就是一个选中数据然后进行数据排列的东西
notion image
当有多个排序规则的时候就按照先后顺序来确定优先级(规则越前面优先级越高)
多个排序规则之间用逗号隔开
notion image
gruop by的基本语法,注意该语句的位置,一定要在where的后面,要在order by的前面
notion image
就是将当前表中的数据分成一组,上面的实例按照名字分组,那就是每人就是一个组了
notion image
这个时候按照name分组组内就不止一个人了,然后这个时候取sum就是将组内的salary求和,然后选中的还是name列,但是已经不是表内的name列了,而是分组过后的name列,所以此时name是不会有重复的(实际上的name还是按照之前的name来算的,所以下面的having语句的计数是有意义的,但是由于分组了都是重复的名字就不再重复打印了)
notion image
having语句在select语句中的位置如上图
having语句是对分组之后的数据进行处理的,所以一定要放在分组之后
notion image
这里的having就是代表分组内的name数量要小于2(此时已经按照name分组了)
notion image
distinct的语法
distinct用来删除重复的元素
以上面的内容为例,如果按照NAME来进行选取,那么不加distinct的时候就不会进行去重(按名字去重),加上了distinct关键字之后就会将重复的名字删除
江协STM32F103Kicad学习
Loading...
Noah
Noah
永远年轻,永远热泪盈眶
公告
❗❗复习笔记问题❗❗
由于兼容性问题
导入md文件可能导致了一些格式错误
🌹如发现格式错误,请联系我~🌹
🌹如博客内容有误也欢迎指出~🌹