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

《深入浅出SQL》问答录

而且它也不等于另一个NULL,事实上,两个NULL根本不能放在一起比较。值可以是NULL,但是它不会等于NULL,因为NULL代表未定义的值!...在SET子句中加入更多的column = value组,其间以逗号分隔。 UPDATE可用于更新单一的行多行,一切交给WHERE子句决定。...如果没有ELSE而且列也不符合任何一个WHEN条件,会发生什么事? 在你想更新的列里面不会发生任何改变。 如果只想对部分列套用CASE表达式,应该怎么做呢?...一般而言,查询必须返回一个值,使用IN是例外情况。 所以说,查询可以放在查询里? A:of couse. 据说使用查询能解决的事情,用联接也可以?是这样? A:不然呢?...UNION根据我们在SELECT中指定的列,两张表更多张表的查询结果合并至一个表中。

2.9K50

2-SQL语言中的函数

; INNER可以省略 筛选条件放在where后面,连接条件放在on后面,提高分离性,便于阅读 */ # 等值连接 # 查询部门名与员工名 SELECT last_name,department_name...*,boy.* FROM beauty b CROSS JOIN boys boy; 外连接 查询 含义: 出现在其他语句中的select语句,称为查询内查询 外部出现的查询语句,称为主查外查询...: 标量子查询(结果集只有一行一列) 列子查询(结果集只有一列多行) 行查询(结果集有一行多列) 表查询(结果集一般多行多列) # 查询 /* 含义: 出现在其他语句中的select语句,称为查询内查询...,所以不能用标量子查询(多行多列0行0列都不可以) # 列子查询(多行查询,因为查询结果是一列多行) /* 多行操作符: IN/NOT IN 等于/不等于列表中的任意一个 ANY/SOME...WHERE location_id IN(1400,1700) ); # 行查询(一行多列多行多列) # 查询员工编号最小并且工资最高的员工信息(不一定存在同时满足两个条件的员工)

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

    Merge into的使用详解-你Merge了没有「建议收藏」

    大家好,又见面了,是你们的朋友全栈君。 Merge是一个非常有用的功能,类似于Mysql里的insert into on duplicate key....Oracle在9i引入了merge命令, 通过这个merge你能够在一个SQL语句中一个表同时执行inserts和updates操作....当然是update还是insert是依据于你的指定的条件判断的,Merge into可以实现用B表来更新A表数据,如果A表中没有,则B表的数据插入A表....我们也可以在using后面使用视图或者查询。...UPDATE和INSERT子句可以加WHERE子句 这也是一个功能性的改进,能够符合我们更多的需求,这个where的作用很明显是一个过滤的条件,是我们加入一些额外的条件,对只对满足where条件的进行更新和

    1.3K10

    8个能提升工作效率的SQL好习惯

    么还能保证下一个人能看懂么的存储过程?那么结合公司平时的培训和平时个人工作经验和大家分享一下,希望对大家有帮助。...查询的用法 查询是一个 SELECT 查询,它嵌套在 SELECT、INSERT、UPDATE、DELETE 语句其它查询中。...任何允许使用表达式的地方都可以使用查询,查询可以使我们的编程灵活多样,可以用来实现一些特殊的功能。但是在性能上, 往往一个不合适的查询用法会形成一个性能瓶颈。...BEGIN TRAN UPDATE a SET 字段='' ROLLBACK 作业存储过程一般会加上下面这段,这样检查错误可以放在存储过程,如果执行错误回滚操作,但是如果程序里面已经有了事务回滚...,那么存储过程就不要写事务了,这样会导致事务回滚嵌套降低执行效率,但是我们很多时候可以检查放在存储过程里,这样有利于我们解读这个存储过程,和排错。

    23520

    常用SQL语句和语法汇总

    学习数据库,可以说是每个从事IT行业的必修课。你学不学,它就在那里;你想不想,你都得学。 大一的时候,选了一门名为《Android应用程序开发》的选修课。...记得有次一个同学提问,问他如果报考计算机三级的话,建议报考哪一门?(当时计算机三级一共有5个种类)。那个老师就说建议报考三级数据库技术,因为数据库技术最有前景。...现在是相当的佩服那个老师,他自己从事的Android开发,让学生学数据库。那应该算是第一次接触数据库这种东西,从此对它念念不忘(论一个老师对学生的影响力!)...FROM WHERE ; SQL常用规则2 SQL语句可以使用AS关键字为列设定别名,设定汉字别名时需要使用双引号(’’)括起来 在SELECT语句中可以使用DISTINCT...超级分组记录默认使用NULL作为聚合键 ROLLUP可以同时得出合计和小计 使用GROUPING函数能够简单分辨出原始数据中的NULL和超级分组记录中的NULL 可以CUBE理解为将使用聚合键进行切割的模块堆积成的一个立方体

    3.1K80

    SQL好的写法

    那么还能保证下一个人能看懂么的存储过程?那么结合公司平时的培训和平时个人工作经验和 大家分享一下,希望对大家有帮助。       ...六、查询的用法   查询是一个 SELECT 查询,它嵌套在 SELECT、INSERT、UPDATE、DELETE 语句其它查询中。   ...任何允许使用表达式的地方都可以使用查询,查询可以使我们的编程灵活多样,可以用来实现一些特殊的功能。但是在性能上,往往一个不合适的查询用法会形成一个性能瓶颈。...BEGIN TRAN          UPDATE a SET 字段=''      ROLLBACK  复制代码     作业存储过程一般会加上下面这段,这样检查错误可以放在存储过程,如果执行错误回滚操作...,但是如果程序里面已经有了事务回滚,那么存储过程就不要写事务 了,这样会导致事务回滚嵌套降低执行效率,但是我们很多时候可以检查放在存储过程里,这样有利于我们解读这个存储过程,和排错。

    93520

    SQL养成这8个好习惯是一笔财富

    如果数据量大,人员流动大,那么么还能保证下一段时间系统还能流畅的运行吗?么还能保证下一个人能看懂么的存储过程?那么今天,我们结合平时个人工作经验和大家分享一下,希望对大家有帮助。...6、查询的用法 查询是一个 SELECT 查询,它嵌套在 SELECT、INSERT、UPDATE、DELETE 语句其它查询中。...任何允许使用表达式的地方都可以使用查询,查询可以使我们的编程灵活多样,可以用来实现一些特殊的功能。但是在性能上,往往一个不合适的查询用法会形成一个性能瓶颈。...BEGIN TRAN UPDATE a SET 字段='' ROLLBACK 作业存储过程一般会加上下面这段,这样检查错误可以放在存储过程,如果执行错误回滚操作,但是如果程序里面已经有了事务回滚,那么存储过程就不要写事务了...,这样会导致事务回滚嵌套降低执行效率,但是我们很多时候可以检查放在存储过程里,这样有利于我们解读这个存储过程,和排错。

    75110

    知识点、SQL语句学习及详细总结

    一个查询语句中可以用多个列进行分组。...可以分组操作之前应用的筛选条件,在WHERE子句中指定它们更有效,这样可以减少参与分组的数据行。在HAVING子句中指定的筛选条件应该是那些必须在执行分组操作之后应用的筛选条件。...[...n]    [ELSE else_expression]END input_expression:所计算的表达式,可以一个变量名、字段名、函数查询。...查询 如果一个SELECT语句嵌套在另一个SELECT、INSERT、UPDATEDELETE语句中,则称为查询内层查询;而包含查询的语句称为主查询。...查询通常用于满足下列需求之一: 一个查询分解成一系列的逻辑步骤 提供一个列表作为WHERE子句和IN、EXISTS、ANY、ALL的目标对象 提供由外层查询中每一条记录驱动的查询 查询通常有几种形式

    2K20

    算法工程师-SQL进阶:强大的Case表达式

    别叫我算法工程师,是sql-boy! 相信大家对SQL都非常熟悉了,可能有些小伙伴会有疑问,算法工程师不是跑模型的?还需要学SQL?其实,很有必要!...值在SQL语句中的位置非常灵活,可以放在select、where以及group by等多个地方。 在本题中要注意sql先执行group by,然后最后在执行select。...,在select语句中使用了两个case表达式,第一个case表达式是将所有sex!...先说(1),使用一个case表达式就可以得到两个数的最大值,然后在嵌套一个case表达式就可以得到三个数的最大值。...当case表达式用在having子句中可以对小组设置灵活的过滤逻辑; 当需要自定义排序顺序时,可以在order by中通过使用case表达式来实现; case表达式还可以应用在update中,根据不同的分支条件采取不同的更新策略

    2.3K20

    理解SQL原理SQL调优你必须知道的10条铁律

    我们还能保证下一个人能看懂我们的存储过程?...查询的用法 查询是一个 SELECT 查询,它嵌套在 SELECT、INSERT、UPDATE、DELETE 语句其它查询中。...任何允许使用表达式的地方都可以使用查询,查询可以使我们的编程灵活多样,可以用来实现一些特殊的功能。但是在性能上,往往一个不合适的查询用法会形成一个性能瓶颈。...BEGIN TRAN UPDATE a SET 字段='' ROLLBACK 作业存储过程一般会加上下面这段,这样检查错误可以放在存储过程,如果执行错误回滚操作,但是如果程序里面已经有了事务回滚...,那么存储过程就不要写事务了,这样会导致事务回滚嵌套降低执行效率,但是我们很多时候可以检查放在存储过程里,这样有利于我们解读这个存储过程,和排错。

    1.3K50

    程序员需要了解的十个高级SQL概念

    1.常见表表达式(CTEs) 如果您想要查询查询,那就是CTEs施展身手的时候 - CTEs基本上创建了一个临时表。...请在Where子句中使用查询进行以下查询。...4.使用CASE WHEN枢转数据 您很可能会看到许多要求在陈述时使用CASE WHEN的问题,这只是因为它是一种多功能的概念。如果要根据其他变量分配某个值类,则允许您编写复杂的条件语句。...例如,如果您有一个月列,并且您希望为每个月创建一个单个列,则可以使用语句追溯数据的情况。 示例问题:编写SQL查询以重新格式化表,以便每个月有一个收入列。...让我们来看看一个例子。 示例问题:给定下面的员工表,写出一个SQL查询,了解员工的工资,这些员工比其管理人员工资更多。对于上表来说,Joe是唯一一个比他的经理工资更多的员工。

    1.2K10

    20 个 Laravel Eloquent 必备的实用技巧

    Eloquent ORM 看起来是一个简单的机制,但是在底层,有很多半隐藏的函数和鲜为人知的方式来实现更多功能。在这篇文章中,将演示几个小技巧。 1....先执行 X 方法,X 方法执行不成功则执行 Y 方法 Eloquent 有相当一部分函数可以两个方法结合在一起使用, 例如 『 请先执行 X 方法, X 方法执行不成功则执行 Y 方法 』。...带条件与排序的关联关系 定义关联关系的一般方式: public function users() { return $this->hasMany('App\User'); } 你知道?...Eloquent::when() -- 不再使用 if-else 很多人都喜欢使用"if-else"来写查询条件,像这样: if (request('filter_by') == 'likes') {...(['b' => 2, 'c' => 3]); 很确定还有更多隐藏的秘诀,但我希望至少上面的其中一些对你来说是新的。

    1.1K40

    【MySQL 系列】MySQL 语句篇_DQL 语句

    如果有两条更多条语句,则需要使用分号 “;” 将它们分开,以便 MySQL 单独执行每条语句。...AND , OR 和 NOT 逻辑运算符一个多个表达式的组合;④ 除了用在 SELECT 语句之外, WHERE 子句还可以用在 UPDATE 和 DELETE 语句中,用来指定要更新删除的行。...使用括号更改计算顺序;⑦ WHERE 子句中的 OR 连接两个比较条件,过滤那些至少满足其中一个比较条件的记录行。...查询经常用在 WHERE 子句中。 例如,前面提到的操作符 EXISTS 就属于查询的范畴。...最后,还存在一种在 FROM 中使用查询的方式,即当一个查询位于 FORM 子句中时,这个子查询被称为派生表。

    17910

    Hive SQL这几个优化思路你必须要知道!

    优化的核心思想是: 减少数据量(例如分区、列剪裁) 避免数据倾斜(例如加参数、Key打散) 避免全表扫描(例如on添加加上分区等) 减少job数(例如相同的on条件的join放在一起作为一个任务) HQL...on的条件没有过滤null值的情况,如果两个数据表存在大批量null值的情况,会造成数据倾斜。...with as是将语句中用到的查询事先提取出来(类似临时表),使整个查询当中的所有模块都可以调用该查询结果。使用with as可以避免Hive对不同部分的相同查询进行重复计算。...大小表的join 写有Join操作的查询语句时有一条原则:应该将条目少的表/查询放在Join操作符的左边。...小表放在左边和右边已经没有明显区别。不过在做join的过程中通过小表在前可以适当的减少数据量,提高效率。 5.

    1.3K20

    Hive SQL优化思路

    优化的核心思想是: 减少数据量(例如分区、列剪裁) 避免数据倾斜(例如加参数、Key打散) 避免全表扫描(例如on添加加上分区等) 减少job数(例如相同的on条件的join放在一起作为一个任务) HQL...on的条件没有过滤null值的情况,如果两个数据表存在大批量null值的情况,会造成数据倾斜。...with as是将语句中用到的查询事先提取出来(类似临时表),使整个查询当中的所有模块都可以调用该查询结果。使用with as可以避免Hive对不同部分的相同查询进行重复计算。...大小表的join 写有Join操作的查询语句时有一条原则:应该将条目少的表/查询放在Join操作符的左边。...小表放在左边和右边已经没有明显区别。不过在做join的过程中通过小表在前可以适当的减少数据量,提高效率。 5.

    2K20
    领券