数据库
任庆
坚持做正确的事
展开
-
分组排序后取指定顺序数据 - 开窗/分析 函数
分析:首先通过窗口函数把每个班的学生按班级为单位做了分区,然后用分数做降序排列。这样就得到了一个有序号的,以班级为单位的分区表。最后只要找排名(rn=?和聚合函数对应着看,聚合函数是通过指定一列来统计单行数据的。使用rank函数会把数据相同的几项的序号认为是一样的,后面的排序会跳过并列的数量。步骤一:每个班的学生在自己的班级里排序。步骤二:找到想要的排名,以第一名为例。补充:rank()函数,统计并列情况。场景: 查询每个班的第一名。............原创 2022-08-16 11:01:44 · 412 阅读 · 0 评论 -
MySQL 建表报错 You have an error in your SQL syntax; check the manual that corresponds to your MySQL ser
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ...... 语法错误:因为varchar需要指定长度,varchar(32),检查所有字段对应的类型是否需要加长度或精度 因为使用了mysql的关键字,例如,用id作为字段名需要用引号引起来...原创 2021-06-28 10:43:11 · 1609 阅读 · 0 评论 -
mysql 存储过程大数据量表内连删除
mysql在mgr模式中,数据量大于145M会报错,为了快速实现功能,采取存储过程的方式执行。-- 功能:删除t_mytable表中和t_mytable_bak重复的部分-- 重写结束符号,改为$delimiter $-- batchSize作为入参传入create procedure t_mytable(in bs int)begin -- 声明增量表数据总量 -- 声明循环次数 -- 声明删除索引开始位置 -- 声明删除索引结束位置 -- 声明整数部分 -- 声明原创 2021-02-22 10:41:51 · 304 阅读 · 0 评论 -
insert into xxx select xx from xxxx 报错
表B数据复制到表A,通过使用 insert into tableA select * from tableB。坑:使用动态SQL时(例如mybatis),如果select 返回的结果集为空,则会报语法不正确的异常。 A、B两个表字段不一致的时候会报错。当非空字段不匹配时会返回列不匹配的异常;当最后一个字段不匹配,且前面的字段都是默认为空的时候会导致错列。建议:使用这个语法时需要判断 select 返回的结果集是否为空,如果为空则不执行insert。 加上列名,防止字段错乱。例如:inser原创 2021-01-11 09:42:30 · 1980 阅读 · 0 评论 -
mysql MGR集群数据初始化方案
MGR(MySQL Group Replication)mysql的一个主从备份策略,达到高可用的效果。多台mysql服务器组成一个集群(一般是单数,因为有一台宕机后需要判断是否多数机器是好的),只提供一个节点供读写其余几个节点负责从主节点请求binaryLog(主节点的SQL操作记录),同步到本地执行,达到数据结构、数据都能同步的目的。因此,binaryLog的同步效率成为数据写入速度、单次写入大小的瓶颈。一般是145M,再大就会报提交失败异常(Error on observer while ru原创 2021-01-05 10:22:42 · 2345 阅读 · 0 评论 -
mysql 批量删除/更新数据报错 you can‘t specify target / every derrived table must / you are using safe update
执行一段SQL,批量删除冗余数据时报错:You can't specify target table 'A' for update in FROM clausedelete from A where id in (select id from A group by id having count(id)>1);改为:delete from A where id in (select id from (select id from A group by id having count(.原创 2020-10-09 10:55:15 · 250 阅读 · 1 评论 -
Redis 数据类型及相关命令
1.字符串简单的key-value映射,value可以是字符串、整型、浮点型。2.列表(list)支持左右压入、弹出,指定位置的插入和弹出。数据可重复。3.集合(set)利用hashmap中key的算法,计算是否已经存在。数据不可重复。4.散列(hash)hashkey---[{key:val},{key:val},....] 对应。同样的key不允许重复插...原创 2020-01-21 11:40:54 · 170 阅读 · 0 评论 -
Nodejs Promise方式操作Postgresql
使用连接池,保证连接获取速度;使用promise方式,保证代码执行时序;安装pg包npm install pg --save创建文件:pgClient.jsconst pg = require('pg');/** * pgPool instance */var pgPool = null;/** * pgClient Entity */class pg...原创 2019-09-26 11:46:46 · 760 阅读 · 0 评论 -
docker 部署redis、mongo、postgresql,报错:cannot assign requested address
使用docker部署数据持久化服务十分方便,直接下载一个镜像,run就好了。或者使用docker-compose,连指令都不用记了version: '3'services: mongo: container_name: mongo network_mode: bridge image: "mongo:4.0.6" ports: - "27017:27017"...原创 2019-09-07 13:42:45 · 2665 阅读 · 0 评论 -
使用Docker部署需要用户验证的mongodb
# 创建mongo数据文件挂载本地路径mkdir -p /data/mongo-test# 启动一个mongo服务docker run --name mongo-test -p 37017:27017 -v /data/mongo-test/:/data/db/ -d mongo:4.0.6 --bind_ip_all# 进入mongo容器docker exec -it mongo...原创 2019-08-13 13:03:48 · 522 阅读 · 0 评论 -
Mongodb 以Docker的方式部署多副本集(replSet)
准备工作: docker安装(如果需要,参考https://blog.csdn.net/nickDaDa/article/details/92816938) 拉取镜像(这里使用3.6版本测试)sudo docker pull mongo:3.6 创建宿主机数据挂载目录 /data/mongo0 /data/mongo1 /data/mongo2安装:su...原创 2019-07-03 11:27:50 · 1707 阅读 · 0 评论 -
java sqlite Util 不依赖Spring
SQLite适合于嵌入式的工程,小巧轻便,几乎不占内存,也无需额外进程处理,特别适合一些移动端的存储;但是不支持分布式,不支持多线程写操作,百万级以上的数据量支持不好。实验环境:eclipse+Maven testDB.db放到了resource文件夹中,和application.properity同级 如果是spring框架可以使用@Component注解初始化此类,并注入到服...原创 2019-05-06 15:23:14 · 833 阅读 · 0 评论 -
mongodb 导入 csv文件
mongoimport-h127.0.0.1 -ddbname -ctest--typecsv--file/home/nodeid.csv--headerline--upsert-hmongo连接ip-d数据库名databasename-c集合名 collection--type导入类型--file文件路径--匹配csv类型用,表头--u...原创 2019-03-22 17:12:51 · 1193 阅读 · 0 评论