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等等都是在处理矩阵对象,只是表达方式和面对的场景不同才有所差异,本质上殊途同归。当读者对矩阵概念有比较清晰的概念时就可以达到一通百通的层次。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/397768.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux命令学习手册-tr命令 2015-07-26 20:35 9人阅读 评论(0) 收藏...

tr [OPTION]... SET1 [SET2] [功能] 转换或者删除字符。 [描述] tr指令从标准输入设备读取数据,经过字符串转译后,输出到标准输出设备。 通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能。您可以将 tr 看作为 sed 的&#xff08…

css商品,商品标签例子——CSS3 transform 属性

积累很重要。从此开始记录前端生涯的点滴....div{width:150px;height:30px;background-color:#f83944;/* Rotate div */transform:rotate(-40deg);-ms-transform:rotate(-40deg); /* Internet Explorer */-moz-transform:rotate(-40deg); /* Firefox */-webkit-transform:rotat…

The literal of int xxxxx is out of range

有时候我们定义了long型的变量,当我们给该变量赋值过长的整数时,系统依然会提示长度超过范围,解决办法如下: long timeShow 1437565243495L; 我们需要在整形变量的后面加上“L”,便可以避免系统报错。转载于:https://…

debian 访问 windows 共享_【续】windows环境redis未授权利用方式梳理

01Redis未授权产生原因1.redis绑定在0.0.0.0:6379默认端口,直接暴露在公网,无防火墙进行来源信任防护。2.没有设置密码认证,可以免密远程登录redis服务02漏洞危害1.信息泄露,攻击者可以恶意执行flushall清空数据2.可以通过eval执行…

HTML比较常用的标签

1.全局架构标签&#xff1a;<html><head><title>标题</title><meta charset"utf-8"></head><body>正文部分</body></html><!--注释部分-->2.body标签的属性bgcolor&#xff1a;背景色text:整个网页的颜…

sae项目服务器,基于SAE的游戏服务器: Server on SAE for RGSS Games 部署在SAE上的简易游戏服务器,为用 RMXP/VX/VA 开发的游戏提供网络服务...

本项目已经关闭服务端已经关闭并且不再重启&#xff0c;后续请访问 RGSOS on Gitlab基于SAE的游戏服务器重写服务端逻辑中……暂时无法正常提供服务功能数据库封装封装了 SAE 上的 Memcached&#xff0c;KVDB 和 Storage 到 SAE_IO 类&#xff0c;并引申到两个子类&#xff1a;…

1090 Highest Price in Supply Chain (25)

A supply chain is a network of retailers&#xff08;零售商&#xff09;, distributors&#xff08;经销商&#xff09;, and suppliers&#xff08;供应商&#xff09;-- everyone involved in moving a product from supplier to customer. Starting from one root suppli…

mysql 列数据显示转成行数据显示_Mysql的列修改成行并显示数据的简单实现

创建测试表&#xff1a;DROP TABLE IF EXISTS test;CREATE TABLE test (year int(11) DEFAULT NULL,month int(11) DEFAULT NULL,amount double DEFAULT NULL) ENGINEInnoDB DEFAULT CHARSETutf8;插入数据&#xff1a;INSERT INTO test VALUES (1991, 1, 1.1);INSERT INTO test…

Android两种常见错误(ANR和FC)解决办法

ANR(Activity Not Respone)(无响应)先介绍下Main线程&#xff08;也称为UI线程、主线程&#xff09;功能: 1.创建UI控件2.更新UI控件状态3.事件处理限制&#xff1a;Main线程不建议有超过5秒的事件出现条件&#xff1a;当用户输入事件5s内没有得到响应&#xff0c;将弹出ANR对话…

mysql命令(command)

连接mysql命令: mysql -h 192.168.1.1 -P 3306 -uuserName -pPassword 显示表的索引: SHOW INDDEX FROM table_name 查看mysql的超时时间&#xff1a;SHOW GLOBAL VARIABLES LIKE %timeout% 备份表结构和表数据&#xff1a;mysqldump -u用户名 -p 库名 表1 表2 > xxx.sql只…

微信5.0登录提示服务器繁忙,iOS集成友盟社会化分享微信无法登录?

iOS集成友盟社会化分享SDK-5.0点击微信登录的时候出现无法获取accessToken的现象&#xff0c;其他如QQ、微博都可以正常登录使用。另外QQ、微博和微信分享都可以正常使用。望各位早日帮我解决或者分析一下。谢谢//微信登录之后的回调- (BOOL)application:(UIApplication *)appl…

sql获取某列出现频次最多的值_业务硬核SQL集锦

戳上方蓝字关注我 这两年学会了跑sql&#xff0c;当时有很多同学帮助我精进了这个技能&#xff0c;现在也写成一个小教程&#xff0c;反馈给大家。适用对象&#xff1a;工作中能接触到sql查询平台的业务同学(例如有数据查询权限的产品与运营同学)适用场景&#xff1a;查询hive&…

void ,NULL与0的区别联系

void ,NULL及0的区别联系 void的详解: void的字面意思是“无类型”或“空类型”&#xff0c;void*则为“无针型指针”&#xff0c;那就意味着void*可以指向任何类型的数据。 众所周知&#xff0c;如果指针p1和p2的类型相同&#xff0c;那么我们可以直接在p1和p2间互相赋值&…

python 2 days

1&#xff0c;格式化输出&#xff0c;%s %d 2&#xff0c;复习昨日讲题 编译型&#xff1a; 将代码一次性全部编译成二进制&#xff0c;然后运行。 优点&#xff1a;执行效率高。 缺点&#xff1a;开发效率低&#xff0c;不能跨平台。 C解释型&#xff1a; 代码…

nginx编译安装与配置使用

第一部分----nginx基本应用源码编译安装nginx1、安装pcre软件包&#xff08;使nginx支持http rewrite模块&#xff09;yum install -y pcre yum install -y pcre-devel2、安装openssl-devel&#xff08;使nginx支持ssl&#xff09;yum install -y openssl-devel3、创建用户ngin…

ubuntu+查看服务器文件夹权限,Ubuntu - 文件夹权限查看与修改

Ubuntu 文件的归属身份有四种&#xff1a;u - 拥有文件的用户(所有者)g - 所有者所在的组群o - 其他人(不是所有者或所有者的组群)a - 每个人或全部(u, g, o)1. 查看文件/文件夹权限ls -l filename # 查看文件权限ls -ld folder # 查看文件夹权限输出结果如&#xff1a;drwxrwx…

mysql dump 1449_跨版本mysqldump恢复报错Errno1449

已经有一套主从mysql,新增两个slave主库Server version: 5.6.22-log MySQL Community Server (GPL)旧从库Server version: 5.6.28-log MySQL Community Server (GPL)新增SLAVE 1&#xff1a; Server version: 5.6.22-log MySQL Community Server (GPL)新增SLAVE 2&#xff1a; …

修复 Xcode 错误 “The identity used to sign the executable is no longer valid”

如图&#xff1a; 解决方法来自&#xff1a;http://stackoverflow.com/questions/7088441/the-identity-used-to-sign-the-executable-is-no-longer-valid/14275197 Restarting Xcode didnt work for me. What fixed it for me was going to Accounts in Xcode (in preferences…

centos设置ip

这里是centos7.vmware安装centos后需要设置ip 1.首先查看虚拟机的网络适配器信息 2.根据信息修改配置文件 vi /etc/sysconfig/network-scripts/ifcfg-ens33 图为修改后的,最初的配置为 BOOTPROTOdhcp ONBOOTno IPADDR,GATEWAY,NETMASK没有进行配置需要根据网络适配器配置手动维…

微信支付+服务器+php代码,php 微信支付企业付款(示例代码)

/*** 格式化参数格式化成url参数*/public function ToUrl($arr){$buff "";foreach ($arr as $k > $v){if($k ! "sign" && $v ! "" && !is_array($v)){$buff . $k . "" . $v . "&";}}$buff trim($b…