sql查询报错: An aggregate may not appear in the WHERE clause unless it is in asubquery contained in a HAVING clause or a select list. group 语句where子句使用Max函数或SUM等函数时会提示报错,需要将引where子句换成having 如: SELECT SUM(M1.InvoiceTotal)-SUM(M1.AmountApplied) as PastDueA…
106. Examine the data inthe LIST_PRICE and MIN_PRICE columns of the PRODUCTS table: LIST_PRICE MIN_PRICE 10000 8000 20000 30000 30000 Which two expressionsgive the same output? (Choose two.) A.    NVL(NULLIF(list_price, min_price), 0) B. NVL(COALESCE…
案例梳理时间:2013-9-25 写在前面的话: 在慢查优化1和2里都反复强调过 explain 的重要性,但有时候肉眼看不出 explain 结果如何指导优化,这时候还需要有一些其他基础知识的佐助,甚至需要了解 MySQL 实现原理,如子查询慢查优化. 看到 SQL 执行计划中 select_type 字段中出现“DEPENDENT SUBQUERY”时,要打起精神了! ——MySQL 的子查询为什么有时候很糟糕—— 引子:这样的子查询为什么这么慢? 下面的例子是一个慢查,线上执行时间相当夸张…
select distinct b.sale_count from product_sale b where b.pro_id in (select a.pro_id from product a LIMIT 0,2); 错误描述[Err] 1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery' 只要在加一层就可以解决问题了 select distinct b.sale_count f…
61. Evaluate the following SQL statements that are issued in the given order:CREATE TABLE emp(emp_no NUMBER(2) CONSTRAINT emp_emp_no_pk PRIMARY KEY,ename VARCHAR2(15),salary NUMBER(8,2),mgr_no NUMBER(2) CONSTRAINT emp_mgr_fk REFERENCES emp);ALTER TAB…
10 Easy Steps to a Complete Understanding of SQL 原文地址:http://tech.pro/tutorial/1555/10-easy-steps-to-a-complete-understanding-of-sql Too many programmers think SQL is a bit of a beast. It is one of the few declarative languages out there, and as such…
原文出处:http://tech.pro/tutorial/1555/10-easy-steps-to-a-complete-understanding-of-sql(已经失效,现在收集如下) Too many programmers think SQL is a bit of a beast. It is one of the few declarative languages out there, and as such, behaves in an entirely different w…
转自 http://blog.csdn.net/tianlesoftware/article/details/5995051 之前整理的一篇文章: ORACLE SEQUENCE 介绍 http://blog.csdn.net/tianlesoftware/archive/2009/10/30/4745039.aspx 之前整理的一篇文章. 那是还是写blog初期的作品. 2009年10月份的. 转眼一年,写Blog 也比以前成熟了很多. 一. 理论知识 先看一个创建Sequence的语句: S…
SQL return codes that are preceded by a minus sign (-) indicate that the SQL statement execution was unsuccessful. IBM DB2 SQL error code list 官方文档地址:https://www.ibm.com/support/knowledgecenter/SSEPEK_10.0.0/codes/src/tpc/db2z_n.html -007STATEMENT CO…
我的MYSQL学习心得(十六) 优化 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(六) 函数 我的MYSQL学习心得(七) 查询 我的MYSQL学习心得(八) 插入 更新 删除 我的MYSQL学习心得(九) 索引 我的MYSQL学习心得(十) 自定义存储过程和函数 我的MYSQL学习心得(十一) 视图 我的MYS…
原文地址:https://dev.mysql.com/doc/refman/5.7/en/explain-output.html 9.8.2 EXPLAIN Output Format The EXPLAIN statement provides information about the execution plan for a SELECT statement. EXPLAIN returns a row of information for each table used in the S…
数据类型 日期时间类型 DATE(日期) DATE 数据类型由年.月.日信息组成,表示一个日期值. DATA 类型的默认格式为‘YYYY-MM-DD’. YYYY 表示年, MM 表示月而 DD 表示日.时间值的范围从 0001-01-01 至 9999-12-31. 数据类型扩展 除了内置的SQL数据类型,在SQLScript里用户可以自定义一些表类型的数据类型 标准数据类型 SQLScript类型系统是基于SQL-92类型系统的,它支持以下基础数据类型: Numeric types: TIN…
mysql性能的检查和调优方法 Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看SQL语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好的优化语句. Explain语法:explain select … from … [where ...] 例如:explain select * from news; 输出:+----+-------------+-------+-------+-------------…
转载:http://chenzehe.iteye.com/blog/1682081 MySQL可以通过EXPLAIN或DESC来查看并分析SQL语句的执行情况,如下需要计算2006年所有公司的销售额,需要关联sales表和company表,并且对money字段做求和操作,相应SQL如下: Sql代码   EXPLAIN SELECT SUM(money) FROM sales s,company c WHERE s.company_id=c.id AND s.year=2006 \G; ****…
给出两个表,A和B,A和B表的数据量, 当A小于B时,用exists select * from A where exists (select * from B where A.id=B.id) exists的实现,相当于外表循环,每次循环对内表进行查询? for i in A for j in B if j.id == i.id then .... 相反,如果A大于B的时候,则用in select * from A where id in (select id from B) 这种在逻辑上类似…
1. 使用批量插入最先想到如下的插入语句 insert into a (id,name) values('','') ,('','') 但是 oracle 并不支持这种写法 然后查询得知可以使用如下写法 insert all into a(id,name) values('','') into a(id,name) values('','') (注:可以一次插入一个表也可以多个表) 但是这种方式有一种限制,就是 行数乘以列数不能大于1000(我没有验证),而且这种方式据说效率不高(我没有验证)…
本文内容摘自MySQL5.6官方文档,主要选取了在实践过程中所用到的部分文字解释,力求只摘录重点,快速学会使用MySQL,本文所贴代码地方就是我亲自练习过的代码,凡本文没有练习过的代码都没有贴在此处,如果读者想自己尝试,可以查看官方文档,文中给出了原官方文档的对应链接以供查阅. 本文地址:http://www.cnblogs.com/yhLinux/p/4019386.html http://dev.mysql.com/doc/refman/5.6/en/tutorial.htmlThis ch…
序言 之前写到MySQL对表的增删改查(查询最为重要)后,就感觉MySQL就差不多学完了,没有想继续学下去的心态了,原因可能是由于别人的影响,觉得对于MySQL来说,知道了一些复杂的查询,就够了,但是我认为,不管有没有用,现在学着不懂的东西,说明就是自己薄弱的地方,多学才能比别人更强 --WH 一.什么是索引?为什么要建立索引? 索引用于快速找出在某个列中有一特定值的行,不使用索引,MySQL必须从第一条记录开始读完整个表,直到找出相关的行,表越大,查询数据所花费的时间就越多,如果表中查询的列有…
MySql优化的一般步骤 1.通过show status 命令了解各种sql的执行效率 SHOW STATUS提供msyql服务器的状态信息 一般情况下,我们只需要了解以”Com”开头的指令 show session status like 'Com%':显示当前的连接的统计结果 show global status like 'Com%' :显示自数据库上次启动至今的统计结果 注:默认是session级别的 其中Com_XXX表示XXX语句所执行的次数. 重点注意:Com_select,Com…
WITH RECURSIVE and MySQL If you have been using certain DBMSs, or reading recent versions of the SQL standard, you are probably aware of the so-called “WITH clause” of SQL. Some call it Subquery Factoring. Others call it Common Table Expression. A fo…
前言 有一段时间没有写博客了,整天都在忙,上班,录制课程,恰巧最近一段时间比较清闲,打算弄弄MYSQL数据库. 关于MySQL数据库,这里就不做过多的介绍,开源.免费等特性深受各个互联网行业喜爱,尤其在某些大型电商应用之后,更是将其推崇至极. 前面有一段时间我写过SQL Server数据库的一个调优系列,有兴趣的可以关注下. 从本篇起,我将开始分析关于MySQL数据库的一系列的调优内容,同样作为开篇,先就在MySQL调优中所最常用的查询计划进行解析,力图做好基础的掌握,夯实基本功!而后再谈谈整体…
1,当只要一行数据时使用 LIMIT 1如果明确只取一条数据,要加上limit 1; 2,避免 SELECT *,根据需要获取字段应该养成一个需要什么就取什么的好的习惯. 3,使用 ENUM 而不是 VARCHARENUM 类型是非常快和紧凑的.在实际上,其保存的是 TINYINT,但其外表上显示为字符串.这样一来,用这个字段来做一些选项列表变得相当的完美.如果你有一个字段,比如“性别”,“国家”,“民族”,“状态”或“部门”,你知道这些字段的取值是有限而且固定的,那么,你应该使用 ENUM 而…
今天使用 insert into select 时出现了这个异常,感觉很诡异,去metalink查了下资料,找出了错误原因,记录下来. SQL> CREATE TABLE test_baser01( ID NUMBER NOT NULL, NAME ), age NUMBER, sex NUMBER, comments ) ); 表已创建. SQL> CREATE SEQUENCE test_baser01_s; 序列已创建. SQL> INSERT INTO Test_Baser01…
1.explain分析sql语句 例如: EXPLAIN )  ORDER BY bi.`publish_time`  返回结果: 而今天检查的不是这条sql,远比这条复杂,不过也能反映情况了. (1)使用视图导致sql在执行过程中需要用中间表,就是Using temporary. 因为视图无法使用索引,这也导致性能会比较低效. (2)当有order by出现时,而且排序字段没有添加索引,那就会导致Using filesort,导致磁盘的文件排序. (3)而因为uam_view_unit_acc…
如何查找MySQL中查询慢的SQL语句 更多 如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那些执行效率较低的SQL 语句,用--log-slow-queries[=file_name]选项启动时,mysqld 会写一个包含所有执行时间超过long_query_time 秒的SQL语句的日志文件,通过查看这个日志文件定位效率较低的SQL .下面介绍MySQL中如何查询慢的SQL语句 一.MySQL数据库有几个配置选项可以帮助我们及时捕获低效S…
转自:http://blog.163.com/mig3719@126/blog/static/285720652010950825538/ 6. 从关系角度理解SQL 6.1. 关系和表 众所周知,我们目前所用的数据库,通常都是关系数据库.关系自然在其中处于关键位置.初学数据库原理的人可能会很困惑关系和表是什么联系,如果没有清楚的理解,很可能会认为关系这个概念没有实际意义,只会引起混淆.其实这两组概念只是由于理论界与技术界的着重点不同.前者需要用一个专业的.没有歧义的概念来进行理论探讨,后者则希…
mysql优化(三)–explain分析sql语句执行效率 mushu 发布于 11个月前 (06-04) 分类:Mysql 阅读(651) 评论(0) Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看SQL语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好的优化语句. Explain语法:explain select … from … [where …] 例如:explain select * from…
commands : show sys connect sys as sysdba or connect system as sysdba logout or disc clear screen or cle screen (utlsample.sql  —> unlock scott tables.sql  —> all tables data.sql  —> add data into tables) connect scott/tiger start C:\utlsample.sq…
SQL查询语句(SELECT)进阶分组函数(Group Functions):对多行进行操作,并为每一组给出一个结果. AVG([DISTINCT|ALL] expression) 平均值COUNT ({ * | [DISTINCT|ALL] expression}) 含有非NULL的行数MAX ([DISTINCT|ALL] expression) 最大值MIN ([DISTINCT|ALL] expression) 最小值STDDEV ([DISTINCT|ALL] expression)…
最近看主管优化了一个HINT相关的查询 借此机会学习下HINT 参考Notes: Note 129385 - Database hints in Open SQL http://www.stechno.net/sap-notes.html?view=sapnote&id=129385 Note 150037 - Database hints in Open SQL for DB6 (DB2 for LUW) http://www.stechno.net/sap-notes.html?view=s…