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


    零碎知识点

    主键列需满足的条件:

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

    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, …),适合查找值在某几个任选的情况
  • 相关阅读:
    七、Sleuth分布式链路请求跟踪
    网络安全事件应急演练方案
    PowerDesigner的表设计显示Comment的配置操作场景
    【学生管理系统】班级管理
    我的合肥 .NET 俱乐部线下活动之旅
    通过使用Amazon Neptune来预测电影类型初体验
    线性代数的学习和整理21,向量的模,矩阵的模,矩阵的模和行列式比较(未完成)
    OC和Swift的区别,发送消息和执行方法的区别
    echarts条形图实现颜色渐变
    C++——string
  • 原文地址:https://blog.csdn.net/qq_45060674/article/details/126576216