数据库
春秋战国程序猿
仓廪实而知礼节,衣食足而知荣辱
展开
-
通过windows命令行dos连接mysql数据库服务器命令
dos连接mysql数据库命令原创 2023-01-15 14:04:06 · 1061 阅读 · 0 评论 -
数据库查询常用关键字JOIN与LEFT JOIN/UNION与UNION ALL/GROUP BY
今天来回顾一下数据库查询中,常用的几个关键字。关注这些细节,对于我们写出高效的SQL语句,还是有帮助的。 1,JOIN 与 LEFT JOINJOIN,等价于INNER JOIN,是强关联。JOIN只查询出左表能够在右表中匹配到记录的行。也就是说,左边的记录,只有在能够匹配到右边中记录的情况下,才会显示。LEFT JOIN,是弱关联。LEFT JOIN会查询出左原创 2017-03-11 15:38:16 · 3129 阅读 · 1 评论 -
(干货)DB2中关于百分号%的转义处理问题
(干货)DB2中关于百分号%的转义处理问题 网上有很多关于DB2转义字符的说明,不过都不是拿来就可以用的。周围的同时遇到这个问题了,然后去网上查了以后,还是解决不了,我很纳闷。于是我也去搜了一下,果然,网上的说法基本上都是这种:select * from table where name like '%\%%' escape '\'; 然而,我们通常都是从前原创 2017-05-06 20:48:08 · 2837 阅读 · 0 评论 -
DB2数据库查询自增长序列的2种方式
前言:虽然SQL有一套公共的标准,但是不同的数据库生产商在实现上还是存在较大差异,以序列为例,如果查询序列,ORACLE和DB2就存在较大差异。这种差异,对于开发人员或者运维人员来说,是很痛苦的。最直接的影响就是,我们每次使用时都要百度或者谷歌一下。-- 首先,我们创建一个名称为SEQUENCE_AUTO_INCREMENT的序列DROP SEQUENCE SEQUEN原创 2017-06-07 11:59:22 · 12112 阅读 · 0 评论 -
关于Execl导入大数据量文件的处理思路(实战经验)
关于Execl导入大数据量文件的处理思路(实战经验)Execl作为微软的早期产品,功能强大的同时,性能也相应的差很多,处理大数据量时尤其明显。最近项目中有一个需求,要求导入人员信息,Execl的数据量大概5000左右,但是会关联其他表,查询出100万级别的数据量,插入到值表。并且这个过程是系统管理人员每月不定期在页面导入的。系统设计的要求是10秒内完成。简单说一下我们的原创 2017-12-16 15:39:35 · 6252 阅读 · 1 评论 -
ORACLE中EXISTS和IN进行子查询的区别(工作原理分析)
今天和大家分享一下SQL中2个常见的关键字:EXISTS和IN。这2个关键字很常见,但是区别是什么呢?EXISTS和IN的共同点是都是用来做子查询的。区别如下:1,EXISTS一般用于相关子查询,IN一般是用于非相关子查询。什么是相关子查询,什么是非相关子查询,大家可以自行百度,这里不再赘述。2,EXISTS适合于外表小而内表大的情况,IN适合于外表大而内表小的情况。这一点对于原创 2018-03-04 16:46:20 · 3747 阅读 · 0 评论 -
Mybatis中isNotNull与isNotEmpty的使用技巧
做开发工作时间长了,会发现,在需求逐步梳理清晰以后,大致的方向已经明确了。此时会进入细节开发环节,是最繁琐,也是决定开发质量的关键阶段。最近遇到了一个生产问题,必填字段的值,清空保存,无法保存成功。 具体业务需求是这样的:客户的基本信息,坐席可以保存,也可以提交后端系统进行审批。1,保存的时候,其实就是一个暂存的功能,只要坐席输入的是合法的值,都要保存入库。2,提交审批的时候会...原创 2018-08-12 10:37:24 · 38275 阅读 · 8 评论 -
redis集群启动流程关键类源码分析
redis集群启动流程关键类(源码版)以Spring集成redis为例来说明,版本是2.8.2。一,RedisProperties解析配置文件中的配置项,这个class上加了一个@ConfigurationProperties注解,指定了prefix为spring.redis,也就是说处理配置文件中前缀为spring.redis的配置项。RedisProperties定...原创 2019-07-18 18:58:11 · 336 阅读 · 0 评论 -
MySQL有哪几种join方式,底层原理是什么?
网上有相关的文章,总结的挺好,这里不再重复码字,这里提几个点。一,Block Nested-Loop join的理解相对来说Block Nested-Loop join是最难理解的。Block Nested-Loop join是如何批量操作的?Block Nested-Loop join为什么能提升性能?Block Nested-Loop join是使用了Buffe...原创 2019-08-08 08:12:37 · 988 阅读 · 0 评论 -
你们项目平时怎么做数据库性能优化的?
这里简单总结一下,常用的几种性能优化方案:1,sql语句优化,基于sql语法层面的优化。2,表连接的优化。3,使用临时表。4,批量代替单条。5,索引。6,分库分表。这里重点说一下以下几点:一,使用临时表Oracle临时表是会话级别或者事务级别的,只对当前会话或者事务可见。每个会话只能查看和修改自己的临时表数据。临时表有哪些使用场景呢?...原创 2019-09-29 15:25:23 · 613 阅读 · 0 评论 -
写高效的SQL语句
SQL优化总结1,where的条件顺序影响查询速度 WHERE子句中的连接顺序:ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前,那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾。2,SELECT * FROM TABLENAME WHERE A = "A" AND 1=1如何优化?3,不要S转载 2017-02-19 17:49:23 · 3898 阅读 · 0 评论 -
使用数据库序列生成主键
一,什么是序列 序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。其主要的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。创建序列需要CREATE SEQUENCE系统权限。序列的创建语法如下: CREATE SEQUENCE 序列名 [INCREMENT BY n转载 2017-02-19 17:29:59 · 9982 阅读 · 0 评论 -
mybatis + DB2数据库常见报错:jdbc type 0 not yet supported
mybatis + DB2数据库常见报错:jdbc type 0 not yet supported。 最近做项目,我也遇到了这个问题,并且多次遇到了,有时候改改这里,动动那里,问题也解决了,但是不搞清楚这个问题的根本原因,还是不放心。我的情况是这样的:进行一个数据库查询操作,会向后台传递一个参数,SQL大致是这样的:SELECT PRODUCT_NA原创 2017-02-19 16:42:54 · 4025 阅读 · 0 评论 -
java基础知识:运算符与、按位与操作讲解
总结一点经验,结合一个实例,和大家分享:5&4 = ? /*答案: * 5&4 = 4 * 解答过程:先把5和4转化成二进制,算出结果(二进制) * 然后把二进制转化成10进制,就是最终的结果。 * * 1,首先转换成2进制,5转化成二进制是0000010原创 2015-12-22 00:06:51 · 1111 阅读 · 0 评论 -
Java向MySQL数据库插入时间类型Date数据时需要注意的问题(二)
关于时间date的类型,该如何定义,我们在数据库中定义为date类型,如下图:我们在实体类中可以这样定义:package com.spring.model;public class Picture_of_user { //图片名 private String picture_name; //图片大小 private int picture_size;原创 2016-01-08 16:52:37 · 5132 阅读 · 0 评论 -
SpringMVC框架中多数据源的配置问题、datasource
多数据源,说白了,就是多数据库。因为我们配置数据源需要指定特定的数据库名称,如下,这是我们经常使用的配置数据源的XML文件内容中的一部分: <!-- <property name="driverClassName" value="com.mysql.jdbc.Driver"> <property原创 2016-01-09 16:10:47 · 15628 阅读 · 5 评论 -
Java向MySQL数据库插入时间类型Date数据时需要注意的问题
MySQL默认的数据类型格式是:yyyy-MM-dd,如:2015-12-30如下图:因此我们在往MySQL数据库中插入数据时,需要先进行格式化。在java中,我们通常这样格式化日期: //生成日期对象 Date current_date = new Date(); //设置日期格式化样式为:y原创 2015-12-26 21:24:56 · 34622 阅读 · 1 评论 -
如何完全的卸载MySQL数据库
如何完全的卸载MySQL数据库MySQL数据库的重新安装是一个麻烦的问题,很难卸除干净,下面是一些详细的 步骤,mark一下,需要的时候可以 查询:1. 在控制面板 -> 管理工具 -> 服务 中 停止MySQL服务2. 卸载MySQL安装程序3. 删除注册表运行->regeditHKEY_LOCAL_MACHINE -> S原创 2016-01-30 17:57:05 · 5432 阅读 · 3 评论 -
深入学习、理解select语句、delete语句以及其他SQL语句
深入理解select语句、SQL语句我们从一个例子出发:删除表中字段的语句:(以mysql5.5数据库为例)1,delete from user as u where u.userid=6;2,delete from user u where u.userid=6;3,delete from user where userid=6;4,delete u.*原创 2016-01-20 21:44:35 · 3557 阅读 · 0 评论 -
Oracle常见错误:ORA-01403 的根本原因和解决方案
Oracle常见错误:ORA-01403 的根本原因和解决方案根本原因:SELECT语句查询出来的结果为空,此时把查询出来的空值赋给2个变量,就出现了上面这个错误。ORA-01403: 未找到任何数据,报这个错误通常都是SELECT INTO 语句查询结果为空的原因。这个报错是我们在使用PL/SQL进行调试时,经常遇到的一个问题。解决方案:查看一下是不是数据的问题,导致查询结果为空。原创 2016-07-20 21:37:45 · 103134 阅读 · 1 评论 -
oracle表分区详解
oracle表分区详解从以下几个方面来整理关于分区表的概念及操作: * 表空间及分区表的概念 * 表分区的具体作用 * 表分区的优缺点 * 表分区的几种类型及操作方法 * 对表分区的维护性操作一,表空间及分区表的概念表空间:是一个或多个数据文件的集合,所有的数据对象都存放在指定的表空间中,但主要存放的是表, 所以称作表空间。转载 2016-09-04 15:19:22 · 1840 阅读 · 0 评论 -
Oracle高级篇之start with关键字的用法
Oracle高级篇之start with关键字的用法一,基本语法SELECT ... FROM + 表名 START WITH + 条件1CONNECT BY PRIOR + 条件2WHERE + 条件3条件1:是根节点的限定语句,当然可以放宽限定条件,以取得多个根节点,也就是多棵树;在连接关系中,除了可以使用转载 2016-11-06 18:26:27 · 34117 阅读 · 0 评论 -
数据库深入学习笔记
------------------------------------------- 分割线 -------------------------------------------数据库深入学习笔记-SQL执行引擎以下面的几个问题,来开始今天的讨论:1,什么是SQL引擎?2,什么是SQL存储引擎?3,SQL引擎的工作原理(工作流程)?4,SQL语句的执行顺序?转载 2016-12-07 17:22:13 · 4773 阅读 · 0 评论 -
一致性哈希算法及其实现(Consistent Hashing)
一致性哈希算法及其实现(Consistent Hashing)一,一致性哈希算法的原理1,一致性哈希算法诞生的背景 技术和业务是相互推动,共同前进的。一致性哈希算法的产生也源于业务的需求。随着业务的增长,一台单机已经不能满足业务的需要,分布式架构应运而生。分布式环境下,多台机器需要协同作业,如果保证数据在分布式环境下的一致性,就成为了亟待解决的问题。一致性哈希算法转载 2016-12-24 17:50:40 · 5487 阅读 · 0 评论 -
MySQL数据库中如何新建一个带参数的存储过程procedure
我们都知道,现在MySQL的版本,可以支持存储过程了。我使用的是MySQL5.5的版本。1,创建存储过程delimiter $create procedure in_out_procedure(in procedure_id int,out count_number int)begin select count(*) into count_number fr原创 2016-01-05 11:59:12 · 10666 阅读 · 1 评论