首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQL编写规范

这是我参与「掘金日新计划 · 8 月更文挑战」的第19天,点击查看活动详情 >> [SQL编写规范] 一、书写规范 二、书写优化性能建议 oracle数据库开发优化建议 一、书写规范 1、sql编写时...,大小写一致 2、关键字单占一行,如select、from、where、and、group by、order by等 3、注意行缩进和对齐,建议语句中的关键字右对齐 4、使用空格,SQL语句内的算术运算符...5、对较为复杂的sql语句加上注释,说明算法、功能。 注释风格:注释单独成行、放在语句前面。 单行注释:-- 多行注释:/* */ 6、多表连接时,使用表的别名来引用列。...二、书写优化性能建议 1、关键SQL语句,尽量简化,不要包含太多的嵌套,避免执行计划错误的可能,原则上不能超过2层。...7、SQL语句要绑定变量实现SQL语句的共享,禁止使用常量 8、尽量少用表之间的嵌套连接。

1.6K30

编写高性能SQL

在编写SQL语句时我们应清楚优化器根据何种原则来删除索引,这有助于写出高性能之SQL语句。    下面就某些SQL语句的where子句编写中需要注意的问题作详细介绍。...在这些where子句中,即使某些列存在索引,但是由于编写了劣质的SQL,系统在运行该SQL语句时也不能使用该索引,而同样使用全表扫描,这就造成了响应速度之极大降低。  1....当采用下面这种SQL语句来编写,Oracle系统就可以采用基于last_name创建的索引。    遇到下面这种情况又如何处理呢?...Order by语句 ORDER BY语句决定了Oracle如何将返回的查询结果排序。Order by语句对要排序的列没有什么特别的限制,也可以将函数加入列中(象联接或者附加等)。...我相信绝大多数人会使用第一种格式,因为它比较容易编写,而实际上第二种格式要远比第一种格式的效率高。在Oracle中可以几乎将所有的IN操作符子查询改写为使用EXISTS的子查询。

