数据库
来了就走下去
生活不止有远方,还有代码
展开
-
mysql数据备份与恢复实践(逻辑备份mysqldump)
备份备份有两种类型,全量备份、增量备份全量备份mysqldump -uxxx -pxxx --single-transaction --flush-logs --master-data=2 --all-databases > /var/lib/mysql/backup_20220407_1002.sql参数解释:--single-transaction: 使用一致读取并保证 mysqldump 看到的数据不会改变(其它客户端可能在mysqldump执行期间执行变更)--flush-log原创 2022-04-07 12:02:58 · 1344 阅读 · 0 评论 -
Oracle处理以,隔开存储的数据
以,隔开的字符串。我们需要管理这个字符串,使其中包含某个测点标识的数据去掉,你会如何做呢(思考一会)?一开始想到的是字符串替换,后面发现这种方式不好,有异常情况发生(某个测点标识包含另一个测点标识时会发生异常),而且要考虑的情况比较多。这种方式不行,那更好的方式是什么?从数据存储的结构上来看,我们最好的存储方式是一个测点标识一条记录,这样就可以区分开了,既然这样我们如何将数据分割开来呢原创 2017-06-24 00:33:22 · 1411 阅读 · 0 评论 -
解决自增id不连续的问题
在mysql中设置自增id,然后通过某些非确定性的语句进行数据的插入时,会对自增id的值造成影响,为了解决这个问题,可以简单的通过ALERT TABLE tableName AUTO_INCREMENT = 1;重置自增的值,但这个操作非常耗时,如果要求不高,可以不解决原创 2016-10-16 23:07:54 · 10248 阅读 · 1 评论 -
sql优化-使用索引
项目中使用了大量的sql,对于查询sql,如果没有使用索引会对查询速度造成很大的影响,例如如下sqlSELECT a.name,b.id FROM TableA a JOIN TableB b ON a.id = b.other_id WHERE a.name = 'test' AND b.pin = '123' AND a.state = '1'如果没有对表TableA使用索引,原创 2016-10-11 21:31:18 · 493 阅读 · 0 评论 -
自定义id自增的一种方式-辅助表
对于id自增的实现,数据库提供其自增策略,首先我们需要明白为什么需要自增id,我觉得有以下几个原因:1、id的管理变得简单,由数据库进行维护2、id具有唯一性,满足主键的定义,通常作为主键使用明白了自增id的好处,那么我们如何自定义id自增呢?下面实现的方法中使用到了辅助表: id_help表结构如下t原创 2016-10-10 21:36:07 · 2651 阅读 · 0 评论 -
Spring+Ibatis多数据源问题
最后使用到Spring+Ibatis多数据源,但使用过程中发生了用户访问错乱的现象,具体表现为:使用数据源B的用户去访问数据源A的表,导致拒绝访问。这个问题,经过多次尝试及网上搜索,发现问题所在:当一个事务发现SqlSession已存在的时候,则不会去创建新的SqlSession,所以导致使用数据源B的用户去访问数据源A的表,知道原因后,但具体怎么解决还是没有什么头绪,想着在Spring AO原创 2016-10-09 22:03:07 · 948 阅读 · 0 评论 -
mysql如何进行以,分割的字符串的拆分
现有如下需求:需要将字符串1,2,3,4,5,6,7拆分成1234567分析:为了完成上述功能,在mysql中提供了一些字符串操作的函数,其中SUBSTRING_INDEX(str, delim, count)str: 要处理的字符串delim: 分割符count: 计数 如果为正数,则从左开始数,如果为负数,则从右开始数原创 2016-10-09 21:37:57 · 136399 阅读 · 9 评论 -
ibatis连表查询出关联的所有数据
场景如下:业务A中有多个表: T1,,T2,,T3,,T4。其中T1对T2 是1对n的关系,T2对T3是1对n的关系,T3对T4是1对1的关系现在需要查询出T1及所有关联的数据,java bean描述如下:public class T1 { //...... private List lsT2;}public class T2{ //....... priva原创 2016-09-06 22:24:34 · 1777 阅读 · 0 评论 -
多个关联表的批量插入实践
之前接触到的都是单表的批量插入,这没什么问题,但现在是多个表的一个批量插入。例如表A、表B,其中表B关联表A,现在的要求是插入数据到表A、表B中,因为存在外键的关联,所以必须表A先有主键,才能插入外键到表B,这就存在一个寻找刚插入的表A的主键问题,你们觉得有什么方法可以解决呢?这里的做法是:在表A中设置一个字段:rownum,记录当前插入数据的数目,先插入表A,因为当前rownum可以原创 2016-08-26 19:34:28 · 7060 阅读 · 1 评论 -
使用SQL语句实现分组的第一天
最近有用到sql对某些信息进行分组(ps:其实一开始我是使用java代码先实现分组,然后再往表里插数据的,但老大不太认可,所以改用sql语句分组)因为本身sql的功底比较差,所以写不出什么东西,于是老大亲自出马,写了一些sql语句给我,然后我对这些语句分析了一下,总结如下:1. 使用的是存储过程,过程中使用到了游标,定义格式: DECLARE 游标名 COURSE FOR select_原创 2016-08-24 22:04:33 · 997 阅读 · 0 评论 -
ibatis数据表和JavaBean映射的问题
设计了一个数据表,里面有个字段为updateuser_id,但我存储的时候并没有给其设置值,所以值为null,然后在Java中定义了一个Bean,声明updateuser_id对应的属性为updateUserId,类型为int,,在xml中配置当我使用到这个映射结果集时,因为java中的类型为int,不能给其赋值为null,所以这里会产生错误解决方法:1. 在数据库中存储该信息2.原创 2016-08-30 19:43:52 · 1415 阅读 · 0 评论 -
关系数据库查询优化的初次体验
最近一直在看关系数据库系统知识,主要还是从概念上去了解关系数据库的一些知识,之前没有系统的学习这方面的知识,现在重新去构建这块的知识体系。学习到关系查询优化这块的知识,通过对书本上的分析,了解到查询优化这块的知识,起初在我的知识里,我认为RDBMS会优化查询这块的内容,即认为所有人写的查询被RDBMS优化后都是一种执行情况。但事实上并不是这样,RDBMS有多种执行策略,但这种策略知识在已有的查询语原创 2016-08-02 20:12:59 · 801 阅读 · 0 评论 -
数据库系统的组成
一、数据库系统(DataBase System, DBS)的组成广义上讲,DBS就是计算机系统中引入数据库后的构成,有下面四部分:1数据库:一个或多个数据库 数据库的四要素:用户数据、元数据、索引和应用元数据2软件操作系统:支持DBMS的运行数据库管理系统(DataBase Management System): 操纵和管理数据库的大型软件系统,是数据库系统的核转载 2016-07-20 22:45:36 · 7990 阅读 · 0 评论 -
DBS的结构
三级模式(外模式,模式,内模式)两级映像(外模式/模式,模式/内模式映像) 一、DBS的三级模式结构1 模式(Schema):又称逻辑模式,DB的全局逻辑结构。即DB中全体数据的逻辑结构和特征的描述。说明:1) 模式只涉及到型的描述,不涉及具体的值(实例),反映的是数据的结构及其联系2) 模式不涉及物理存储细节和硬件环境,也与应用程序无关3)转载 2016-07-20 22:24:14 · 6298 阅读 · 0 评论 -
数据模型
数据处理的抽象过程(涉及三个领域): 抽象 转换现实世界 =====> 信息世界 =====> 机器世界转载 2016-07-17 21:20:16 · 1226 阅读 · 0 评论 -
关系模型的基本概念
层次、网状数据库是面向专业人员的,使用很不方便,程序员必须经过良好的培训,多所使用的系统有深入的了解才能用好系统。 关系数据库就是要解决这一问题,使它成为面向用户的系统。 关系数据库是应用数学方法来解决数据的,它具有结构简单、理论基础坚实、数据独立性高以及提供非过程性语言等优点。1.关系的数学定义1. 域(Domain):值的集合,它们具有相同的数据类型,语转载 2016-07-27 23:08:18 · 8290 阅读 · 0 评论 -
数据库系统概述
一、基本概念数据:是信息的表现形式和载体,可用文字、图像等多种形式表示,经数字化处理后可存入计算机。数据库(DB):按一定的数据模型组织、描述和存储在计算机内的、有组织的、可共享的数据集合。数据库管理系统(DBMS):位于用户和操作系统之间的一层数据管理软件。主要功能包括: 数据定义功能(DDL),用户通过它定义数据对象。 数据操纵功能(DM转载 2016-07-17 11:44:52 · 611 阅读 · 0 评论