首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    重复执行SQL语句|建表、插入默认值、增加字段、删除字段、修改字段重复执行SQL语句|oracle|mysql

    目录 前言 oracle脚本: 建表语句 插入默认值语句 删除某个字段 增加某个字段 有数据情况下修改某个字段为另外的名称  mysql: 建表语句 插入默认值 删除某个字段 增加某个字段 表有数据情况下将某个字段修改为另外的名称...,我们需要对一些sql语句实现可重复执行的操作。...比如甲方A的进展已经到3.0阶段了,表需要加A字段,修改B字段为字符串;甲方B进展到2.0字段,只需要表加A字段,这时候如果你的表不是可重复执行的,你越到后面你就维护不清楚到底这张表哪些字段甲方A有,哪些甲方...B有,但是当你的脚本是可重复执行的时候,你只需要将2.0的脚本都执行一遍,然后如果是3.0版本的就将3.0的所有脚本都执行一遍就都可以解决了 下面将介绍oracle和mysql的可重复执行脚本 oracle...比如不需要phone这个字段 -- 删除phone字段 drop procedure if exists sq_db_mysql; delimiter $$ create procedure sq_db_mysql

    7.8K10

    MySQL字段去重的案例实践

    distinct关键字可以过滤多余的重复记录只保留一条。...distinct支持单列去重和列去重,如果是单列去重,简明易懂,即相同值只保留1个,如下所示,select distinct code from tt;列去重则是根据指定的去重列信息进行,即只有所有指定的列信息都相同...错误 [1064] [42000]: You have an error in your SQL syntax; check the manual that corresponds to your MySQL...MySQL不同版本sql_mode默认值可能是不同的,因此在数据库升级配合的应用迁移过程中,尤其要注意像only_full_group_by这种校验规则的改变,很可能是个坑。...group by code;当然,这种在会话级通过改动sql_mode实现的路径,还需要考虑场景,因为缺少only_full_group_by的校验,按照code聚类了,但cdate和ctotal的值很可能是唯一的

    2.9K10

    上级居然按套路出牌,居然要我统计重复的数据!

    我们以前有讲解过如何统计快速重复数值:EXCEL小技巧,筛选重复值!,但如果老板要你统计重复的数据怎么办?所以今天我们讲解如何快速统计重复的数据。...本次用到的是大家都熟悉的数据透视表,我们都知道,数据透视表他是有很多的功能的,那今天就用到了他的统计功能,是一个非常简单一个功能,但是他却很实用。...设置数据透视表字段 ①把【姓名】字段拖入【行】→②把【月绩总分】拖入【值】。 ? 设置值字段 在放透视表区域点击【鼠标右键】→选择【值字段设置】 ?...在弹出的窗口选择【值汇总方式】→接着选择【非重复计数】→点击【确定】。 ? 这样就完成了,结果展示: ?

    63230

    告别硬编码,mysql 如何实现按某字段的不同取值进行统计

    或者知道某一种实战情境,换到其它实战情境就忘了……嗯,本质上还是重复的不够,熟练度不行啊。 ? 既然是我已知的知识点,立即实操吧。...情境A:字段取值范围在同一表格 想要统计的原数据,和该字段的所有取值范围,在同一张数据表时,代码简单如下。...想要统计的原数据,和该字段的所有取值范围,不在同一张数据表时,代码仅稍微复杂一点点。...之前的硬编码风格,在 grafana 上通过 add query 完成,该操作是新增数据列,使得数据结果是一行列,每个成就名就是一列。 ? ?...——这并非我的不足,这是我将要提升的机会,对? 小结 在这篇笔记中,我不仅记录了自己如何完成按某个字段的取值范围进行统计的需求,既有早期的硬编码风格,也有升级版的语句。

    2.6K10

    MySQL存储的字段区分大小写的,你知道吗?

    00 简单回顾 之前写过一篇关于mysql 对表大小写敏感的问题(你有遇到过MySQL因大小写敏感导致的问题吗),其实在mysql字段存储的内容是区分大小写的,本篇进行简单的总结。...02 解决方案 因为默认情况下字段内容是区分大小写的,也即大小写不敏感。所以解决方案就是要新增字段内容的校验规则。 使用mysql 的BINARY 关键字使搜索区分大小写。...这两种查看表的详情,本质上都是 在字段上 加上了 COLLATE utf8_bin。 03 总结 字段值的大小写由mysql的校对规则来控制。提到校对规则,就不得不说字符集。...2)utf8_general_ci:utf8_genera_ci区分大小写,ci为case insensitive的缩写,即大小写不敏感。...通过上一篇和这一篇的内容,详细大家对mysql对大小写敏感的问题也有一定的认识了,在实际的开发中,库和表名最好使用小写字母,注意字段存储内容的大写问题。

    3.3K30

    MySql版本并发控制MVCC前置知识——隐藏字段、undo日志与Read View

    数据库并发的场景有三种: 读-读 :不存在任何问题,也不需要并发控制 读-写 :有线程安全问题,可能会造成事务隔离性问题,可能遇到脏读,幻读,不可重复读 写-写 :有线程安全问题,可能会存在更新丢失问题...版本并发控制( MVCC )是一种用来解决读-写冲突的无锁并发控制 1.每个事务都要有自己的事务ID,可以根据事务ID的大小,来决定事务到来的先后顺序 2.mysqld可能会面临处理多个事务的情况,事务也有之间的生命周期...理解 MVCC 需要知道三个前提知识: 3个记录隐藏字段、undo 日志、Read View 3个记录隐藏列字段 建表时虽然指明了表中有多少列,但是mysql都会默认添加3个隐藏列字段。...也就是我们可以理解成update和delete可以形成版本链,insert暂时不考虑 而select不会对数据做任何修改,所以,为select维护版本,没有意义。...包含,说明,事务4不在当前的活跃事务中。 事务4的更改,应该看到。所以事务2能读到的最新数据记录是事务4所提交的版本,而事务4提交的版本也是全局角度上最新的版本

    33520

    MySQL MVCC版本并发控制(脏读和不可重复读解决原理)

    专栏持续更新中:MySQL详解 一、MVCC概念 MVCC是版本并发控制(Multi-Version Concurrency Control),是MySQL中基于乐观锁理论实现隔离级别的方式,用于实现已提交读和可重复读隔离级别...,也经常称为版本数据库。...,update,select…lock in share mode/for update这些操作,都是读的是最新的数据 MVCC:每一行记录实际上有多个版本,每个版本的记录除了数据本身之外,增加了其它字段...核心逻辑就是判断版本链中的哪个版本是当前事务可见可处理的 "数据快照"中并不是数据,存储的是一些事务id Read View 有四个重要的字段: creator_trx_id :指的是创建该 Read...这种通过「版本链」来控制并发事务访问同一个记录时的行为就叫 MVCC(版本并发控制) 在已提交读隔离级别下,每次查询都会重新生成数据快照,若其他事务已经提交了,当前事务再次查询时重新生成的数据快照中的

    1.2K40

    MySQL实战之全局锁和表锁:给表加个字段怎么有这么阻碍

    说到视图你肯定想起来了,我们在前面讲事务隔离的时候,其实有一个方法能够拿到一致性视图的,就是开启可重复读隔离级别开启事务。 官方自带的逻辑备份工具是mysqldump。...业务的更新不只是增删改数据(DML),还有可能是加字段等修改表结构的操作(DDL)。不论哪种方法,一个库被全局锁上以后,你要对里面任何表做加字段,都是会被锁住的。...但是,即使没有被全局锁住,加字段也不是一帆风顺的,因为你还会碰到下面要结束的表级锁。 3.表级锁 MySQL里面表级别的锁有两种,一种是表锁,一种是元数据锁(meta data lock MDL)。...因此,在MySQL5.5版本引入了MDL,当对一个表做增删改查操作的时候,加MDL读锁;当要对表做结构变更操作的时候,加MDL写锁。 读锁之间互斥,因此你可以有多个线程同时对一张表增删改查。...之后开发人员或者DBA再通过重试命令重复这个过程。 4.小结 今天,我们讲了MySQL的全局锁和表锁 全局锁主要用在逻辑备份过程中。

    1.7K00

    性能优化-什么情况下,使用索引了

    索引的建立是表中比较有指向性的字段,相当于目录,比如说行政区域代码,同一个地域的行政区域代码都是相同的,那么给这一列加上索引,避免让它重复扫描,从而达到优化的目的!...3、索引类型 在创建索引时,可以规定索引能否包含重复值。如果包含,则索引应该创建为PRIMARY KEY或UNIQUE索引。对于单列惟一性索引,这保证单列包含重复的值。...对于列惟一性索引,保证多个值的组合不重复。 PRIMARY KEY索引和UNIQUE索引非常类似。 事实上,PRIMARY KEY索引仅是一个具有名称PRIMARY的UNIQUE索引。...) 7、查询中统计或分组统计字段 8、表记录太少(如果一个表只有5条记录,采用索引去访问记录的话,那首先需访问索引表,再通过索引表访问数据表,一般索引表与数据表不在同一个数据块) 9、经常插入、...11、经常和主字段一块查询但主字段索引值比较多的表字段 12、对千万级MySQL数据库建立索引的事项及提高性能的手段

    1.2K30

    MySQL实战第六讲 - 全局锁和表锁 :给表加个字段怎么有这么阻碍?

    是的,就是在可重复读隔离级别下开启一个事务。 官方自带的逻辑备份工具是 mysqldump。...因此,修改 global 变量的方式影响面更大,我建议你使用; 2. 在异常处理机制上有差异。...读锁之间互斥,因此你可以有多个线程同时对一张表增删改查; 2. 读写锁之间、写锁之间是互斥的,用来保证变更表结构操作的安全性。...比如下面这个例子,我经常看到有人掉到这个坑里:给一个小表加个字段,导致整个库挂了。 你肯定知道,给一个表加字段,或者修改字段,或者加索引,需要扫描全表的数据。...之后开发人员或者 DBA 再通过重试命令重复这个过程。 MariaDB 已经合并了 AliSQL 的这个功能,所以这两个开源分支目前都支持 DDL NOWAIT/WAIT n 这个语法。

    1.1K30

    mysql联合索引的理解

    3.索引类型 在创建索引时,可以规定索引能否包含重复值。如果包含,则索引应该创建为PRIMARY KEY或UNIQUE索引。对于单列惟一性索引,这保证单列包含重复的值。...对于列惟一性索引,保证多个值的组合不重复。 PRIMARY KEY索引和UNIQUE索引非常类似。 事实上,PRIMARY KEY索引仅是一个具有名称PRIMARY的UNIQUE索引。...基数根据被存储为整数的统计数据来计数,所以即使对于小型表,该值也没有必要是精确的。基数越大,当进行联合时,MySQL使用该索引的机会就越大。   ...) 查询中统计或分组统计字段 select max(hbs_bh) from zl_yhjbqk select qc_bh,count(*) from zl_yhjbqk group by qc_bh...数据重复且分布平均的表字段 假如一个表有10万行记录,有一个字段A只有T和F两种值,且每个值的分布概率大约为50%,那么对这种表A字段建索引一般不会提高数据库的查询速度。

    1.5K20

    MySQL复习笔记(2)-约束

    count(字段) 统计指定列记录数,记录为NULL的统计 sum(字段) 计算指定列的数值和,如果不是数值类型,那么计算结果为0 max(字段) 计算指定列的最大值 min(字段) 计算指定列的最小值...SELECT 字段 FROM 表名 WHERE 条件 LIMIT offset, length; offset是指偏移量,可以认为是跳过的记录数量,写则默认为0。...所以主键有没有含义没有关系,只要不重复,非空就行。...=起始值; 唯一约束 表中字段的值不能重复 字段字段类型 UNIQUE 非空约束 表中字段的值不能为NULL 字段字段类型 NOT NULL 默认值约束 指定这个字段的数据,就使用默认值 字段名...分类和商品 一对建表原则: 在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键 例如:老师和学生,学生和课程 对多关系建表原则: 需要创建第三张表,中间表中至少两个字段,这两个字段分别作为外键指向各自一方的主键

    89120

    MySQLMySQL数据库的进阶使用

    实际中非常建议使用全列查询,因为这需要显示表的所有数据,而部分的数据可能此时并不在内存中,则mysqld服务还需要磁盘IO来加载表的剩余数据,降低MySQL查询的性能,同时全列查询还无法使用索引来优化查询过程...如果select后面有列,则会进行字段的去重处理,也就是当字段同时重复时,才会去重。如果只有一列,那就只针对该列进行去重。 4....count函数除外,count括号内的字段可以是数字,列字段名,通配符等等,因为count只负责统计表中记录(表中的一行数据成为记录)的个数,所以count比较特殊,其他的四个聚合函数括号内的字段只能是值为数字的列字段名...,然后对于每组的行数据进行部分列字段的显示,此时就只显示两列字段,一个是name,一个是聚合统计结果min(math) 6.group by子句的使用(配合having进行分组聚合统计之后的条件筛选...合并查询就是将多个select的查询结果合并到一起,union在合并时,会自动去掉重复的行(两个所有列字段完全重复的行),union all不会去掉重复的行。

    32520
    领券