一些零碎的小知识点(数据库)

Posted 是璇子鸭

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一些零碎的小知识点(数据库)相关的知识,希望对你有一定的参考价值。

零碎知识点

主键列需满足的条件:

不含空值和重复值
不允许修改和删除
最好与业务无关

SQLite的时间表示方法

1、文本类型TEXT
2、整数类型INTEGER

文本格式
年-月-日 时:分:秒

整数格式
Unix时间戳(时点,便于计算)
越晚发生的日期,数值越大

关于关键字
①关键字表示所选字段 select;
②关键字指明数据来源 from;
关键字大写,其他内容一律小写(SQL本身不区分大小写和忽略空行换行)

排序 order by

默认为升序(从低到高)
多层排序时,逗号间隔,从外到内
ASC 升序排序关键字(默)
DESC 降序排序关键字

限制查询结果数量 LIMIT

LIMIT(起始位置,返行数)
起始位置:起始行号 - 1(默认为0)

SELECT
FROM
WHERE
ORDER BY
LIMIT

GROUP BY 子句

类似于excel中的分类汇总,SQL先执行GROUP BY,才执行SELECT;
HAVING 对分组结果进行筛选
HAVING作用于分组结果,用于筛选分组(WHERE作用于原数据表,筛选行)

JOIN(平等)
默认为INNER JOIN
与FROM型联结一样,先列出数据表的笛卡尔积,再把完全符合关联条件的行检索出来
LEFT JOIN(主次)

拼接

SQLite等数据库管理软件中,并没有“百分比”这样的数据类型,故需动手将数值与‘%’拼接起来;
SQLite中使用“||”将左右两边内容拼接;
||为 SQLite 特有的设计。
mysql 等其它数据库管理软件中需要使用concat()函数,写成concat(内容1, 内容2, …, 内容N)的形式。

单行函数

原字段与结果字段行数一致
datetime()
datetime (pay_time, ‘unixepoch’),利用datetime函数,把’unixepoch’(Unix时间戳)格式的pay_time列转换为标准日期格式
substring()
从制定位置提取字符串
substring(需处理字段,开始提取位置,提取字符个数)
iif()

聚合函数

count()
count(*) 统计行(含NULL)
count(fruit_price) 统计字段中非空值行的个数
count(DISTINCT fruit_name) 统计字段中唯一非空值行的个数

SELECT count(
iif((delivery_time - pay_time) / 3600 >= 48, 1, NULL)

AS 延迟发货订单数
FROM orders;
即当参数为某个字段时,count()函数只会统计非空值

min()、max()
可处理整数、浮点数、文本

avg()、sum()
只处理整数、浮点数,不能处理文本类型数据

单行函数为进行复杂的数据处理而设计,聚合函数为简化运算而生。

零零散散

每当写完一条完整的SQL语句,末尾加分号,与其它语句进行区分

*表示选择所有列

DISTINCT 剔除重复,保留首次

– 注释

BETWEEN a AND b [a, b]

通配符(文本筛选)
% 代替多个字符
_ 代替单个字符

LIKE 后跟搜索模式

NOT在条件之前,倒转真假。优先级高于OR和AND

一些细节

SQLite中浮点数的运算比整数更为灵活。如果参与除法运算的有整数类型,结果的小数部分也会被自动舍去;

在别名两侧加反引号的三种情况
1、别名与SQL中的关键字相同 (如:‘where’)
2、别名以数字开头 (如:‘2022年销售额’)
3、别名中包含特殊字符 (如:‘互联网+’)

实用tips

  • Fn + F11 网页全屏
  • IN(a, b, c, …),适合查找值在某几个任选的情况

以上是关于一些零碎的小知识点(数据库)的主要内容,如果未能解决你的问题,请参考以下文章

一些零碎的小知识点(数据库)

数据去重2---高性能重复数据检测与删除技术研究一些零碎的知识

j2se学习中的一些零碎知识点7

j2se学习中的一些零碎知识点2

最近的一些零碎知识点,jquery遍历

Spring的一些零碎知识点整理