随笔分类 - SQL
摘要:默认情况下,当继承MongoRepository的CRUD在@SpringBootApplication的子包下时,xxxRepository是能够自动被扫描和创建代理的。但是如果不在默认路径下,就无法注入了,即使是扫描路径加到了@ComponentScan也一样。 解决方法: 在springboo
阅读全文
摘要:在日常数据库设计中,几乎每张业务表都带有一个日期列,用于记录每条记录产生和变更的时间。比如用户表会有一个日期列记录用户注册的时间、用户最后登录的时间。又比如,电商行业中的订单表(核心业务表)会有一个订单产生的时间列,当支付时间超过订单产生的时间,这个订单可能会被系统自动取消。 日期类型虽然常见,但在
阅读全文
摘要:# 背景 产品上线后,出于运营的需要,我们要对用户进行跟踪,分析用户数据。本文要介绍的是如何统计用户新增数、活跃数和留存率,时间跨度是天,即统计每日新增(DNU),日活(DAU)和某日新增的一批用户在接下来的一段时间内每天活跃的百分比。 # 使用范围 本方案适用于用户量不太大(日活在百万以内,日活百
阅读全文
摘要:慢查询的确会导致很多问题,我们要如何优化慢查询呢? 主要解决办法有: 监控sql执行情况,发邮件、短信报警,便于快速识别慢查询sql 打开数据库慢查询日志功能 简化业务逻辑 代码重构、优化 异步处理 sql优化 索引优化 其他的办法先不说,后面有机会再单独介绍。今天我重点说说索引优化,因为它是解决慢
阅读全文
摘要:1、in和exists 2、not in 和not exists 3、in 与 = 的区别 其他分析: 1、in和exists in是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询,一直以来认为exists比in效率高的说法是不准确的。 如果查询的
阅读全文
摘要:在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看。所以我们深入了解MySQL
阅读全文
摘要:一、什么是redis 首先要说redis,应该先说一下nosql,NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网
阅读全文
摘要:概念: 相当于java中的方法,将一组逻辑语句封装在方法体中,对外暴露方法名 隐藏了实现细节 提高代码的可重用性 使用: select 函数名(实参列表)【from 表】 【】中内容可省略 正文: 字符函数: length:获取字节个数(utf-8 一个汉字为3个字节,gbk为2个字节) SELEC
阅读全文
摘要:#1:根据身份证号 更新 生日字段 SQL 注意长度用len或者length 方法一: update 表名 set 生日字段=substring(身份证字段,7,4)+"-"+substring(身份证字段,11,2)+"-"+substring(身份证字段,13,2) where length(身
阅读全文
摘要:Select sex, Sum(Case When 年龄 <=20 Then 1 Else 0 End) As '[0-20岁(人)]', Sum(Case When 年龄 Between 21 And 40 Then 1 Else 0 End) As '[21-40岁(人)]', Sum(Case
阅读全文
摘要:使用navicate12运行sql文件出错 报错代码: [ERR] 1273 - Unknown collation: 'utf8mb4_0900_ai_ci' 报错原因:生成转储文件的数据库版本为8.0,要导入sql文件的数据库版本为5.6,因为是高版本导入到低版本,引起1273错误 解决方法:打
阅读全文
摘要:(1)DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。 TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行
阅读全文
摘要:在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看。所以我们深入了解MySQL
阅读全文
摘要:一 把文件解压到一个目录下 这是解压后的目录 将my.ini文件考进去 双击打开my.ini 找到这两行更改成自己的解压路径保存 右键此电脑属性 找到高级系统设置配置环境变量 新建—》变量值是解压文件的路径 Path 单击path 编辑 新建 之后 用管理员身份打开cmd 进入文件路径 打开命令行窗
阅读全文
摘要:解决方法1:SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));这种修改只是暂时性的,还是在 my.ini 文件中的sql-mode直接修改比较好。 解决方法2:使用语句查询 sql_mode 的值再到 my.ini(w
阅读全文
摘要:SQL语句强化练习题及答案 一、简单查询 1、列出全部学生的信息。 SELECT * FROM 学生 2、列出软件专业全部学生的学号及姓名。 SELECT 学号,姓名 FROM 学生 WHERE 专业="软件" 3、列出所有必修课的课号。 SELECT DISTINCT 课号 FROM 必修课 4、
阅读全文