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

《SQL开发样式指南》,让你的SQL代码更加规范

不要把代码堆再一起或移除自然语言中的空格。 Spaces 空格 用空格使根关键字都结束在同一列上。在代码中形成一个从上到下的“川流”,这样帮助读者快速扫描代码并将关键字和实现细节分开。...川流在排版时应该避免,但是对书写SQL语句是有帮助的。 注意WHERE和FROM等关键字,都右对齐,而真实的列名都左对齐。...将多个列组成一个逻辑组时的逗号后。 将代码分隔成相关联的多个部分,帮助提高大段代码的可读性。 让所有的关键字右对齐,让所有的值左对齐,在查询语句中间留出一个空隙。这样能提高速读代码的速读。...Subqueries 子查询 子查询应该在川流的右侧对齐并使用其他查询相同的样式。有时候将右括号单独置于一行并同与它配对的左括号对齐是有意义的——尤其是当存在嵌套子查询的时候。...有道理的话,把所有相关的语句对齐。比如,把所有NOT NULL定义对齐到同一列。虽然这样的做法有些慢,但是能提高可读性。

35910

115道MySQL面试题(含答案),从简单到深入!

唯一键(Unique Key)也确保列的值唯一,但一个表可以有多个唯一键,并且唯一键的列可以包含NULL值。7. 什么是视图,它有什么优点?视图是基于SQL语句的结果集的可视化表现。...如何在MySQL中创建和使用触发器?触发器是一种数据库对象,它在特定事件(如INSERT、UPDATE、DELETE)发生时自动执行一段SQL语句。...子查询可以是标量子查询(返回单一值)、行子查询(返回一行多列)或表子查询(返回一个完整的结果集)。MySQL可能会将某些类型的子查询优化为更有效的结构,如将IN子查询转换为JOIN操作。63....MySQL如何处理NULL值,对性能有什么影响?MySQL中的NULL表示缺失或未知的数据。处理NULL值时需要注意: - 索引通常不包括NULL值,因此包含NULL值的列上的查询可能不会使用索引。...锁升级是指在某些条件下,MySQL自动将低级别的锁(如行锁)升级为高级别的锁(如表锁)。这通常发生在MySQL认为行锁的开销过大时,例如,当事务涉及大量行时。

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

    数据库索引

    哈系索引的工作方式是将列的值作为索引的键值(key),和键值相对应实际的值(value)是指向该表中相应行的指针。...另一种索引是位图索引(bitmap index), 这类索引适合放在包含布尔值(true 和 false)的列上,但是这些值(表示true或false的值)的许多实例-基本上都是选择性(selectivity...假设我们在 Employee_Name这一列上创建一个B-Tree索引。这意味着当我们用之前的SQL查找姓名是‘Jesus’的雇员时,不需要再扫描全表。...如何在使用SQL创建索引: 之前的例子中,在Employee_Name列上创建索引的SQL如下: CREATE INDEX name_index ON Employee (Employee_Name)...位于同一盘块中的所有数据都能被一次性全部读取出来。而磁盘IO代价主要花费在查找时间Ts上。因此我们应该尽量将相关信息存放在同一盘块,同一磁道中。

    1K00

    SQL编写规范

    ,大小写一致 2、关键字单占一行,如select、from、where、and、group by、order by等 3、注意行缩进和对齐,建议语句中的关键字右对齐 4、使用空格,SQL语句内的算术运算符...7、select后面的每一列(列数目大于1)单独占一行,where后面的每个条件(条件数大于1)单独占一行。 8、update set子句内容每一项单独占一行,无缩进。...9、insert子句内容每个表字段单独占一行,无缩进;values每一项单独占一行,无缩进 。...二、书写优化性能建议 1、关键SQL语句,尽量简化,不要包含太多的嵌套,避免执行计划错误的可能,原则上不能超过2层。...如必须使用排序操作,尽量建立在有索引的列上。 12、索引的建立应慎重考虑,不是越多越好。索引可以提高相应的select的效率,但同时也降低了INSERT、UPDATE 的效率。

    1.6K30

    前端学习笔记之CSS浮动浅析

    小菜认为,无论多么复杂的布局,其基本出发点均是:“如何在一行显示多个div元素”。        显然标准流已经无法满足需求,这就要用到浮动。             ...,那么A的相对垂直位置不会改变,也就是说A的顶部总是和上一个元素的底部对齐。...靠近页面边缘的一端是前,远离页面边缘的一端是后。 ?        为了帮助读者理解,再举几个例子。        假如我们把div2、div3、div4都设置成左浮动,效果如下: ?       ...依然是根据结论,div2、div4浮动,脱离了标准流,因此div3将会自动上移,与div1组成标准流。div2发现上一个元素div1是标准流中的元素,因此div2相对垂直位置不变,与div1底部对齐。...div4发现上一个元素div3是标准流中的元素,因此div4的顶部和div3的底部对齐,并且总是成立的,因为从图中可以看出,div3上移后,div4也跟着上移,div4总是保证自己的顶部和上一个元素div3

    1K30

    低代码可视化报表-积木报表,JimuReport v1.5.2版本发布

    1086存储过程列名相同,取别名出错issues/I59V3Z行号函数row()不好使issues/I5AF6Y升级1.5.0后导出PDF, 出现图片遮挡边框线条issues/I5BIB3报表下钻时返回上一页下拉树参数回显有问题...min,在一列上面有null时,最小值永远是0issues/I5CD7F钻取报表添加条件后点击进入超链接报错issues/1093钻取联动条件框取值问题issues/1089针对数据为空和异常,返回不同的提示...采用SpringBoot的脚手架项目,都可以快速集成Web 版设计器,类似于excel操作风格,通过拖拽完成报表设计通过SQL、API等方式,将数据源与模板绑定。...,设计炫酷大屏可设计各种类型的单据、大屏,如出入库单、销售单、财务报表、合同、监控大屏、旅游数据大屏等#系统截图报表设计器(专业一流 数据可视化,解决各类报表难题)图片报表设计器(完全在线设计,简单易用...│ └─支持复制大屏数据和样式│ │ └─支持大屏预览、分享│ │ └─支持系统自动保存数据,同时支持手动恢复数据│ │ └─支持设置大屏密码│ │ └─支持对组件图层的删除、组合、上移

    68630

    CSS

    无论多么复杂的布局,其基本出发点均是:“如何在一行显示多个div元素”。浮动可以理解为让某个div元素脱离标准流,漂浮在标准流之上,和标准流不是一个层次。    ...靠近页面边缘的一端是前,远离页面边缘的一端是后。 为了帮助读者理解,再举几个例子。 ?...依然是根据结论,div2、div4浮动,脱离了标准流,因此div3将会自动上移,与div1组成标准流。div2发现上一个元素div1是标准流中的元素,因此div2相对垂直位置不变,与div1底部对齐。...div4发现上一个元素div3是标准流中的元素,因此div4的顶部和div3的底部对齐,并且总是成立的,因为从图中可以看出,div3上移后,div4也跟着上移,div4总是保证自己的顶部和上一个元素div3...div4发现上一个元素div3是标准流中的元素,因此div4的顶部和div3的底部对齐,并且总是成立的,因为从图中可以看出,div3上移后,div4也跟着上移,div4总是保证自己的顶部和上一个元素div3

    2K30

    CSS 浮动 (二)

    如何让多个块级盒子(div)水平排列成一行? 比较难,虽然转换为行内块元素可以实现一行显示,但是他们之间会有大的空白缝隙,很难控制。\ 如何实现两个盒子的左右对齐?...因为浮动可以改变元素标 签默认的排列方式 浮动最典型的应用:可以让多个块级元素一行内排列显示。 网页布局第一准则:多个块级元素纵向排列找标准流,多个块级元素横向排列找浮动 3 什么是浮动?...浮动元素会脱离标准流(脱标) 浮动的元素会一行内显示并且元素顶部对齐 浮动的元素会具有行内块元素的特性. 5 浮动的使用 浮动元素经常和标准流父级搭配使用 为了约束浮动元素位置, 我们网页布局一般采取的策略是...: 先用标准流的父元素排列上下位置, 之后内部子元素采取浮动排列左右位置....父级有了高度,就不会影响下面的标准流了 解决办法: 有四种 简单介绍前两种 第一种: 语法: 选择器{clear:属性值;} 添加到 会上移的标准流盒子位置 代码 额外标签法(隔墙法)*

    14310

    【DB笔试面试634】在Oracle中,什么是直方图(Histogram)?直方图的使用场合有哪些?

    构造直方图最主要的原因就是帮助优化器在表中数据严重偏斜时做出更好的规划。例如,表中的某个列上,其中的某个值占据了数据行的80%(数据分布倾斜),相关的索引就可能无法帮助减少满足查询所需的I/O数量。...这时应该使用直方图来帮助优化器来修正执行路径。(注意:若查询不引用该列,则在该列上创建直方图没有意义)。 (2)当列值导致不正确的判断时,这种情况通常会发生在多表连接时。...例如,假设有一个五张表的连接操作,其目标SQL最终结果集只有10行。Oracle将会以一种使第一个连接的结果集(集合基数)尽可能小的方式将表连接起来。...为了使中间结果最小化,优化器尝试在SQL执行的分析阶段评估每个结果集的集合基数。在偏差的列上拥有直方图将会极大地帮助优化器作出正确的决策。...如优化器对中间结果集的大小作出不正确的判断,则它可能会选择一种未达到最优化的表连接方法。因此向该列添加直方图经常会向优化器提供使用最佳连接方法所需的信息。

    1.6K50

    数据库查询优化

    如果唯一性索引建立在表的A列和B列上,并且表中存在一条记录的A,B值为(123,null),SQLSERVER将不接受下一条具有相同A,B值(123,null)的记录插入。     ...但有时还必须得使用临时表,如先从存储大量数据的永久表中提取符全条件的存放到临时表,然后在临时表上执行操作。如果是直接在存储大量数据的永久表上执行操作(如:统计、循环等),其性能将大打折扣。...长久以来,大家在争论是查询视图速度快还是直接查询快,本人也不敢轻易下结论,因此作了多次试验,其结果是:基于视图查询,性能确实不会比直接写查询语句快,对于简单的查询,最多是在同一水平上。...例如,通过网络发送一个存储过程调用,而不是发送500行的TSQL将更快,资源使用更少。当每次执行SQL时,都会执行解析SQL语句、估算索引的利用率、绑定变量、读数据块等等工作。...只要有可能,就应该选择一个数据最整齐、最紧凑的数据列(如整数类型的数据列)来创建索引。允许有重复的列存在。 * 复合索引:如果在两上以上的列上创建的索引,则称为复合索引。

    4.3K20

    【数据库设计和SQL基础语法】--连接与联接--内连接和外连接的概念

    一、引言 1.1 SQL连接的基本概念 SQL连接是一种在关系型数据库中使用的操作,用于将两个或多个表中的行关联起来。...语法: 连接的语法取决于使用的数据库系统,但一般来说,连接通常在SQL查询的FROM子句中使用,并包括关键字如 INNER JOIN、LEFT JOIN、RIGHT JOIN 等。...内连接基于连接条件匹配的原则,只返回两个表之间匹配的行,而不包括任何在其中一个表中没有匹配的行。...通过选择左、右或全外连接,可以根据需求保留相应的表的所有行。 处理数据不一致性: 当数据不一致时,外连接可以帮助发现并处理这些不一致性。...以下是一些技巧,可以帮助你避免一些常见的连接错误: 确保连接条件的正确性: 确保连接条件中使用的列确实存在于连接的两个表中,并且数据类型相匹配。连接条件应该基于共同的列,如主键和外键。

    82610

    源码资本押宝微信企业号第三方服务商

    5月22日,微信企业号首推案例合作商,畅移(上海)信息科技有限公司宣布已获得了来自源码资本的Pre-A轮投资,据悉本轮投资估值为一亿元人民币。...作为投资了趣分期、PP租车、一亩田等TO C业务的源码资本而言,这一次进军TO B的企业级服务市场,尤其是投资基于腾讯微信企业号研发和运营的第三方服务商,原因何在?...组委会评定的获奖理由之一就是将传统CRM与微信全面升级打通。而哈根达斯获得的荣誉和成绩,都和畅移信息密切相关。...胡瑛说,这也是畅移想要为中国的传统企业转型提供的,一些实实在在的帮助。...他也希望,能有更多的技术精英和运营高手加盟畅移信息,大家一起来做大这个蛋糕,一起来帮助中国传统企业体验移动互联网“贴地飞行”的快感。

    832100

    ORACLE不能使用索引的原因分析

    假设表emp的deptno列上有索引,表dept的列deptno上无索引,WHERE语句有 emp.deptno=dept.deptno条件。...如将字符型数据与数值型数据比较,ORACLE会自动将字符型用to_number()函数进行转换,从而导致第六种现象的发生。   第八,是否为表和相关的索引搜集足够的统计数据。...但我们考虑另一种情况,如果一百万数据行实际不是在4种deptno值间平均分配,其中有99万行对应着值10,5000行对应值 20,3000行对应值30,2000行对应值40。...如果索引列值可以是空值,在SQL语句中那些需要返回NULL值的操作,将不会用到索引,如COUNT(*),而是用全表扫描。这是因为索引中存储值不能为全空。   ...第十二,看PL/SQL语句中是否有用到bind变量。由于数据库不知道bind变量具体是什么值,在做非相等连接时,如“”,“like”等。

    1.2K40

    SQL调优思路

    然而,在某些情况下,为了提高查询效率,我们可能会采取适当的反范式策略,比如将某些经常一起查询的字段冗余存储在同一个表中,以减少表之间的连接操作。选择正确的数据类型对于优化数据库性能同样重要。...使用这种方式的前提是对表建立一个索引,在列上创建了索引之后,查找数据时可以直接根据该列上的索引找到对应记录行的位置,从而快捷地查找到数据。...注意: 建立索引后, 查询速度不一定会变快,例如, 你在teacher表中建立了关于id的索引, 如果你按照name查询, 那么查询速度也不会变快,查询得用到你建立的索引sql语句优化避免开头模糊查询:...减少IN和NOT IN的使用:虽然IN运算符在某些情况下可以使用索引,但如果列表过长或与NULL值一起使用,它可能会导致性能下降。...避免NULL值判断:查询中的NULL值判断(如IS NULL或IS NOT NULL)通常会导致索引失效,因为索引不存储NULL值。

    17910

    java面试(3)SQL优化

    任何在Order by语句的非索引项或者有计算表达式都将降低查询速度 应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如select id...应尽可能的避免更新 clustered 索引数据列,因为 clustered 索引数据列的顺序就是表记录的物理存储顺序,一旦该列值改变将导致整个表记录的顺序的调整,会耗费相当大的资源。...语句用大写的;因为oracle总是先解析sql语句,把小写的字母转换成大写的再执行 避免在索引列上使用计算:如果索引列是函数的一部分,优化器将不使用索引而使用全表扫描....;在特定情况下, 使用索引也许会比全表扫描慢, 但这是同一个数量级上的区别. 而通常情况下,使用索引比全表扫描要块几倍乃至几千倍!...不要给类似“性别”列创建索引(即整个列的值只有一两种,十几种的) ,像这种情况的列,一般不会走索引,即便在列上创建了索引,因为这种情况全表扫描还要快于利用索引,优化器会选择性的选择走全表扫描,比如一个列只有四种值

    3.2K20

    全面解读curl团队的C语言代码规范

    命名 缩进 注释 长行 大括号 'else' 在下一行 括号前不加空格 使用布尔条件 条件中不要赋值 新块在新行上 运算符周围加空格 返回值不加括号 sizeof 参数加括号 列对齐 平台相关代码 不要...大括号 在 if/while/do/for 表达式中,我们将开放大括号写在与关键字同一行,然后将闭合大括号设置在与初始关键字相同缩进级别的同一行。...就像这样: while(1) { /* 永远循环 */ } 使用布尔条件 在 if/while 条件中,我们更喜欢测试条件值,如布尔值与 TRUE 或 FALSE、指针与 NULL 或 !...ptr) return NULL; 新块在新行上 永远不会在同一行上写多个语句,即使是短的 if() 条件也不例外。...如果一个连续行是表达式或子表达式的一部分,那么你应该在适当的列上对齐,以便能够清楚地知道它是语句的哪一部分。运算符不应该起始于连续行。在其他情况下,遵循 2 个空格的缩进指南。

    18710

    Vim命令使用说明

    如果是终端中,则会打开netrw的文件浏览窗口; 如果是gvim,则会打开一个图形界面的浏览窗口。 实际上:browse后可以跟任何编辑文档的命令,如sp等。...,浏览文件系统; :Vex – 垂直分割一个窗口,浏览文件系统; 光标的移动 基本移动 h或退格: 左移一个字符; l或空格: 右移一个字符; j: 下移一行; k: 上移一行; gj: 移动到一段内的下一行...fc: 把光标移到同一行的下一个c字符处 Fc: 把光标移到同一行的上一个c字符处 tc: 把光标移到同一行的下一个c字符前 Tc: 把光标移到同一行的上一个c字符后 ;: 配合f & t使用,重复一次...n|: 把光标移到递n列上。 nG: 到文件第n行。 :n 移动到第n行。 :$ 移动到最后一行。 H: 把光标移到屏幕最顶端一行。 M: 把光标移到屏幕中间一行。.../pattern/+number: 将光标停在包含pattern的行后面第number行上。 /pattern/-number: 将光标停在包含pattern的行前面第number行上。

    2.6K11

    【SQL进阶】03.执行计划之旅1 - 初探

    (1)帮助分析 当我们想要去分析SQL语句存在很慢时,需要有一个分析工具帮助我们分析SQL语句中哪些地方存在性能问题,而这个分析工具就是执行计划,看懂执行计划就能知道哪些地方有性能问题,然后结合自己已有的...如果出现表扫描操作,则证明这个表上一定没有聚集索引。 关于索引查找的那些事: 假设[列1]上有一个单列索引,可以使用这个索引查找下面这些谓词:   1.[列1] = 1.23   2....[myOrder] WHERE [customer] = 'ddd' 下面是执行计划: customer列上面没有索引,SQL Server需要读取myOrder表的每一行来判断customer='...--SELECT查询需要返回id列,使用非聚集索引扫描找到了符合过滤条件id=2的索引分支,在找到的索引分支上拿到id列的值。 SELECT [id] FROM [Test].[dbo]....--由于customer列上没有索引,所以需要进行扫描来找到符合customer='ddd'的行。 --只要有聚集索引,则扫描就是聚集索引扫描。聚集索引和表扫描的性能基本上一样。

    96810

    多维存储的SQL和对象使用(二)

    多维存储的SQL和对象使用(二) 索引 持久化类可以定义一个或多个索引;其他数据结构用于提高操作(如排序或条件搜索)的效率。InterSystems SQL在执行查询时使用这些索引。...标准索引的存储结构 标准索引将一个或多个属性值的有序集与包含属性的对象的对象ID值相关联。...默认情况下,第一个下标是索引名;这允许将多个索引存储在同一全局中,而不会发生冲突。 第二个下标包含整理后的数据值。在这种情况下,使用默认的SQLUPPER排序函数对数据进行排序。...例如,要找到State等于“MA”、Product等于“HAT”的所有行,SQL引擎可以简单地将适当的位串与逻辑and组合在一起。...除了这些索引之外,系统还维护一个额外的索引,称为“区段索引”,对于存在的每一行包含1,对于不存在的行(如已删除的行)包含0。 这用于某些操作,如否定。

    72920

    【SQL进阶】03.执行计划之旅1 - 初探

    (1)帮助分析 当我们想要去分析SQL语句存在很慢时,需要有一个分析工具帮助我们分析SQL语句中哪些地方存在性能问题,而这个分析工具就是执行计划,看懂执行计划就能知道哪些地方有性能问题,然后结合自己已有的...如果出现表扫描操作,则证明这个表上一定没有聚集索引。 关于索引查找的那些事: 假设[列1]上有一个单列索引,可以使用这个索引查找下面这些谓词:   1.[列1] = 1.23   2....[myOrder] WHERE [customer] = 'ddd' 下面是执行计划: customer列上面没有索引,SQL Server需要读取myOrder表的每一行来判断customer='...--SELECT查询需要返回id列,使用非聚集索引扫描找到了符合过滤条件id=2的索引分支,在找到的索引分支上拿到id列的值。 SELECT [id] FROM [Test].[dbo]....--由于customer列上没有索引,所以需要进行扫描来找到符合customer='ddd'的行。 --只要有聚集索引,则扫描就是聚集索引扫描。聚集索引和表扫描的性能基本上一样。

    1.3K70
    领券