GROUP_CONCAT 适用于拼接多条数据相同列,需要使用分割符的字符串查询结果.默认使用逗号作为分隔符。 语法: 必须配合GROUP BY一起使用。GROUP_CONCAT(字段)GROUP_CONCAT(字段 separator "分隔符")GROUP_CONCAT(DISTINCT 字段 ORDER BY 字段 SEPAR...
一、 什么是数据脱敏? 数据脱敏(Data Masking),顾名思义,是屏蔽敏感数据,对某些敏感信息(比如,身份证号、手机号、卡号、客户姓名、客户地址、邮箱地址、薪资等等 )通过脱敏规则进行数据的变形,实现隐私数据的可靠保护。业界常见的脱敏规则有,...
前言 在日常开发中,存储数据的最常用的方式便是数据库了,其中最为著名的便是MySQL数据库,因它简便易于上手而且可扩展性强大,跨平台使得它广为使用,今天我们就来具体聊聊它的安装。 一、安装过程 我们所使用的是MySQL 5.7版本,这个版本算...
MySQL在我们的开发中基本每天都要面对的,作为开发中的数据的来源,MySQL承担者存储数据和读写数据的职责。因为学习和了解MySQL是至关重要的,那么当我们在客户端发起一个SQL到出现详细的查询数据,这其中究竟经历了什么样的过程?MySQL服务端是如何处...
我们在编译INVALID的同义词(synonym)的时候,可能在某些版本会遇到一些特殊权限问题,具体来说是遇到ORA-01031错误。下面构造这样一个例子: 如下所示,scott用户下面创建了一个公共同义词emp(下面测试环境为Oracle 10.2.0.5) SQL> show user...
程序员在编程过程中,经常会在代码中使用到“where 1=1”,这是为什么呢? SQL注入 初次看到这种写法的同学肯定很纳闷,加不加where 1=1,查询不都一样吗?例如: select * from customers; 与 select * from customers wher...
加班原因是上线,解决线上数据库存在重复数据的问题,发现了程序的bug,很好解决,有点问题的是,修正线上的重复数据。 线上库有6个表存在重复数据,其中2个表比较大,一个96万+、一个30万+,因为之前处理过相同的问题,就直接拿来了上次的Python去...
谈起数据库的事务来,估计很多同学的第一反应都是ACID,而排在ACID中首位的A原子性,要求一个事务中的所有操作,要么全部完成,要么全部不完成。熟悉redis的同学肯定知道,在redis中也存在事务,那么它的事务也满足原子性吗?下面我们就来一探究竟。 ...
同事:出大事了,我连错服务器,把生产环境的数据库卸载了,能恢复吗? 我:数据文件还在吗? 同事:不知道,我照着网上卸载文档卸载的,注册表都删完了,发现环境不对,赶紧终止了。 我:远程发下吧。 看了下环境,oracle 安装目录里的组...
前言 上一篇文章中我们一起探讨了索引的底层原理及为什么我们常用B+树作为索引的数据结构。本文我们一起学习一下索引创建的原则,看看什么时候适合创建索引?看看什么时候不适合创建索引? 什么情况下适合创建索引 1. 字段的数值有唯一性的限制...
一、执行计划是什么,有什么作用 SQL语句在数据库中,经过SQL解析器时,解析器会分析SQL语句,并根据索引等信息,制定数据查询的步骤顺序。我们可以通过在SQL语句前添加 EXPLAIN关键字来输出执行计划。 通过分析执行计划,我们可以了解到: ·...
数据库三范式 1.第一范式: 确保每列的原子性,每列都是不可分割的最小数据单元。 2.第二范式: 在第一范式的基础上,要求每列都和主键相关。 3.第三范式: 在第二范式的基础上,要求其他列和主键是直接相关,而不是间接相关。 分别说一下...
许多人将数据库查询语句的调优视作哈利波特小说中某种神秘的“黑魔法”;使用错误的咒语,数据就会从宝贵的资源变成一堆糊状物。 实际上,对关系数据库系统的查询调优是一项简单的工程,其遵循的规则或启发式方法很容易理解。查询优化器会翻译你发送...
我们的数据库一般都会并发执行多个事务,多个事务可能会并发的对相同的一批数据进行增删改查操作,可能就会导致我们说的脏写、脏读、不可重复读、幻读这些问题。 这些问题的本质都是数据库的多事务并发问题,为了解决多事务并发问题,数据库设计了事...
深入理解MVCC MVCC多版本并发控制机制,Mysql在读已提交和可重复读隔离级别下都实现了MVCC机制。 MVCC最大的优势:读不加锁,读写不冲突。在读多写少的应用中,读写不冲突是非常重要的,极大的增加了系统的并发性能。 MVCC机制的实现就是通过...
本文会分享四个在面试和工作中常用的几个使用技巧,具体包括: · 日期与期间的高级使用 · 临时表与Common Table Expression (WITH) · Aggregation 与CASE WHEN的结合使用 · Window Function的其他用途 数仓?不就是写写SQL吗… 第...
多版本并发控制 我们知道,读未提交会造成脏读、幻读、不可重复读,读已提交会造成幻读、不可重复读,可重复读可能会有幻读,和串行化就不会有这些问题。 那 InnoDB 到底是怎么解决这些问题的呢?又或者,你有没有想过造成脏读、幻读、不可重复读...
SQL执行计划分析 执行计划分析在sql调优中占有举足轻重的地位,通过Explain+我们自定义的SQL便可得出该SQL的执行计划,如下: 我们来分析一下执行计划中比较重要的几列: id列 它是select的序列号,有几个select就有几个id,并且id的顺序是...
我们在编译INVALID的同义词(synonym)的时候,可能在某些版本会遇到一些特殊权限问题,具体来说是遇到ORA-01031错误。下面构造这样一个例子: 如下所示,scott用户下面创建了一个公共同义词emp(下面测试环境为Oracle 10.2.0.5) SQL> show user...
Oracle序列创建和使用 创建序列 语法 CREATE SEQUENCE 序列名 [相关参数] 参数说明 INCREMENT BY :序列变化的步进,负值表示递减。(默认1) START WITH:序列的初始值 。(默认1) MAXvalue:序列可生成的最大值。(默认不限制最大值,NOM...