
SQL
文章平均质量分 69
Happywuw
学习如逆水行舟,不近则退!
由于目前公司有很不错的学习平台,以及个人笔记平台,暂停博客更新。但也会定期把笔记批量更新到博客。
展开
-
SQL语句练习题
1.关于group by 的题(行转列)create table tmp(rq varchar(10),shengfu nchar(1));insert into tmp(rq, shengfu) values('2005-05-09','胜');insert into tmp (rq, shengfu) values('2005-05-09','胜');insert into t原创 2016-06-29 18:28:18 · 880 阅读 · 0 评论 -
spring集成Redis
工作中遇到业务需求,框架中集成Redis。把redis作为一个基础数据字典来使用。根据业务需求分了5个库,这样就涉及到了redis分库操作及切换的问题。下面是具体的一些代码。spring-reids.xml配置:<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/原创 2017-06-26 15:12:02 · 166 阅读 · 0 评论 -
Spring MVC笔记 使用JdbcTemplate
Spring提供了 JdbcTemplate 来封装数据库jdbc操作细节, 包括: 数据库连接[打开/关闭] ,异常转义 ,SQL执行 ,查询结果的转换,其中体现了 模板模式 的设计模式思想。使用了Spring JdbcTemplate 之后,开发人员只需要完成其中两项编码工作。指定数据库连接参数打开数据库连接声明SQL语句预编译并执行转载 2017-10-13 11:03:30 · 364 阅读 · 0 评论 -
数据库和MySQL相关面试题目
数据库理论1.触发器的作用?触发器是一种特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。2.什么是存储过程?用什么来调用?存储过程是一个预编译的SQL语句,优点是允许模块化转载 2017-10-15 23:39:31 · 506 阅读 · 0 评论 -
谈谈MySQL水平扩展--分库分表
转载:http://www.gpfeng.com/?p=657&utm_source=tuicool14年中换了一份工作,出国游荡了一阵子,目前工作离数据库内核远了点,离业务近了些,业务层面碰到的‘高深’技术问题也少了,旅行后发现人也懒了不少,导致博客都长草了2015开始了,先表态一下目标:我2015年的目标就是搞定2014年那些原定于2013年完成的安排,不为别的,只为兑现我20转载 2017-10-17 15:49:29 · 1459 阅读 · 0 评论 -
Mysql数据库常用分库和分表方式
1 分库1.1 按照功能分库 按照功能进行分库。常见的分成6大库: 1 用户类库:用于保存了用户的相关信息。例如:db_user,db_system,db_company等。 2 业务类库:用于保存主要业务的信息。比如主要业务是笑话,用这个库保存笑话业务。例如:db_joke,db_temp_joke等。 3 内存类库:主要用Mysql的内存引擎。前台的转载 2017-10-17 16:06:56 · 437 阅读 · 0 评论 -
MySQL索引失效的几种情况
1.索引不存储null值更准确的说,单列索引不存储null值,复合索引不存储全为null的值。索引不能存储Null,所以对这列采用is null条件时,因为索引上根本没Null值,不能利用到索引,只能全表扫描。为什么索引列不能存Null值?将索引列值进行建树,其中必然涉及到诸多的比较操作。Null值的特殊性就在于参与的运算大多取值为null。这样的话,nul转载 2017-10-13 11:05:03 · 2303 阅读 · 0 评论 -
MySQL InnoDB 逻辑存储结构
如果创建表时没有显示的定义主键,mysql会按如下方式创建主键:首先判断表中是否有非空的唯一索引,如果有,则该列为主键。如果不符合上述条件,存储引擎会自动创建一个6字节大小的指针。当表中有多个非空的唯一索引,会选择建表时第一个定义的非空唯一索引。注意根据的是定义索引的顺序,不是创建列的顺序。InnoDB逻辑存储结构表空间 tablespace(ibd文件)段 seg转载 2017-12-06 22:43:34 · 1191 阅读 · 0 评论 -
mysql索引的数据结构
索引 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。我们知道,数据库查询是数据库的最主要功能之一。我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化。最基本的查询算法当然是顺序查找(linear search),这种复杂度为O(n)的算法在数据量很大时显然是糟糕的,好在计算机科学的发展提供了很多更优秀的查找算法,例如转载 2017-12-06 23:26:37 · 796 阅读 · 0 评论 -
数据库自增主键可能产生的问题
在MySQL中经常会配置自增长属性的字段作为主键,特别是使用InnoDB存储引擎,因为InnoDB的聚集索引的特性,使用自增长属性的字段当主键性能更好,但是使用自增主键也可能会带来一些问题。举个例子,使用自增主键对数据库做分库分表,可能出现一些诸如主键重复等的问题,或者在数据库导入的时候,可能会因为主键出现一些问题。主要业务表的主键应该配置一个合理的策略,尽量避免自增AUTO_转载 2017-12-06 23:31:39 · 1660 阅读 · 0 评论 -
mysql并发操作引发的一些思考
最近公司项目中用到了关系型数据库mysql,其中会涉及到并发操作,之前也用过mysql,但是只是停在了简单的用上面(老大搭好架子、写好demo,我模仿),趁放假好好看看相关的资料,解决一下我一直以来的疑惑。在网上查阅文章的过程中,我对mysql有了新的认识,对锁、事务等有了了解。感觉要深入理解mysql锁还是需要花费很多时间的,在这里我先浅尝辄止,只记录一下自己的理解。我的疑惑:一、应用程序转载 2018-02-05 11:41:52 · 618 阅读 · 0 评论 -
2018面试——2.Mysql专题
1、MySQL存储引擎知道吧?SQL 的优化说一下?所涉及到的数据结构?数据库索引的实现原理及查询优化2、B-Tree,B+Tree,聚集索引,非聚集索引?B-Tree,B+Tree,聚集索引,非聚集索引3、MySQL的分库分表了解吗?用过吗?分库分表欢迎留言补充,楼主也会逐步完善!...原创 2018-04-25 16:18:43 · 1290 阅读 · 0 评论 -
MySQL—1、数据库索引的实现原理及查询优化
MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。使用索引的目的在于提高查询效率,这篇文章梳理一下索引的实现原理和应用。不同的存储引擎索引实现的数据结构不同MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如B-Tree索引,哈希索引,全文索引等,主要存储引擎有MyISAM、InnoDB、MEMORY和ME...转载 2018-04-26 10:19:53 · 900 阅读 · 0 评论 -
sql优化----不同写法下group by 的影响
今天要对实现这样的一个统计效果的sql进行优化。分析:可以看出此统计是要求针对经销商,车系两个维度对试驾次数和潜客数两个指标进行统计,试驾率是由这两个指标进行计算而得到。1、维度:经销商,车系2、指标:试驾次数,潜客数原版sql如下:分析问题:此sql给人的第一印象就是用了子查询效率低,事实它确实特别慢。而且对于不熟悉业务的人来说想看懂很痛苦。 所以我选择了重原创 2017-04-12 15:56:40 · 6891 阅读 · 0 评论 -
sql优化中遇到的问题
今天在sql优化的时候遇到了一个问题:SELECT COUNT(1)FROM (SELECT a.`namechn` AS na, d.`namechn`, d.`code`, line.name , 0 AS isdrive, SUM(CASE WHEN p.number IS NULL THEN 0 ELSE p.number END) AS poten原创 2017-04-11 18:19:28 · 484 阅读 · 0 评论 -
sql语句优化之一:尽量使用索引避免全表扫描
url:http://lzz7658823.iteye.com/?page=31.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以转载 2017-04-11 15:16:52 · 1341 阅读 · 0 评论 -
mysql错误代码大全
B.1. 服务器错误代码和消息 服务器错误信息来自下述源文件: · 错误消息信息列在share/errmsg.txt文件中。“%d”和“%s”分别代表编号和字符串,显示时,它们将被消息值取代。 · 错误值列在share/errmsg.txt文件中,用于生成include/mysqld_error.h和include/mysqld_ername.h MySQL源文件中的定义。原创 2016-09-11 17:38:05 · 724 阅读 · 0 评论 -
sql语句练习(2)
1.请用一个sql语句得出结果从table1,table2中取出如table3所列格式数据,注意提供的数据及结果不准确,只是作为一个格式向大家请教。如使用存储过程也可以。table1月份mon 部门dep 业绩yj-------------------------------一月份 01 10一月份 02 10一月份原创 2016-09-11 18:19:39 · 2131 阅读 · 0 评论 -
DB2 错误代码大全
sqlcode sqlstate 说明000 00000 SQL语句成功完成01xxx SQL语句成功完成,但是有警告+012 01545 未限定的列名被解释为一个有相互关系的引用+098 01568 动态SQL语句用分号结束+100 02000 没有找到满足SQL语句的行+110 01561 用DATA CAPTURE定义的表的更新操作不能发送到原来的子系统+111转载 2016-08-05 13:31:56 · 1247 阅读 · 0 评论 -
SQL 查询---典型
当需要同时查询两个表,外连接会漏掉数据的时候,需要用0来当占位,最后再合并。select year1,sum(c) c , sum(r) r from (select year(send_time) year1,count(*)as c,0 as r from M_SEND_MESSAGE group by year(send_time) UNIONselect yea原创 2016-09-19 18:33:28 · 431 阅读 · 0 评论 -
DB2效率查询对比
select app.app_NO, app.TRANSFER_ORGAN,app.STATE, t.BACK_DATE,t.FEEDBACK_DATE,t.RECEIVE_DATE,t.RETURN_DATE,Db_num,daly_numfrom App_register app left join (select a.app_no, a.BACK_DATE,a.FEEDBACK_DAT原创 2016-10-08 14:50:44 · 2133 阅读 · 0 评论 -
MYSQL explain详解
explain显示了MySQL如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。先解析一条sql语句,看出现什么内容EXPLAINSELECTs.uid,s.username,s.name,f.email,f.mobile,f.phone,f.postalcode,f.addressFROM uchome_space ASs,uchome_sp转载 2016-11-28 22:55:31 · 371 阅读 · 0 评论 -
MySQL 学习笔记 一
一、数据库简单介绍1、 按照数据库的发展时间顺序,主要出现了以下类型数据库系统:Ø 网状型数据库Ø 层次型数据库Ø 关系型数据库Ø 面向对象数据库上面4中数据库系统中,关系型数据库使用最为广泛。面向对象数据库则是由面向对象语言催生的新型数据库,目前的一些数据库系统,如:SQL Server 2005、Oracle10g等都开始增加面向对象的特性。转载 2016-11-27 18:09:13 · 360 阅读 · 0 评论 -
MySQL 学习笔记 二
Ø function 函数函数的作用比较大,一般多用在select查询语句和where条件语句之后。按照函数返回的结果,可以分为:多行函数和单行函数;所谓的单行函数就是将每条数据进行独立的计算,然后每条数据得到一条结果。如:字符串函数;而多行函数,就是多条记录同时计算,得到最终只有一条结果记录。如:sum、avg等多行函数也称为聚集函数、分组函数,主要用于完成一些统计功能。转载 2016-11-27 18:10:27 · 345 阅读 · 0 评论 -
关系型数据库小结
一、基础术语DML(data manipulation language):如SELECT、UPDATE、INSERT、DELETE,主要用来对数据库里的数据进行操作的语言DDL(data definition language):主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化转载 2016-11-27 18:48:43 · 391 阅读 · 0 评论 -
MySql中游标的定义与使用方式
创建游标首先在MySql中创建一张数据表:[sql] view plain copy CREATE TABLE IF NOT EXISTS `store` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `count`转载 2016-11-27 20:39:42 · 1400 阅读 · 0 评论 -
mySQL索引优化
写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10^4个页面,如果这10^4个页面在磁盘上随机分布,需要进行10^4次I/O,假设磁盘每次I/O时间为10ms(忽略数据传输时间),转载 2017-01-03 10:30:41 · 308 阅读 · 0 评论 -
数据库分库分表
一、 基本思想Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。对于海量数据的数据库,如果是因为表多而数据多,这时候适合使用垂直切分,即把关系紧密(比如同一模块)的表切分出来放在一个服务器上。如果表并不多,但每张表的数据非常多,这时候适合水平切分,即把表的数据按某种规则(比如按ID散列)切分到多个数据库(server)上。转载 2017-02-16 10:10:30 · 834 阅读 · 0 评论 -
MySQL—2、B-Tree,B+Tree,聚集索引,非聚集索引
今天研究下,mysql中的B-tree索引,通过这篇文章你可以了解到,mysql中的btree索引的原理,检索数据的过程,innodb和myisam引擎中btree索引的不同,以及btree索引的好处和限制。B-Tree 索引是 MySQL 数据库中使用最为频繁的索引类型,除了 Archive 存储引擎之外的其他所有的存储引擎都支持 B-Tree 索引。不仅仅在 MySQL 中是如此,实际上在其他...原创 2018-04-26 11:21:08 · 1583 阅读 · 0 评论