2.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何编写SQL查询

    译自 How to Write SQL Queries,作者 Gerald Venzl。 SQL 是一种类似英语的声明式领域语言,用于查询、分析和操作数据。...正因为如此,以及几乎可以将 SQL 语句读作英语句子,因此 SQL 通常被视为用于分析数据的最佳高级声明式编程语言之一,因为它具有 易于学习的语法。...SQL 具有不同的语言元素,在高级别上可以分为 查询和数据操作。SQL 查询使用 SELECT 语句,而用于数据操作的 SQL 使用 INSERT、UPDATE、DELETE 和 MERGE 语句。...本文将分解 SQL 查询语言的结构,而本系列的第二部分将描述 DML。 定义 SQL 查询 SQL 查询可能是 SQL 中最常用的操作,因为它们允许用户从一个或多个表中检索和分析数据。...要编写一个将两个表联接到一个结果中的查询,请使用 JOIN 子句。

    13010

    如何编写复杂sql

    经常有人问我那非常复杂的sql是怎么写出来的,我一直不知道该怎么回答。 因为虽然我写这样的sql很顺手,可是我却不知道怎么告诉别人怎么写。...有的人可能学习的快点,有的人可能学习的慢点,这个的确跟每个人有关,但只要经过有规律的练习,我觉得还是能够很快的写出符合要求的sql的。我也一直认为,不知道怎么写是因为没有找到一套行之有效的方法。...在复杂的sql中,比较有代表性的就是报表的sql,这里我们举一个简单的例子,套用凯恩教授的话,进行简单的分解: 假设有一张保险的报表,需要出如下数据(人是家庭成员数): 产品线 保险单数量...从报表结构上看 需要列出来的东西比上面的sql出来的字段要多很多。...整个过程是一个化繁为简,再由简单堆砌为复杂的过程。

    5.5K100

    使用 NineData 高效编写 SQL

    ;作为与数据库交互如此重要的SQL,如何准确、高效的编写正确的SQL语句得以运行,很大程度上将与研发效率直接挂钩。...保存SQL:一键带入SQL窗口所有的SQL内容,您只需输入一个名字以便于后续识别、区分使用即可保存。...查看SQL:您可快速查看保存过的所有SQL脚本,可选择需要使用的SQL语句,点击“插入”即可将完整的SQL内容带入SQL窗口内;也可以点击SQL文本或操作中的编辑,进入编辑页面调整SQL信息进行保存。...工作现场恢复虽然有了“我的SQL”难免还是会有些浏览器关闭等场景,没来得及主动保存SQL输入框的SQL?...综上,通过SQL智能提示、我的SQL、工作现场保存与恢复、执行历史这几个功能,您可以轻松书写SQL进行数据库的相关交互操作,也可有效的保存SQL以便快速复用。

    40660

    再见!Mybatis,你好!JDBCTemplate

    使用sql并不比hql和JPQL困难,查询速度快,可以灵活使用任意复杂的查询只要数据库支持。...但据说Ebean不排斥SQL,可以直接用SQL查询,也可以用类似JOOQ的DSL方式在代码中构造SQL语句(还是JPQL语句?),但没用过Ebean,所以具体细节不清楚。...QueryDSL有很多版本,但用得多的是QueryDSL JPA,可以帮助开发人员编写JPQL语句,如前所述,JPQL语句有很多局限不如SQL灵活高效。...后来的JOOQ和Ebean,基本上继承了QueryDSL的思路,Ebean基本上还是JPA风格的ORM框架,虽然也支持SQL,但不清楚其DSL特性是否支持SQL语句编写,在官网上看到的例子都是用于构造JPQL...对于JOOQ之类的DSL风格框架,最终会被render为参数化的sql,天生免疫sql注入攻击。Ebean也支持DSL方式编程,也同样免疫sql注入攻击。

    3.9K10

    再见 MyBatis!我选择 JDBCTemplate!

    使用sql并不比hql和JPQL困难,查询速度快,可以灵活使用任意复杂的查询只要数据库支持。...但据说Ebean不排斥SQL,可以直接用SQL查询,也可以用类似JOOQ的DSL方式在代码中构造SQL语句(还是JPQL语句?),但没用过Ebean,所以具体细节不清楚。...QueryDSL有很多版本,但用得多的是QueryDSL JPA,可以帮助开发人员编写JPQL语句,如前所述,JPQL语句有很多局限不如SQL灵活高效。...后来的JOOQ和Ebean,基本上继承了QueryDSL的思路,Ebean基本上还是JPA风格的ORM框架,虽然也支持SQL,但不清楚其DSL特性是否支持SQL语句编写,在官网上看到的例子都是用于构造JPQL...对于JOOQ之类的DSL风格框架,最终会被render为参数化的sql,天生免疫sql注入攻击。Ebean也支持DSL方式编程,也同样免疫sql注入攻击。

    2.8K40

    如何将SQL语句进行自动翻译

    如何将SQL语句进行自动翻译 这里我们利用SQL-to-Text Generation with Graph-to-Sequence Model一文, 给大家简单介绍一下如何对SQL语句进行自动翻译 首先我们来谈谈这个动机..., 我觉得最大的动机可能是为了让非技术人员可以了解SQL语句的意义, 进而提出来一种解决方案, 对SQL语句进行自动化的翻译....图结构 故, 给出这么一个框架: 首先, 我们有SQL语句, 作为输入 将SQL语句转换成一个有向图 再通过Graph2Seq模型, 将有向图翻译出来 利用每个点的k跳个邻居节点进行点嵌入的编码 利用所有点的点嵌入生成全局的嵌入..., 创建一个SELECT节点和一个a节点, 注意到每一个节点都是有一个文本属性, 我们直接将其文本属性赋值为其名字....注意到可能会有一些聚集选项, 比如你可能是COUNT, MAX这样的, 我们直接创建一个节点连上相应的列节点, 文本属性为相应的聚集名称.

    3K20

    放弃MyBatis!我选择 JDBCTemplate!

    使用sql并不比hql和JPQL困难,查询速度快,可以灵活使用任意复杂的查询只要数据库支持。...但据说Ebean不排斥SQL,可以直接用SQL查询,也可以用类似JOOQ的DSL方式在代码中构造SQL语句(还是JPQL语句?),但没用过Ebean,所以具体细节不清楚。...QueryDSL有很多版本,但用得多的是QueryDSL JPA,可以帮助开发人员编写JPQL语句,如前所述,JPQL语句有很多局限不如SQL灵活高效。...后来的JOOQ和Ebean,基本上继承了QueryDSL的思路,Ebean基本上还是JPA风格的ORM框架,虽然也支持SQL,但不清楚其DSL特性是否支持SQL语句编写,在官网上看到的例子都是用于构造JPQL...对于JOOQ之类的DSL风格框架,最终会被render为参数化的sql,天生免疫sql注入攻击。Ebean也支持DSL方式编程,也同样免疫sql注入攻击。

    15610

    放弃 MyBatis、JPA,我最终选择了 JDBC Template!真香!!

    使用sql并不比hql和JPQL困难,查询速度快,可以灵活使用任意复杂的查询只要数据库支持。...但据说Ebean不排斥SQL,可以直接用SQL查询,也可以用类似JOOQ的DSL方式在代码中构造SQL语句(还是JPQL语句?),但没用过Ebean,所以具体细节不清楚。...QueryDSL有很多版本,但用得多的是QueryDSL JPA,可以帮助开发人员编写JPQL语句,如前所述,JPQL语句有很多局限不如SQL灵活高效。...后来的JOOQ和Ebean,基本上继承了QueryDSL的思路,Ebean基本上还是JPA风格的ORM框架,虽然也支持SQL,但不清楚其DSL特性是否支持SQL语句编写,在官网上看到的例子都是用于构造JPQL...对于JOOQ之类的DSL风格框架,最终会被render为参数化的sql,天生免疫sql注入攻击。Ebean也支持DSL方式编程,也同样免疫sql注入攻击。

    3.4K10

    另一种思考:为什么不选JPA、MyBatis,而选择JDBCTemplate?

    使用sql并不比hql和JPQL困难,查询速度快,可以灵活使用任意复杂的查询只要数据库支持。...但据说Ebean不排斥SQL,可以直接用SQL查询,也可以用类似JOOQ的DSL方式在代码中构造SQL语句(还是JPQL语句?),但没用过Ebean,所以具体细节不清楚。...QueryDSL有很多版本,但用得多的是QueryDSL JPA,可以帮助开发人员编写JPQL语句,如前所述,JPQL语句有很多局限不如SQL灵活高效。...后来的JOOQ和Ebean,基本上继承了QueryDSL的思路,Ebean基本上还是JPA风格的ORM框架,虽然也支持SQL,但不清楚其DSL特性是否支持SQL语句编写,在官网上看到的例子都是用于构造JPQL...对于JOOQ之类的DSL风格框架,最终会被render为参数化的sql,天生免疫sql注入攻击。Ebean也支持DSL方式编程,也同样免疫sql注入攻击。

    2.6K20

    编写SQL查询的最佳方法

    SQL查询也是如此。构建查询的方式和编写查询的方式对向开发人员传达你的意图有很大帮助。当我看到来自多个开发人员的电子邮件上的SQL查询时,我可以看到他们的写作风格有很大的不同。...在这篇文章中,我将向你展示我在过去尝试过的几种风格,它们的优缺点,以及我认为编写SQL查询的最佳方法。...= d.dept_id where d.dept_name = 'finance' -- and e.emp_name like '%A%'; add e.salary > 5000 如果你喜欢关键字为大写...,也可以编写如下所示的SQL查询,规则是相同的,只是关键字是大写字母。...image.png 这就是如何编写可读且更易于维护的SQL查询。可以自由地就你对这种缩进或SQL查询样式的看法发表意见。

    1.7K11

    使用XSD编写具有智能提示的XML文件(以SQL-MAP脚本为实例)

    SQL-MAP是PDF.NET(PWMIS数据开发框架)具有特色的开发技术,它可以将SQL语句映射成DAL代码,而且能够做到无需IDAL和DalFactory自动切换数据库到另外一个数据库系统,...比如SqlServer切换到Oralcle,有关SQL-MAP的规范请看这里,为什么要使用这种技术,请看“抽象SQL(参数化)查询 ”。    ...从上面的规范看到,要手写一个SQL-MAP文件还是比较复杂,虽然框架提供了SQL-MAP配置文件管理器,但它主要适用于新手使用,用起来效率不是很高,这个时候就需要有一个可以只能提示XML文件编写的东西了...整个XSD文件的编写要注意的也就这么多,编写起来还是比较简单的。 有了这个XSD文件,在建立的Sql-Map配置文件的 标签中,加入这个XSD的使用声明,就能够看到智能提示的效果了。...-- 在下面敲入尖括号,就能够出现当前节点区域内的应该编写的内容,来试试吧 --> 有了这个SqlMap.config文件,就能够使用代码生成器自动生成DAL代码了。

    1.4K80
    领券