mysql 排版 指令_Mysql语句排版
SQL 高效排版指北
统一 SQL 排版的相关用法,极大提高编写和维护 SQL 的效率。
注: column = 选取的字段;table = 选取的表名
语句结构
错误
SELECT column1 FROM table1 ORDER BY column1
正确
SELECT
column1
FROM
table1
ORDER BY
column1
解析
SQL 语句在内部执行时会解析成树状展开的结构,SELECT,FROM,WHERE 等关键字定义了结构体,这些关键词统一使用大写并配合缩进来直观的区分内容和结构。
判断条件
错误
SELECT column1 FROM table1 WHERE column1=1 AND column2 = 2
正确
SELECT
column1
FROM
table1
WHERE
column1 = 1
AND column2 = 2
解析
同一级别的语句块保持相等距离的缩进,AND 放置在条件前面。
子查询
错误
SELECT L.column1 FROM (SELECT column1 FROM table1 ) as L
正确
SELECT
L.column1
FROM
(
SELECT
column1
FROM
table1
) as L
解析
子查询会成为一个完整的表嵌入到上层的结构中,子查询的内部又是一个完整的结构体,当然也要使用缩进来定义结构,并且整体要往后缩进一个层次,与上层结构配合。
连接
错误
SELECT table1.column1,table2.column2 FROM table1 LEFT JOIN table2 ON table1.column1 = table2.column1
正确
SELECT
table1.column1
,table2.column2
FROM
table1
LEFT JOIN
table2
ON
table1.column1 = table2.column1
解析
JOIN 后两张表会形成一张新的大表,该大表需要保持缩进来嵌入到上层,同时内部的两种表也要通过缩进维持结构。
逗号
错误
SELECT column1,column2,column3 FROM table1
正确
SELECT
column1
,column2
,column3
FROM
table1
解析
读者刚开始将逗号前置可能会不太习惯,但这样做会显著的带来两个好处,第一:长的SQL语句往往选取的字段长短不一,若将逗号放在后面,当缺失逗号时很难发现,放在前面就很容易排查,第二:调试 SQL 语句时,注释掉最后一个字段,也可以直接运行,减少调试时间。
长函数
错误
SELECT concat(column1,column2,column3) FROM table1
正确
SELECT
concat( column1
,column2
,column3)
FROM
table1
解析
当长的函数十分复杂时,若没有清晰的结构,很容易写完就忘。函数与函数参数也是呈子母对的性质,那么它们也就具有树状的表达结构,通过缩进形式也可以展现出这种树状结构。
举个栗子
错误
SELECT L.column1,R.column2,concat(L.column1,R.column2) FROM (SELECT column1 ,column3FROM table1) AS L LEFT JOIN
(SELECT column2,column3FROM table2) AS R ON L.column3 = R.column3 WHERE L.column1 = 1 AND R.column1 = 2 GROUP
BY L.column1,R.column2 ORDER BY L.column1,R.column2
正确
SELECT
L.column1
,R.column2
,concat(L.column1
,R.column2)
FROM
(
SELECT
column1
,column3
FROM
table1
) AS L
LEFT JOIN
(
SELECT
column2
,column3
FROM
table2
) AS R
ON
L.column3 = R.column3
WHERE
L.column1 = 1
AND R.column1 = 2
GROUP BY
L.column1
,R.column2
ORDER BY
L.column1
,R.column2
解析
再复杂的语句也可以通过这样的方式拆分以增加可读性,在后期调试时也十分方便。
结语
知行合一:这个方法可以加深读者对 SQL 的理解,在练习的过程中仔细体会这种语法的树状结构,假以时日就可以掌握。
怎么学习函数:各种函数看似纷繁多样,其实基础结构十分简单,所有的函数都是围绕数字,文本,日期这三种数据类型,再辅以一些结构和增删查改的过程来展开。运用函数的过程就是逻辑上对这三种类型进行运算,再通过逻辑去搜索函数,最后组合起来达到想要目的的过程。so,学习函数就是掌握(数字,文本,日期)*增删查改 ,这一表达式的过程。
如何融会贯通:随着练习的深入,读者可以感受到写 SQL 就像折纸一样,它们面向的对象都是矩阵,而所有的数据产品:Excel,Hive,Tableau等等都是在处理矩阵对象,只是表达方式和面对的场景不同才有所差异,本质上殊途同归。当读者对矩阵概念有比较清晰的概念时就可以达到一通百通的层次。
mysql 排版 指令_Mysql语句排版相关推荐
- mysql kill 指令_MySQL kill指令使用指南
KILL [CONNECTION | QUERY] processlist_id 在Mysql中每个连接都是单独线程运行,可以使用语句 KILL processlist_id statement.来终 ...
- mysql desc指令_MySQL Desc指令相关
MySQL Desc指令相关 2011-08-09 11:25:50| 分类: my基本命令 |举报 |字号 订阅 1.desc tablename; 例如 :mysql> desc jos_ ...
- mysql execute指令_MYSQL简单命令
常用 mysql 操作指令: 连接:mysql -u用户名 -p密码 退出:mysql>exit; 建数据库:mysql>create database ???; 显示数据库:mysql& ...
- mysql激活指令_MySQL命令大全
1 /* SQL编程 */ ------------------2 --// 局部变量 ----------3 -- 变量声明4 declare var_name[,...] type [defaul ...
- mysql sql测试_MySQL语句测试——数据查询
MySQL语句测试--数据查询 3.4 数据查询 一.单表查询 /*1.选择表中的若干列,各个列的先后顺序和语句中列名从左到右的顺序一致 select 目标表达式 from 表名; */ /*(1)s ...
- mysql 去除括号_MySQL语句批量去除括号及内容
我就废话不多说了,大家还是直接看代码吧~create or replace function aa1(a1 integer[],a2 bigint) returns void AS $$declare ...
- mysql or优化_MySQL 语句优化
官方文档放这里,有什么代码先到官方文档查询: MySQL 8.0 Reference Manual :: 8 Optimizationdev.mysql.com 优化涉及多个级别的配置,调整和测量性 ...
- mysql net 指令_MySQL命令
1.MySQL数据库服务器的开启与关闭: net start mysql net stop mysql 2.退出命令行客户端: quit 3.创建数据库 CREATE DATABASE 数据库名称; ...
- mysql删除指令_mysql怎么用命令删除数据?
在mysql中,可以使用"DELETE FROM [WHERE 子句] [ORDER BY 子句] [LIMIT 子句]"命令删除单个表中的数据:也可以使用"TRUNCA ...
最新文章
- opencv隔点采样(下采样)
- tp5获取mysql版本_TP5 + MySQL 应用地址选择
- 形似棺材的“抗震救生床”,你会要吗?
- jQuery Mobile 教程
- python中运算的英文_[lemon]Python中的运算符,LemonPython
- Redis都有哪些监控指标,看完你就懂了!
- java中日期计算时间差,java中依据,两个日期,计算时间差
- 图片裁剪:CropZoom插件的应用
- 1.12 深层循环神经网络
- mysql获取一行中多列的最大值_SQL 获取一行中多个字段的最大值
- 几行Java解决图片提取文字功能
- 下载和安装Visual C ++ 2008 Express Edition的说明
- maya导入abc动画_UE4 Alembic 动画资产流程的整理
- c语言库函数总结----ctype.h库
- OpenGL学习(七)通过assimp库读取多种格式的模型
- windows7如何安装python_windows7系统下如何安装python
- oracle查看视图属于哪个用户,oracle查询视图归属于哪个用户
- 安卓各国语言对应缩写和时区查询
- fme使用workspacerunner批量处理数据
- 车间生产管理系统严格管控生产全过程?7大步骤分享
热门文章
- vue-property-decorator 提供 OO 的风格 Vue Component 方便类型声明
- 20162329 张旭升 2017 - 2018 《程序设计与数据结构》第五周总结
- nodejs中require的路径是一个文件夹时发生了什么
- 红帽436——HA高可用集群之概念篇
- [转]打造自己的LINQ Provider(上):Expression Tree揭秘
- 外刊评终极平板电脑十大功能:防眩目屏幕在列
- Aspx页面javascript的几个trick
- 小程序 国际化_在国际化您的应用程序时忘记的一件事
- VMware文件共享
- leetcode 941. 有效的山脉数组