SQL 实现的逻辑

Posted getthingsdone

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL 实现的逻辑相关的知识,希望对你有一定的参考价值。

SQL:structure query language

SQL操作的对象是二维表,每一行是一个元组。通过逻辑判断和集合操作来取数。

数据的增删查改,合并排序都应该有对应的语法来实现

个人感觉,这种操作二维表的行为都差不多。比如Excel操作的也是二维表,生成透视表的过程,就是不断增加条件筛选数据的过程。

有种Excel是SQL可视化的结果,Excel也有很多的函数。。。只是不适合大规模的存取数据。。。太慢了。

SQL的语法大致分为三类:DDL(data define language),DML(data mapulate language),DCL(data control language/支撑事务型语句)

但是SQL的特色是:1.可以对表取别名

         2.表名.colname的形式选择数据

         3.SQL 对大小写不敏感

         4.输完指令,分号结尾执行

首先最最基础的增删查改:

SELECT:从二维表中取列( SELECT colname/* from talbename)

    select distinct 

UPDATE:修改数据

INSERT INTO:插入新的行或者列

DELETE:从数据表中删除元组(行)

ALTER:在已于的表中添加,修改或。删除列(需要配合Drop的使用)

WHRER:数据筛选(map,判断语句执行后是否是True,是True就输出,否则不显示)

    between:在某个范围

    like:搜索某种模式,模糊查询

    in:类似集合判断

简单逻辑判断:

      AND  OR

简单的排序:

      order by

然后是集合:

0.数据库连接两张或多张表时,会生成一个临时的中间表。

1.有的操作是在生产中间表时起作用(比如on),有的操作是在中间表生产后起作用(比如where)

2.left join,right join,优先考虑哪张表

接着是逻辑判断:

主要是where筛选的地方,大于,小于,等于,不等于

最后是函数

1.数值计算函数:

  • AVG() - 返回平均值
  • COUNT() - 返回行数
  • FIRST() - 返回第一个记录的值
  • LAST() - 返回最后一个记录的值
  • MAX() - 返回最大值
  • MIN() - 返回最小值
  • SUM() - 返回总和

2.字符串转换函数:

  • UCASE() - 将某个字段转换为大写
  • LCASE() - 将某个字段转换为小写
  • MID() - 从某个文本字段提取字符,mysql 中使用
  • SubString(字段,1,end) - 从某个文本字段提取字符
  • LEN() - 返回某个文本字段的长度
  • ROUND() - 对某个数值字段进行指定小数位数的四舍五入
  • NOW() - 返回当前的系统日期和时间
  • FORMAT() - 格式化某个字段的显示方式

最后的最后就是表的主键,外键,约束,这类表和表之间的关系:

  • NOT NULL - 指示某列不能存储 NULL 值。
  • UNIQUE - 保证某列的每行必须有唯一的值。
  • PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
  • FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
  • CHECK - 保证列中的值符合指定的条件。
  • DEFAULT - 规定没有给列赋值时的默认值。

 

还有剩下的就是和数据本身没有直接作用,管理数据库的语句了:

GRANT 授权
REVOKE 取消授权

SAVEPOINT 设置保存点
ROLLBACK  回滚
SET TRANSACTION

 

    

 

以上是关于SQL 实现的逻辑的主要内容,如果未能解决你的问题,请参考以下文章

详解SQL中Groupings Sets 语句的功能和底层实现逻辑

SPARK SQL中 Grouping sets转Expand怎么实现的(逻辑计划级别)

mybatis 实现 SQL 查询拦截修改详解

mybatis 乐观锁和逻辑删除

mybatis 乐观锁和逻辑删除

mybatis 乐观锁和逻辑删除