将数据库某种类型的字段更新为另一种类型_张占岭-编程思维

有时,我们可能会遇到这样的情况,当我们数据表的float类型精度不够时,可能需要把它统一调整成decimal或者money,而这时你一个一个去修改可能会崩溃,因为你无法从几千张表里确实找到所有的float类型的字段,而这时我们就需要自动的,批量的去处理它们。 实现思路:从系统表中查询所有用户建立的表,然后查询指定类型的所有字段,最后使用alter table alter column去更新这个字

数据库~dotnetcore连接mysql插入中文失败_张占岭-编程思维

到目录 在dotnetcore里,连接mysql数据,插入中文时出现无法识别,并提示插入失败的情况,分析后得知它是编码问题,即数据库编码问题,你的中文在数据表里无法被识别! 解决方法(一) 进行mysql控制台 mysql -u root -p 执行下面语句即可 set character_set_client = utf8; set character_set_server = utf8;

知其所以然~数据库索引_张占岭-编程思维

数据库索引的特点: 避免进行数据库全表的扫描,大多数情况,只需要扫描较少的索引页和数据页,而不是查询所有数据页。而且对于非聚集索引,有时不需要访问数据页即可得到数据。 聚集索引可以避免数据插入操作,集中于表的最后一个数据页面。 在某些情况下,索引可以避免排序操作。 数据库索引与数据结构 上文说过,二叉树、红黑树等数据结构也可以用来实现索引,但是文件系统及数据库系统普遍采用B-/+Tree作为

数据库~mysql派生表注意的几点~关于百万数据的慢查询问题_张占岭-编程思维

基础概念 派生表是从SELECT语句返回的虚拟表。派生表类似于临时表,但是在SELECT语句中使用派生表比临时表简单得多,因为它不需要创建临时表的步骤。 术语:*派生表*和子查询通常可互换使用。当SELECT语句的FROM子句中使用独立子查询时,我们将其称为派生表。 以下说明了使用派生表的查询: 请注意,独立子查询是一个子查询,可独立于包含该语句的执行语句!与子查询不同,派生表必须具有别名

数据库~mysql里的explain说明_张占岭-编程思维

对于mysql的执行计划可以在select前添加Explain来实现,它可以告诉我们你的语句性能如何。 下面是对explain的具体说明,也都是官方的,以后进行参考。 id SELECT识别符。这是SELECT的查询序列号 select_type SELECT类型,可以为以下任何一种: SIMPLE:简单SELECT(不使用UNION或子查询) PRIMARY:最外面的SELECT

数据库~大叔通过脚本生成poco实体_张占岭-编程思维

