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 语句的功能和底层实现逻辑