SQL
这孩子谁懂哈
坚持比努力更可怕/You Reap What You Sow
展开
-
MYSQL中多行转一行实践
MYSQL中常见的多行转一行,便于查看原创 2022-08-11 22:41:58 · 717 阅读 · 0 评论 -
SPARKSQL中分组排序并提取前N行
select * from (select *,row_number() over (PARTITION BY col1,col2,col3 ORDER BY col4 desc) rank from df1) tmp where rank<=10这个是提取前10的数据原创 2022-05-06 16:56:07 · 2073 阅读 · 0 评论 -
SQL学习笔记(一)
什么是SQL语言?SQL是用于访问和处理数据库的标准计算机语言。SQL:是指结构化查询语言,是我们有能力访问数据库。SQL能做什么呢?可以面向数据库执行查询,可以从数据库中取回数据,插入新的数据,可以从数据库中删除记录,也可以创建数据库,在数据库中创建新的表,存储过程,视图等。一个数据库通常包含一个或者多个表,每个表由一个名字标示(例如客户,订单等),表包含带有原创 2022-03-26 20:14:06 · 362 阅读 · 0 评论 -
MYSQL8.0.26最新安装教程
1,打开官网进行下载地址:https://www.mysql.com/downloads/https://www.mysql.com/downloads/如下图所示:点击下载后是一个压缩包,解压一下,成文件夹2,安装教程(1)配置环境变量变量名:MYSQL_HOME变量值:E:\MySql\mysql-8.0.27-winx64\mysql-8.0.27-winx64 (地址要到bin的文件父文件)(2)生成data文件以管理员身份运行c...原创 2021-11-28 14:26:37 · 2829 阅读 · 0 评论 -
SQL中case when...then...else...end
CASE WHEN 基本概念Case具有两种格式:简单Case函数和Case搜索函数。简单Case函数:CASE sexWHEN ‘1’ THEN ‘男’WHEN ‘0’ THEN ‘女’ELSE ‘其他’ ENDCase搜索函数:CASE WHEN sex = ‘1’ THEN ‘男’WHEN sex = ‘0’ THEN ‘女’ELSE ‘其他’ END使用场景1、可以将已知数据...原创 2022-03-26 20:24:27 · 591 阅读 · 0 评论 -
Mysql中left join中where和on的区别
leftjoin中关于where和on条件的几个知识点:1.多表leftjoin是会生成一张临时表,并返回给用户2.where条件是针对最后生成的这张临时表进行过滤,过滤掉不符合where条件的记录,是真正的不符合就过滤掉。3.on条件是对leftjoin的右表进行条件过滤,但依然返回左表的所有行,右表中没有的补为NULL4.on条件中如果有对左表的限制条件,无论条件真假,依然返回左表的所有行,但是会影响右表的匹配值。也就是说on中左表的限制条件只影响右...原创 2021-04-11 21:07:56 · 9669 阅读 · 0 评论 -
MYSQL中获取上个月最后一天并把10位日期转化位8位日期格式
项目需要,需要把‘2020-10-31’转化成转化成20201031 ,也就是10位转8位。参考代码如下:select date_format(date_sub(date_sub(date_format(now(),'%Y%m%d'),interval extract(day from now()) day),interval 0 month),'%Y%m%d') as dd;...原创 2020-11-09 14:06:50 · 14150 阅读 · 0 评论 -
java使用sql语句中使用like来传参数出现java.util.UnknownFormatConversionException:Conversion=
今天在修改一个很古老项目的时候,有一个需求就是要在sql查询里使用like来传递参数,进行模糊查询。如下所示: sql_Static_person = String.format( "select * from t_info where HD='%s' and (GG='%s' or GG is null) and BS<=1 and ZH='%s' and flag=0 and bz like %s ",aa(), bb(), cc(),dd());其实需求很简单,就原创 2020-06-23 10:56:30 · 11690 阅读 · 0 评论 -
MySQL和Java中关于时间日期汇总(持续更新)
最近在写SQL的时候,总是会遇到很多SQL相关的日期时间问题,汇总于此,便于查看。1.获取上个月最后一个工作日的日期2.获取当前日期往后推迟一个月3.获取当前日期select curdate();4.获取当月最后一天select last_day(curdate());5.获取本月的第一天select date_add(curdate(),interval -day(curdate())+1 day) ;6.获取下个月的第一天select date_add(cu..原创 2020-06-07 16:52:21 · 10886 阅读 · 0 评论 -
初识数据仓库
首先的疑问是什么是数据仓库?作为理工科出身多多少少都会了解数据库的概念,我也一样,了解的层面可能只是知道数据库是存储我们很多系统里用的数据的地方,可能也只是在这个层面了,对于数据仓库的也只是停留在听说的层面。为了了解什么是数据仓库,我可以简单的举个小例子。假设有一天,你收到你boss的任务,要求你在半天的时间内分析一个公司几个项目的业绩分析报表要求,你觉得很简单,因为操作已经在你脑子里...原创 2020-04-12 15:50:38 · 10645 阅读 · 0 评论 -
MySQL中通过SQL来获得所有当年年月的解决办法
我们在做项目的时候,很多时候我们只需要使用当前一年内的年月,而不用日期的具体的时间,目前很多提供的控件,可能要么可以直接获取年月日和具体的时间,要么就是直接获取年月日,那么很多时候不适合我们的需求,不过我们可以通过编程的方法来解决,比如我们通过程序的方式来截取时间,截到月份即可,也能符合我们的需求,但是今天想提供另外一个方法,直接通过SQL来获取日期的年月。通过下面的SQL代...原创 2020-04-06 17:20:05 · 11463 阅读 · 1 评论 -
java调用db2存储过程出现 ERRORCODE=-4476, SQLSTATE=null错误的解决办法
需求:项目需要 使用java调取db2的存储过程,然后根据结果集得到一共返回多少条数据?跟大家一样 使用如下的办法:如上图的红框内:使用rs.last()返回到数据集的结尾,然后来得到这个记录数。然而在生产环境上进行同步的时候出现了ERRORCODE=-4476, SQLSTATE=null,翻遍全网没有同样的情况,蓦然回首发现还是获取数据量的时候出现了错误。把上图红色框内...原创 2020-03-10 17:04:27 · 14132 阅读 · 0 评论 -
mysql 中 使用truncate table XXXX 的时候出现 DROP command denied to user 'xxx' for table ' YYY的问题解决
最近在使用全量更新数据的时候想使用truncate table的时候,在测试环境没有任何问题,但是在生产线上环境出现了如下的错误:drop command denied to XXXX....的错误,一开始很是奇怪,明明自己使用的truncate 但是为什么会出现drop的错误呢?经过查找资料:【参考】http://dev.mysql.com/doc/refman/5.1/en/...原创 2020-03-10 15:16:46 · 29300 阅读 · 0 评论 -
大白话讲解SQL注入
先看一副有趣的漫画这幅画就是sql注入的精华了。什么是SQL注入:SQL注入是一种非常常见的数据库攻击手段,SQL注入漏洞也是网络世界中最普遍的漏洞之一。大家也许都听过某某学长通过攻击学校数据库修改自己成绩的事情,这些学长们一般用的就是SQL注入方法。SQL注入其实就是恶意用户通过在表单中填写包含SQL关键字的数据来使数据库执行非常规代码的过程。简单来说,就是数据「越俎...原创 2020-02-04 20:18:32 · 8840 阅读 · 0 评论 -
mysql中剔除具体分钟时间,只获取年月日的解决办法
在我们日常的开发中,可能偶尔是获取时间的字段来做一些操作,但是有的时候,我们看到的数据是包含具体的时间的。比如:2020-01-13 22:10:23但是我们有的时候不需要后面的具体到分钟的精确时间,而只需要前面的年月日,比如:2020-01-13有的人 肯定会说,直接设置时间类型就可以了,对的没错,可以设置。本文说的是另外一个解决办法,在不修改数据库任何操作的前提下...原创 2020-01-13 18:46:44 · 15511 阅读 · 3 评论 -
使用workbench导入excel中的数据
在平时的工作中,肯定会遇到这样的问题,就是想要插入数据到数据库的表里,但是数据量很大,这样插入就比较麻烦,所以我们可以把数据放入到excel里,毕竟excel里的数据操作起来会方便的多,大家都懂。那么如何从把excel中的数据批量导入到数据库的表里呢?在导入之前,我们需要准备一些工作:1.首先要准备excel中的数据,注意:这里面的列名的数量要跟数据库表里的列的数量一直,但是ex...原创 2019-12-31 16:17:49 · 14810 阅读 · 2 评论 -
Java项目上线后出现CommunicationsException错误
在java项目上线后,第二天再重新运行项目的时候,出现了如下的错误:CommunicationsException:Thelastpacketsuccessfullyreceivedfromtheserverwas60,547,352millisecondsago.Thelastpacketsentsuccessfullytotheserver...原创 2019-11-24 19:44:00 · 12002 阅读 · 0 评论 -
SQL学习笔记(一)
什么是SQL语言?SQL是用于访问和处理数据库的标准计算机语言。SQL:是指结构化查询语言,是我们有能力访问数据库。SQL能做什么呢?可以面向数据库执行查询,可以从数据库中取回数据,插入新的数据,可以从数据库中删除记录,也可以创建数据库,在数据库中创建新的表,存储过程,视图等。一个数据库通常包含一个或者多个表,每个表由一个名字标示(例如客户,订单等),表包含带有原创 2017-11-11 15:41:13 · 481 阅读 · 0 评论 -
SQL学习笔记(二)
承接上文--------------------------------------------------分割线------------------------------------------------------In 操作符in操作符允许我们在where子句中规定多个值语法如下:select * from person where lastname in(‘Adams原创 2017-11-11 16:49:29 · 289 阅读 · 0 评论 -
SQL学习笔记(三)
--------------------------------------------------分割线-----------------------------------------------------------------------Union语句union操作符用于合并两个或多个select语句的结果集。注意:union内部的select语句必须拥有相同数量的列,列也必原创 2017-11-12 17:16:39 · 519 阅读 · 0 评论 -
SQL学习笔记(四)
--------------------------------------------------分割线-----------------------------------------------------------约束约束在SQL中扮演着很重要的角色。约束用于限制加入表的数据的类型。可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过原创 2017-11-12 19:23:58 · 239 阅读 · 0 评论 -
SQL学习笔记(五)
--------------------------------------------------分割线----------------------------------------------------------------------create index 创建索引CREATE INDEX 语句用于在表中创建索引。在不读取整个表的情况下,索引使数据库应用程序可以更快地原创 2017-11-17 19:53:03 · 345 阅读 · 0 评论 -
SQL学习笔记(六)
-------------------------------------------------分割线-----------------------------------------------------------SQL 函数内建 SQL 函数的语法是:SELECT function(列) FROM 表函数的类型在 SQL 中,基本的函数类型和种类有若干种。函数的基本类原创 2017-11-17 20:26:13 · 290 阅读 · 0 评论 -
SQL-存储过程
什么是存储过程:存储过程一般用于处理比较复杂的任务,基础ms这个平台,可以大大降低耗时,其编译机制也提高了数据库执行速度。当然在系统控制方便方面,例如当系统进行调整时,这是只需要将后台存储过程进行更改,而不需要更改客户端程序。也无需重新安装客户端应用程序。存储过程不仅仅适用于大型项目,对于中小型项目,使用存储过程也是非常有必要的。其威力和优势主要体现在:1.存储过程只在创造时进行编译,以后每次执行...转载 2018-03-03 13:39:29 · 223 阅读 · 0 评论 -
SQL-视图
最近复习了一下SQL,再一次学习了SQL中的view,先记录下来:什么是视图:首先视图是一个虚拟的表,只是具有表的结构,行为上像一个表,但实际上并不拥有任何的数据,所以我们也常常称其为 虚表。那么它从哪里来呢?是从一个或者多个表导出的虚拟表,其内容由查询定义。可能看到这,还是挺恍惚的,先来看一下它的定义:--创建视图-- create view view_student as select ...原创 2018-04-03 10:07:49 · 289 阅读 · 0 评论 -
SQL 中case when ...then...else ...end用法
CASE WHEN 基本概念Case具有两种格式:简单Case函数和Case搜索函数。简单Case函数: CASE sex WHEN ‘1’ THEN ‘男’ WHEN ‘0’ THEN ‘女’ ELSE ‘其他’ ENDCase搜索函数: CASE WHEN sex = ‘1’ THEN ‘男’ WHEN sex = ‘0...原创 2018-04-04 14:16:05 · 31570 阅读 · 4 评论 -
SQL中where子句中不能出现聚合函数的原因
首先我们应该熟悉什么聚合函数:例如SUM(),MIN(),Max()这类的,我们称作是聚合函数。那么我们不能在where子句中使用这些函数,为什么呢?聚集函数也叫列函数,它们都是基于整列数据进行计算的,而where子句则是对数据行进行过滤的,在筛选过程中依赖“基于已经筛选完毕的数据得出的计算结果”是一种悖论,这是行不通的。更简单地说,因为聚集函数要对全列数据时行计算,因而使用它的前提是:结果集已经...翻译 2018-06-23 15:48:42 · 25573 阅读 · 7 评论 -
SQL-索引
一,什么是索引?SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间 。1、聚集索引: 聚集索引的意思可以理解为顺序排列,比如一个主键自增的表即为聚集索引,即id为1的存在于第一条,id为2的存在于第二条...假使数据库中是使用数组来存放的这张表中的数据,那么如果我需要查找第100条,那么直接第一条数据的地址加上100...原创 2018-06-23 19:59:56 · 320 阅读 · 0 评论 -
SQL—事务
一、事务概念 事务是一种机制、是一种操作序列,它包含了一组数据库操作命令,这组命令要么全部执行,要么全部不执行。因此事务是一个不可分割的工作逻辑单元。在数据库系统上执行并发操作时事务是作为最小的控制单元来使用的。这特别适用于多用户同时操作的数据通信系统。例如:订票、银行、保险公司以及证券交易系统等。一个数据库事务通常包含对数据库进行读或写的一个操作序列。它的存在包含有以下两个目的: 1、为数...转载 2017-10-23 20:56:01 · 258 阅读 · 0 评论