
SQL
文章平均质量分 72
玉离骚
这个作者很懒,什么都没留下…
展开
-
创建mongodb项目
https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/,有兴趣的可以去了解。repository接口层(这里的repository层我没有使用, 因为与下面的service层二选其一就行了。它两的区别跟 mybatis和jpa类似。首先新建一个springboot项目,新建项目略,不会的新手可以参考。刚创建好springboot项目的时候就一个启动类。接下来把各个代码贴一下。service接口层。原创 2023-06-05 10:15:27 · 253 阅读 · 0 评论 -
mongdb常用查询
查询用 find(普通查询) 和 aggregate(聚合查询) 都可以,但后者的效率好一点。find是用{}来接收查询条件,aggregate用数组[]来接收查询条件。如果用aggregate,根据下面表格可以快速记忆下来,配合上面的示例就可以写出符合需求的脚本语句了。mongdb是把数据存在文档里面,文档里面是一种bson格式的数据(类似json格式),再通过mongdb的javascript语法取读取符合条件的文档内容用表的形式展示给我们。下面是一些对 “查询结果” 再做处理的方法。原创 2023-05-31 01:00:00 · 479 阅读 · 0 评论 -
数据库锁
今天接触到一个sql新语法,学习一下for update。for update 是行级锁(悲观锁),在查询语句后加了这个就表示霸占了数据,在本事务提交或回滚之前,其他线程事务不能对其进行更新和删除,但可以查询(注:不加for update可以立即查出数据,加了for update的select语句则会是阻塞中不能查,直到上一个加锁事务结束后才能查出)。下面是for update 的用法说明select * from table t where t.id = 3 # 普通查询不加锁select * f原创 2020-12-22 10:38:07 · 120 阅读 · 0 评论 -
sql查询 列转成一行
原始数据查询语句如下,需要查出实名用户和非实名用户的总数和总金额。select real_flg 是否实名, count(*) 笔数,sum(amt) 总额 from t_user where sts = 'S' group by real_flg;通过group by后查出来是多行的列表,但我需要的结果是四个字段别名分别存这四个值,也不想通过两条sql(唯一区别就是where real_flg = 1 和 where real_flg = 0的区别)来实现。这时就可以用列转行了。sql如下原创 2020-09-25 14:42:35 · 4345 阅读 · 0 评论 -
mysql 与 oracle 语法的比较
EXISTS、NOT EXISTS 的用法它类似IN关键词,但效率更好,其用法含义先看如下例子。SELECT * FROM t_user WHERE sts=1 and EXISTS ( SELECT 1 FROM t_user WHERE NAME = '55545')这个例子是查询 当t_user 中有name = 55545的一条或者多条数据时才能查询出整个表中sts=1的数...原创 2019-11-25 14:52:00 · 510 阅读 · 0 评论 -
数据库、表复制速度比较
有时候我们需要把一个数据库、表复制到另外一个数据库、表。当数据量很大的时候,会消耗很多的执行时间。下面总结了一下我比较常用的几种方法。总结:方法一和方法二比较常用,但百万级数据要使用load data 命名快的多。方法三最快最强但掌握略有点难度一、导出数据库文件在导入进数据库(适合不同部门或个人之间的数据传递)导出格式可以是sql ,excel,txt等都可以,因为这些格式都支持再次导入。...原创 2019-10-15 11:43:05 · 815 阅读 · 1 评论 -
实用数据库函数总结
脱敏处理方法一:insert(mobile,4,4,'****')表示mobile从第四个字符开始往后的4个字符用4个星号代替方法二:函数组合 concat(left(mobile,3),'****',right(mobile,4)) 其中concat表示把多个字符串拼接,left表示截取mobile的左边3个字符,right表示截取mobile的右边4个字符效果:13700001234 =...原创 2019-08-14 19:00:32 · 194 阅读 · 0 评论 -
数据导出txt/csv/xls文件
当与第三方做数据迁移时,有两种方式。一是通过接口按照格式上传第三方接口,二是通过约定格式导出文件线下提供给第三方。数据库查询导出文件示例如下:# 查询字段SELECT '20180118' AS '日期', '111111' AS '时间', # 自增流水号 (@j:=@j+1) AS '业务流水号', 'edd' AS '平台编号', us...原创 2019-05-17 10:51:52 · 377 阅读 · 0 评论 -
连接内网其他机器的数据库
我想连接旁边同学的电脑的本地数据库,发现连接不上,下面是设置的方法。第一步:在目标机器上cmd输入ipConfig 查看目标机器的内网IP地址。第二步:在目标机器上的数据库执行以下语句# root 和 123 是设置的登陆账号密码GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY "123";FLUSH PRIVILEGES...原创 2019-05-11 11:01:40 · 742 阅读 · 0 评论 -
存储过程 + 游标 进行数据库迁移
本地两个数据库A和B,表结构和字段不完全相同。第一个方法, insert和select实现#从数据库B的t_customer表查询查询数据插入数据库A的t_user表里面INSERT INTO A.`t_user` (id, NAME, PASSWORD ) SELECT id AS id, login_name AS NAME , PASSWORD AS PASSWORD FROM B...原创 2019-05-19 15:49:27 · 284 阅读 · 0 评论 -
数据库开启创建事件
数据库的事件,类似java的定时任务。首先需要数据库开启了事件开关才会执行事件# 查看是否开启SHOW VARIABLES LIKE 'event_scheduler'# 若未开启则进行开启 SET GLOBAL event_scheduler = ON;创建事件的基本语句如下 , 根据自己需求修改 BEGIN和END之间的代码。#如下的需求是从2017-08-22 14:49:4...原创 2019-05-14 15:15:24 · 646 阅读 · 0 评论 -
SQL优化
插入数据用for循环分别执行INSERT INTO t_user (TIME, NAME) VALUE (NOW(),‘张三’);INSERT INTO t_user (TIME, NAME) VALUE (NOW(),‘李四’);INSERT INTO t_user (TIME, NAME) VALUE (NOW(),‘王五’);与INSERT INTO t_user (TIME, ...原创 2019-04-23 14:02:56 · 83 阅读 · 0 评论