年终小结之搜房网面试题(二)

            花了好久才把博客给弄好,想把博客写的顺自己心的真是很难呢。

        安排好了,如果是代码量很多的话,就一般在csdn上发表,如果是一般的总结,就是在网易博客上面来发表。当然如果是吐槽的话,嘿嘿嘿,那就想在哪写就在哪写咯。。。。

        好了,接着昨天晚上的题目:

        2、Union all与union的区别?Truncate与delete的区别?Having如何使用?

        (1)SQL UNION 和 UNION ALL 操作符

               SQL UNION操作符

              UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

               使用UNION的三个条件,所有的SELECT语句都必须有相同数量的列,相对应的列也必须拥有相似的数据类型,而且,所有的数据的列的顺序都必须是相同的。

               SQL UNION 语法

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
              注释: 默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。

               SQL UNION ALL 语法

SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2
              另外,UNION结果集中的列名与SELECT语句中的第一个列名相同。

             例子我就不写了,在W3C的网站上已经写的很清楚了,我就直接说说直接的区别吧。

             UNION无法列出查询所有的结果,即它将会把所有相同的项进行合并,只显示一个结果;

             UNION ALL会列出所有的结果,不论这个结果是否会重复;

         (2)Delete与truncate的区别

          Delete table_name 删除"表格记录"会把操作记录在日志中,可以通过事务回滚来恢复删除的数据

          truncate table table_name删除"表格记录"不可恢复,需要注意的是,truncate table命令将快速删除数据表中的所有记录,但保留数据表结构。 
          最直观的是:

           1.Truncate table 是非常快的;

           2.Truncate 后的自增字段从头开始计数了,而delete的仍保留原来的最大数值。


       delete 语句是数据库操作语言(dml),这个操作会放到rollback segement 中,事务提交之后才生效;如果有相应的 trigger,执行的时候将被触发。

        truncate、drop 是数据库定义语言(ddl),操作立即生效,原数据不放到 rollback segment 中,不能回滚,操作不触发 trigger。

        (3)having如何使用

            where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤分组,条件中不能包含聚组函数,使用where条件显示特定的行。

           having 子句的作用是筛选满足条件的组,即在分组之后过滤分组,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。

                having 子句被限制子已经在SELECT语句中定义的列和聚合表达式上。通常,你需要通过在HAVING子句中重复聚合函数表达式来引用聚合值,就如你在SELECT语句中做的那样。例如:

                   
SELECT A COUNT(B) FROM TABLE GROUP BY A HAVING COUNT(B)>2

    一个问题一个文章,由此看出功底十分的不扎实,得继续好好学习啊。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值