sql
tamink2013
这个作者很懒,什么都没留下…
展开
-
sql 行转列问题
可以看这个帖子。http://www.williamsang.com/archives/1508.html原创 2014-08-04 16:35:37 · 97 阅读 · 0 评论 -
(转) 索引
复合索引的优点和注意事项 概念: 单一索引是指索引列为一列的情况,即新建索引的语句只实施在一列上; 用户可以在多个列上建立索引,这种索引叫做复合索引(组合索引); 复合索引在数据库操作期间所需的开销更小,可以代替多个单一索引; 同时有两个概念叫做窄索引和宽索引,窄索引是指索引列为1-2列的索引,宽索引也就是索引列超过2列的索引; ...原创 2017-09-20 14:35:16 · 118 阅读 · 0 评论 -
sql疑问记录
1、查询最大begindate的记录(一个clerkcode有多个begindate值的记录) ,相关子查询?in?: select * from hi_psnjob a where a.begindate in ( select max(b.begindate) from hi_psnjob b where b.clerkcode = a.clerkcode) ...2017-10-31 14:05:18 · 86 阅读 · 0 评论 -
sql where group 注意点
select 列a,聚合函数 from 表名 where 过滤条件 group by 列a having 过滤条件group by 字句也和where条件语句结合在一起使用。当结合在一起时,where在前,group by 在后。即先对select xx from xx的记录集合用where进行筛选,然后再使用group by 对筛选后的结果进行分组 使用having字句对分组后的结果进行筛...原创 2017-11-09 14:56:07 · 176 阅读 · 0 评论 -
一次sql 调优心得
/* TRUNCATE TABLE dbo.temp_new_skc; insert into dbo.temp_new_skc select A.SkuCode,a.Quantity, a.C_date from OmsSale a WHERE CONVERT(varchar(100), C_date, 23) >= dateadd(YY,1,@B_...2017-12-26 11:43:18 · 146 阅读 · 0 评论 -
(转)SQL SERVER 中的 object_id()函数
https://www.cnblogs.com/nimorl/p/4867422.html原创 2017-12-26 12:54:50 · 127 阅读 · 0 评论 -
子查询
之所以会卡是因为子查询的操作会铁定会创建临时表,当然创建内存临时表并不可怕但是当你数据量大了以后,内存临时表的单表大小限制后,临时表会转换为写磁盘形式的物理内存表这两个参数决定了你临时表的大小tmp_table_size max_heap_table_size你可以查看这两个状态状态的变化,看你数据库性语句是否有问题。Created_tmp_disk_tables/Created_tmp_t...原创 2018-01-18 10:28:58 · 92 阅读 · 0 评论 -
Hints
http://czmmiao.iteye.com/blog/1478465https://www.2cto.com/database/201307/226536.htmlhttp://blog.csdn.net/stevendbaguo/article/details/54911680https://www.cnblogs.com/huaxingtianxia/...原创 2018-01-18 11:07:19 · 150 阅读 · 0 评论 -
(精)用表连接取代not in查询
用表连接取代not in查询写了好几个页面,速度都上不去,瓶颈在于SQL查询。太多的表,太多的not in,总是从一大推表和数据中筛选出一点数据。看了很多关于SQL优化的文章,都强烈要求不要太多使用not in查询,最好用表连接来取代它。如:select ID,name from Table_A where ID not in (select ID from Table_B)呵呵,这句是最经...原创 2018-02-09 10:57:18 · 169 阅读 · 0 评论 -
left join (on 和 where条件放置的区别) !!!!
数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。 在使用left jion时,on和where条件的区别如下:1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边...原创 2018-04-10 11:54:17 · 122 阅读 · 0 评论 -
sql写多了,都怀疑了
left join 也是关联,只是会有空,只要关联了就是一条记录,当然可以过滤,可以查、可以过滤。 or 关联后,就形成临时表,对此临时表进行过滤。没毛病 ...原创 2018-08-28 14:13:47 · 164 阅读 · 0 评论 -
left join 终极理解
left join 就是关联,右表多出来不相干 关联不上不要,右边少了以空代替,保证左表全出来,如果右边重复记录,则左表关联上部分也重复。总结就是,左表只会多(重复、因右表重复)不会少,右表关联不上则为空。 1 1 12 2a.id=b.id 左边和右边两个都等,左边就会重复一条记录出来 ...原创 2018-09-06 08:37:34 · 1409 阅读 · 0 评论 -
多个left join 执行流程
select a.cName from table1 a LEFT JOIN table2 b ON a.code=b.code LEFT JOIN table3 c ON a.code=c.code过程是这样的:1, 首先table1左链接table2,得到一个中间结果,该中间结果包括table1的所有行以及table2中与table1匹配条件(a.code=b.code)的行2, 该中间结...原创 2017-06-23 09:08:58 · 2695 阅读 · 0 评论 -
catalog schema
按照SQL标准的解释,在SQL环境下Catalog和Schema都属于抽象概念,可以把它们理解为一个容器或者数据库对象命名空间中的一个层次,主要用来解决命名冲突问题。从概念上说,一个数据库系统包含多个Catalog,每个Catalog又包含多个Schema,而每个Schema又包含多个数据库对象(表、视图、字段等),反过来讲一个数据库对象必然属于一个Schema,而该Schema又必然属于一个C...原创 2016-04-12 15:21:08 · 98 阅读 · 0 评论 -
What Is A Cursor And Why Should You Use A Cursor In Sql?
Cursor in the SQL is the private working area, in fact every time you write a query to fetch data from the database an internal cursor is developed that fetch the data from the database and hold the d...原创 2013-10-09 17:58:20 · 84 阅读 · 0 评论 -
on,where
数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。 在使用left jion时,on和where条件的区别如下:1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返...原创 2016-05-16 16:03:24 · 121 阅读 · 0 评论 -
感 left join 查询结果
left join ,查询结果 记录数量>=左表,记录集合实际上是=左表的(会有重复记录+右表字段)2016-05-17 18:44:54 · 156 阅读 · 0 评论 -
数据库之二进制数据
在使用数据库的时候大多数情况下数值型、字符型和日期类型的变量存储就已经满足了我们很多的需求。但是在某些时候,我们还需要一种类型来存储数据,那就是二进制的数据了。如果需要存储文件,图片或者视频之类的只能使用二进制的数据来存储的东西时,我们就需要知道怎么样来操作数据库中的二进制数据了。 在很多各种数据库中的二进制处理方式不同,数据类型也就不一样,微软的sqlserver中二...原创 2016-07-15 11:46:30 · 1720 阅读 · 0 评论 -
spring 管理多数据源
最近开发一个数据同步的小功能,需要从A主机的Oracle数据库中把数据同步到B主机的Oracle库中。当然能够用dmp脚本或者SQL脚本是最好,但是对于两边异构的表结构来说,直接导入不可行。然后在需要实时同步的情况下用存储过程也不可行了。写一个数据同步的小程序是个不错的选择。使用框架的封装和连接池是必须的,Spring是首选,这里我们同样需要Spring的多数据源连接配置方式。 其实再进...2016-08-19 18:07:36 · 106 阅读 · 0 评论 -
物化视图有三种刷新方式:COMPLETE、FAST和FORCE。
物化视图有三种刷新方式:COMPLETE、FAST和FORCE。完全刷新(COMPLETE)会删除表中所有的记录(如果是单表刷新,可能会采用TRUNCATE的方式),然后根据物化视图中查询语句的定义重新生成物化视图。快速刷新(FAST)采用增量刷新的机制,只将自上次刷新以后对基表进行的所有操作刷新到物化视图中去。采用FORCE方式,Oracle会自动判断是否满足快速刷新的条件,如果满足则进行...原创 2016-10-11 20:59:08 · 5764 阅读 · 0 评论 -
表的同步、hibernate随想
两个相同表(A-》B)之间数据同步方案-- 1.直接删除B表数据,整个插入2.建临时表,记录A表的操作,用字段表示 新增、删除、修改,然后查询临时表,把那些相关操作的 反应到B表3.使用SQL比较两边数据的差异。A表新增的话,如select * from A where not exists (select 1 from B where A.pk=B.pk) ,把这个数据新增到B表。删...2016-10-12 15:11:17 · 128 阅读 · 0 评论 -
SQL 语句的查询结果的的顺序是由哪些因素决定?
ref http://www.zhihu.com/question/19726583 以mysql为例 select * from data ;output:raw1raw2....rawn是什么因素决定了这顺序?(插入时间,物理存储?)补充:没有建索引等其他附加条件------------------------- 1.我想和oracle差不多,按数据...原创 2014-11-22 10:46:36 · 197 阅读 · 0 评论 -
图解SQL的inner join、left join、right join、full outer join、union、union all的区别
对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章,通过文氏图 Venn diagrams 解释了SQL的Join。我觉得清楚易懂,转过来。假设我们有两张表。Table A 是左边的表。Table B 是右边的表。其...原创 2016-01-21 13:17:05 · 77 阅读 · 0 评论 -
left join 过滤条件要另写where
如图,如果想过滤条件必须在后面加where,如果跟着on后面加and ,结果集不会变、达不到过滤目的2017-05-26 09:55:47 · 141 阅读 · 0 评论 -
子查询 和 连接查询谁快
子查询 和 连接查询 可以达到同样的效果 即 相同的结果集,但是谁快谁慢?一般连接查询如果后期添加条件 需要改原来SQL,为了不改原来SQL,我一般会用子查询来做,这样意思比较明确且不动原来sql,但是心里有个疑惑,这样会不会影响性能,经过一番搜索,感觉应该性能应该差不多。 看这个帖子的讨论http://bbs.csdn.net/topics/310125796 写道子查询稍微快...2017-06-08 09:18:52 · 1484 阅读 · 0 评论 -
组合索引的优势
11 那么,如果在firstname、lastname、age这三个列上分别创建单列索引,效果是否和创建一个firstname、lastname、age的多列索引一样呢? 答案是否定的,两者完全不同。当我们执行查询的时候,MySQL只能使用一个索引。如果你有三个单列的索引,MySQL会试图选择一个限制最严格的索引。但是,即使是限制最严格的单列索引,它的限制能力也肯定远远低于firstn...原创 2018-10-15 17:09:38 · 1738 阅读 · 1 评论