今天在做开发时,需要把表映射成实体,又没有EF这种工具,就从网上下了一个工具,但使用时觉得太重了,所以就自己写了一个,基于mysql的。 功能:输入表名,得到这个表的poco实体 SELECT COLUMN_TYPE, CONCAT( 'public ', CASE WHEN LEFT (COLUMN_TYPE, 3) = 'int' T

mysql数据库相关知识_水三丫-编程思维

数据库相关知识 1、数据库的简单介绍 数据库是一个按数据结构来存储和管理数据的计算机软件系统 。 数据管理技术发展的三个阶段 人工管理阶段(20世纪50年代中期以前) 文件系统阶段(20世纪50年代后期至60年代中期) 文件系统的三个缺陷 数据冗余性 数据的不一致性 数据联系弱 数据库阶段(20世纪60年代后至今) 数据技术中的几个名词: 数据库:Data Base ,简称D

java连接数据库从入门到入土_水三丫-编程思维

Java连接数据库 一、最原始的连接数据库 是没有导入任何数据源的;只导入了一个数据库驱动:mysql-connector-java-8.0.27.jar 首先是编写db.proterties文件 driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/shop?useUnicode=true&characterEnc

mongodb中_class字段的作用_上帝爱吃苹果-soochow-编程思维

我们知道,如果你用Java的Sping Data 框架映射Pojo为MongoDB数据时,数据库中会自动给你添加一个_class字段,那这个字段是干嘛用的呢?我们可以不可以不要这个字段呢? 直接上结论:答案其实很简答,这个字段就是用来映射Pojo的,更具体的说,是为了方便处理Pojo中存在继承的情况,增加系统的扩展性的,接下来上例子: _class字段帮助映射子类 为了方便演示,这里用Sp

springboot连接mysql8.0出现的问题_上帝爱吃苹果-soochow-编程思维

以前用的是5.7版本的MySQL,在学习实践Springboot的时候顺带升级了一下8.0,遇到了一些坑,在这记录一下,有碰到同类问题的童鞋需要自取。 使用 navicat连接发现报错1251- Client does not support authentication protocol 错误 这个笔者查询资料发现是新版本的加密规则变了,在mysql8之后,加密规则是caching_sh

自动生成mapper文件(基于mybatis maven插件)_上帝爱吃苹果-soochow-编程思维

自动生成Mybatis的Mapper文件  工作中使用mybatis时我们需要根据数据表字段创建pojo类、mapper文件以及dao类,并且需要配置它们之间的依赖关系,这样的工作很琐碎和重复,mybatis官方也发现了这个问题,因此给我们提供了mybatis generator工具来帮我们自动创建pojo类、mapper文件以及dao类并且会帮我们配置好它们的依赖关系。 实际上,最非常流

记一次数据库还没填上的坑(没解决)_hackxiyu-编程思维

一、问题:   再最近公司的一个项目中,数据库执行数据可以成功,但是放到程序里产生了莫名奇妙的问题   数据库前边执行了一条更新语句,则后边文本数据导入数据库会丢失数据行数   一共两步操作:   (1)更新任务状态   (2)导入文本文件数据到数据库   执行第一步,第二部就会数据行数导入数据库缺失   不执行第一步,影响业务逻辑   本来是两个无关的呃操作,怎么也联想不到这个程序是怎么产生

linux下mysql变量修改遇到的问题记录_hackxiyu-编程思维

一、问题记录:   项目上需要使用mysql的过程来自动化构建一批数据,但是调用的时候总是报找不到表或者过程   二、排查过程:   (1)首先终端连接mysql后发现,无论表还是过程在数据库中都是存在的,排除了不存在的可能   (2)对比后发现是表或者过程的大小写不匹配,如果修改过程或者表名的话,会涉及太多的操作,试验后,纯粹的耽误功夫   (3)那么就必须修改linux的默认识别设置,去掉大

记一次数据库踩下的坑_hackxiyu-编程思维

一、缘起   公司部署了一套系统,之前在别的地方部署没有问题,运行正常,但是在济南部署时就出现了问题   出现的问题是:错误日志信息不能插入错误信息的日志表中,导致前台查不到错误信息数据   二、排查   (1)首先查看错误日志查询的sql,确实没有数据产生,这就排除了是前台不加载的问题   (2)之后排查节点状态记录表,发现错误记录的标志产生,但是没有把详情插入另一张表   (3)反推的时候

dat类型文件入库后校验数据有问题_hackxiyu-编程思维

一、问题:   dat或者txt文件入库后,字段进行正则校验报出不应该出现的错误   二、排查:   (1)根据报出的错误,把错误日志中的字串单独提取出来,进行正则校验发现没有问题   (2)可以想到,要不是程序问题,或者是错误日志抓取没有真实的反映当时的错误情况   (3)而报错的这个文件是个例,排除了程序问题   (4)那么,进行字段正则校验的时候到底发生了什么?   (5)提取流入校验流

sql心经_hackxiyu-编程思维

问题:   查数据是一件很痛苦的事,尤其是多张表链接查询更是惨不忍睹   各种条件拼接,各种查询数据不对,看着写了半天的sql,感觉很完美,没毛病啊。。。   分析:   http://blog.jobbole.com/55086/   今天看了一篇文章,醍醐灌顶,自己之前理解的sql,概念和原理差的很多,皮毛都算不上,而且还误入歧途   之前觉得,sql一步步执行,条件写对了,一步一步过滤,现

oracle基础命令_hackxiyu-编程思维

oracle使用步骤: 一.oracle安装 两个文件解压到同一文件夹,doc为说明/使用文档 二.oracle启动: 1.启动oracle:启动监听和自定义库 2.启动cmd->sqlplus->sys/java登录 三.oracle操作用户: 1.当前用户 SQL> show user USER 为 "

mysql事务_神奇海螺。-编程思维

1.事务:是指一组不可分割的逻辑单位,由ACID四大属性来描述 (1)原子性:是指一组sql要么全做完commit,要不就rowBack。 (2)一致性:是指事务要从一个一致性状态变为另一个一致性行状态,这里的一致性是指数据完整性和业务逻辑的一致性。 (3)持久性:是指一旦事务提交后对数据库的改变是永久性的,即使系统崩溃依然能够通过日志进行恢复。 (4)隔离性:在并发操作数据库时,其它事务不能读

redis持久化_神奇海螺。-编程思维

1. Redis持久化都有哪些类型?    Redis持久化分为两种: RDB持久化与AOF持久化 2. 两种持久化的异同?   (1)RDB持久化:RDB持久化是将我们运行过程中Redis数据库中的对象保存到RDB文件中。     a. RDB持久化功能所生成的RDB文件是一个经过压缩的二进制文件,通过该文件可以还原生成RDB文件时的数据库状态。     b. 生成RDB文件的两个命令:SAV