——— 数据库
焦玉丽
这个作者很懒,什么都没留下…
展开
-
mysql 分组,组内排序并且取第一条数据
sql 排序 ROW_NUMBER() OVER 函数这是我之前写的sql排序函数,现在的需求是mysql 分组,组内排序并且取第一条数据。mysql用子查询实现类似于row_number()函数的功能场景: versionId=0时,是默认版本,即该条记录适用于所有版本。versionID非0时是固定版本(如:91635),如果请求固定版本,且该pa geType下存在默认版本的数据,优先显示固定版本数据;如果不存在固定版本数据,有默认版本时显示默认版本。下面的sql仅用于举例,命名不规范sele原创 2021-05-12 14:40:34 · 11122 阅读 · 1 评论 -
innodb中支持的四种事务隔离级别及区别
读未提交(read uncommitted):可以读取其他 session 未提交的脏数据。读已提交(read committed):允许不可重复读取,但不允许脏读取。提交后,其他会话可以看到提交的数据。可重复读(repeatable read):禁止不可重复读取和脏读取、以及幻读(innodb 独有)。串行(serializable):事务只能一个接着一个地执行,但不能并发执行。事务...原创 2018-09-07 16:56:06 · 2718 阅读 · 1 评论 -
MySQL复制原理
为什么主从复制?主库写,从库读,即使主库出现锁表情况,从库也可以正常读,提高效率。复制原理步骤: 1、主服务器(master)把数据更改到二进制文件日志(binlog)中 2、从服务器(slave)把从服务器的二进制日志复制到自己的中继日志(relay log)中 3、从服务器重做中继日志中的日志,把更改应用到自己的库中,已达到数据的最终一致性。原理: mysql主从复...原创 2018-09-07 11:09:18 · 337 阅读 · 1 评论 -
mysqldump导出sql文件
mysqldump为了加快导入导出,默认把数据都缩减在一行里面,不便于查看和修改,如:insert into t values(1),(2);如果我想每条insert语句占一行,如下: insert into t values(1); insert into t values(2); 这时,在mysqldump时加上参数–skip-extended-insert即可。另,补充MySQL...原创 2018-09-07 09:22:54 · 1650 阅读 · 1 评论 -
redis内存回收策略
删除到达过期时间的键对象内存使用达到maxmemory上限时触发内存溢出控制策略1、删除过期键对象 redis所有键都可以设置过期时间,因为内存中大量建维护消耗大量CPU,对单线程的redis来说成本过高,因此redis采用惰性删除和定时任务删除机制实现过期键的内存回收。惰性删除,如果已经超过过期时间限制,执行删除并返回空。优点是节省CPU成本,不需要单独维护TTL链表来处理过期键删...原创 2018-09-05 08:58:50 · 913 阅读 · 0 评论 -
redis客户端常见异常
1、无法从连接池获取到链接 JedisPool中jedis对象个数有限,默认是8个。这里假设使用的默认配置,如果有8个jedis对象被占用,而且没有归还,此时调用者再借用jedis时就需要等待,如果等待时间maxWaitMillis时间内仍无法收到获取到jedis对象则抛出NoSuchElementException异常cannot get a resource from the poo...原创 2018-09-04 11:10:37 · 912 阅读 · 0 评论 -
mysql 批量实践
1.创建函数(1.批量生成英文随机数 2.批量生成部门代码)创建随机函数delimiter $$create function rand_string(n int)RETURNs VARCHAR(255)BEGIN DECLARE chars_str VARCHAR(100) DEFAULT 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQ...原创 2018-07-17 14:58:17 · 400 阅读 · 7 评论 -
sql --it is not contained in either an aggregate function or the GROUP BY clause.
关于group by的错误表结构:查询语句: select * from POM_USER group by Sex看见这个错误,凭感觉知道改 '*' 为 'Sex',这样就没有错了,不知道为什么,看到一篇文章,豁然开朗: 理解 group by...原创 2018-02-25 20:29:42 · 3070 阅读 · 32 评论 -
sql -- 查出某行数据的上下条数据
接上篇sql 排序,排序后,可查出上下条数据。Row_Number() 函数给表添加了一列序列号且不重复,即可根据当前数据对应的值,找上下条数据。依旧是上文的例子,如下图,假如要查“工单号为‘order005’的下一条数据”:实现:select * from (select Date 日期,OrderID 工单号,OrderSeq 工单顺序,Row_Number() over(order by ...原创 2018-02-14 07:34:22 · 2015 阅读 · 28 评论 -
sql 排序 ROW_NUMBER() OVER 函数
业务需求:当前工单执行完,转到下工单运行,对工单表数据做一系列的排序,按顺序执行工单操作。ROW_NUMBER() OVER函数:row_number()从1开始,为每一条分组记录返回一个数字,在使用 row_number() over()函数时候,over()里头的分组以及排序的执行晚于 where group by order by 的执行。partition by 用于给结原创 2018-02-05 15:31:30 · 4906 阅读 · 21 评论 -
sql 语句查询自增列
业务场景:有表A,A表ID列自增,现向A表插入一条数据,需获取新增列的ID值。1.获取一条数据的ID值:@@Identity 利用全局变量作用:获得最后一条变更数据的自增列值。例:INSERT INTO A (Name,Age,Sex)values('张三','12','男');select @@IDENTITY as ID;结果: 相似的有SCOPE原创 2018-01-16 11:37:41 · 5179 阅读 · 12 评论 -
sql--Merge
简介merge关键字可以简单的对两张表进行增删改操作,正如MSDN对于Merge短小精悍的解释 :”根据与源表联接的结果,对目标表执行插入、更新或删除操作。例如,根据在另一个表中找到的差异在一个表中插入、更新或删除行,可以对两个表进行同步。”举个栗子:首先创建两张表,为两张表中添加数据--创建源表create table SourceTable(id int,[DESC] var原创 2018-01-21 21:09:36 · 412 阅读 · 28 评论 -
附加数据库失败错误5120 错误950
附加数据库时遇见两个问题:1.错误代码5120解决方式:这个错误是没有操作权限,要检查文件是否可读,安全性是否有权限。2.错误代码950版本问题。数据库属性中可以查看当前sql server可以兼容的版本,如果还原的mdf文件版本不支持,就找个可以兼容的版本做个“中介”还原一下,再生成脚本吧原创 2017-08-29 20:30:43 · 3383 阅读 · 18 评论 -
sql server2008 “不允许保存更改,,,”
问题:不允许保存更改。您所做的更改要求删除并重新创建以下表,,,,”解决方案:打开SQL SERVER 2008 工具-->选项-->设计器-->表设计器和数据库设计器,把“阻止保存要求重新创建表的更改”的勾去掉然后点“确定”即可。” 想要修改数据库时遇见的问题,虽然很简单,但是刚看见提示的时候因为不知道“阻止保存要求重新创建表的更改”这个选项在哪原创 2016-03-20 19:19:31 · 679 阅读 · 27 评论 -
sql sever安装完成但失败后的正确姿势
以前装sql sever都挺顺利的,前一阵子因为装固态硬盘重装了系统之后装sql就遇见了很多问题,也就有了这次的学习机会。。。 这次装sql经历了安装失败,重装系统——安装失败卸载sql,重装系统——安装失败,找到原因,成功。来来回回查看了很多资料倒也学会了将sql卸载干净的办法:完美卸载sql。到最后安装成功,我只想说:别冲动,重装系统不能解决所有问题。原创 2016-05-21 14:47:50 · 26684 阅读 · 52 评论 -
触发器解决外键约束问题
触发器是与表事件有关的特殊存储过程。它不能直接被执行,必须为表上的增、删、改事件所触发。外键要比触发器更快,但是我们经常会遇见外键约束的问题,触发器能解决外键不能处理的复杂关系。下面是一个实践的例子:一、背景 在牛腩发布系统中,三个表(新闻类别、新闻、评论)之间的关系是一对多的关系,每个新闻类别可以有多条新闻,每条新闻可以有多条评论,主键为相应的id号,关系图如下:原创 2016-05-29 21:41:23 · 8153 阅读 · 37 评论 -
断点不能使用解决办法
刚刚原创 2016-07-30 23:28:57 · 1959 阅读 · 30 评论 -
IP地址链接数据库失败解决办法
在牛腩新闻发布系统中,我遇见了个问题,在配置文件中写连接数据库语句,用“本机名\实例名”的形式可以连接数据库,用IP地址连接数据库失败。 语句如下图: 用IP地址链接时,报错信息:“在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider原创 2016-06-18 16:56:56 · 5083 阅读 · 36 评论