首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏一个爱吃西瓜的程序员

    学习SQL【10】-SQL高级处理

    所谓高级处理,从用户的角度来讲,就是那些对数值进行排序,计算销售总额等我们熟悉的处理;从SQL的角度来讲,就是近几年才添加的新功能,这些新功能使得SQL的工作范围不断得到扩展。 OLAP是OnLine Analytical Processing的简称,意思是对数据库进行实时分析处理。 窗口函数就是为了实现OLAP而添加的标准SQL功能。 为了避免混淆,SQL提供了一个用来判断超级分组记录的NULL的特定函数—GROUPING函数。 | 500 办公用品 | 2017-11-11 | 100 办公用品 | 登记日期 合计 | 600 厨房用具 | SQL的基础语法知识大致就是这些,如果你稍微会一点SQL,看到这些代码应该很好理解的。如果你没有编程基础,可能这些代码对于你来说过于难以理解。写的很粗糙,勉强可以用来温习SQL的语法。

    2K50发布于 2018-04-04
  • 来自专栏网安菜鸟成长记

    sql-labs-less11less12|SQL注入

    前言: 此篇讲解sql-labs系列第11关和第12关,这一关明显跟前面有点不太一样,传参方式由GET传参改为了POST传参,不过除了传参方式有所变化个人感觉其他的注入方法跟第一关差不多,我用的是hackbar 正文: less11: 直接上图: ? 可以看到传入参数以后没有任何回显,这一点跟第一关不太一样,参数名可以通过查看器查看(F12),下面进行测试: ? 可以看到数据库名成功爆出,后面就跟第一关一样了,这里不再讲解,语句可以参考第一篇sql-labs-less1/2 less12: 12关让11关的单引号换为双引号再加上)右括号闭合就可以了,语句如下:

    83310发布于 2020-10-28
  • 来自专栏机器学习/数据可视化

    SQL进阶-11-having子句

    SQL进阶-11-having子句 HAVING子句是SQL中非常重要的功能,本文将再次介绍该子句的使用。作者指出:SQL语句处理的对象是集合而不是记录,我们要有面向集合的思考方式。 SQL实现 全称量化实现 所有的队员都是待命,这是一个全称量化的命题,我们使用not exist来表达 都是待命状态等价于没有不是待命状态 -- 1、全称量化实现 select team_id SQL实现 having实现 满足需求城市的特点:排除重复元素前后的个数不同!!! 如果不存在重复元素,不管是否加上distinct可选项,count的结果是相同的 ? when count(*) <> max(seq) - min(seq) + 1 then '存在缺失编号' else '连续' end as gap from Seqtable; 查找最小的缺失值编号的SQL seq + 1) from Seqtale s1 where not exists (select * from Setable s2 -- not exists能够处理

    96610发布于 2021-03-01
  • 来自专栏机器学习/数据可视化

    SQL进阶-10-SQL处理序列

    SQL进阶-10-用SQL处理数列 在关系型数据库的数据结构中,默认是不考虑数据的顺序。处理有序集合在SQL中不能直接实现,但是可以通过集合和谓词来间接实现处理有序数据的需求。 需求1-生成连续编号 需求 不使用数据库中自带的函数,实现任意长的连续编号序列,比如生成0-99的100个连续编号 SQL实现 先解决一个问题:00-99这100个数字中,0,1,2……9这10个数字分别出现了多少次 满足要求的序列: 根据上面的图形,我们发现满足要求的序列:以n为起点,n+(3-1)=n+2为终点的作为全部是未预定状态 SQL实现-不考虑换排 -- 不考虑换排 select s1.seat as 上面代码的主要工作: 找到起点和终点 起点和终点之间的座位都是未预定的状态 全称量化问题:将所有满足条件P转成不存在不满条件P的行 SQL实现-考虑换排 给表中的数据加上了行编号row_id ? 因为发生换排,9,10,11不再符合要求。因此,为了解决换排问题,需要保证:全部都在同一排 ?

    69810发布于 2021-03-01
  • 来自专栏Oracle数据库技术

    SQL处理流程

    概述 本章对SQL处理流程进行介绍。 SQL处理流程概要 SQL处理主要包括解析(parse)、执行(execute)、提取(fetch)几个步骤。 SQL处理的详细流程可以参考以下官方文档中的流程图: ? Database SQL Tuning Guide >About SQL Processing SQL处理主要内容: 1.解析(parse): 当应用程序执行SQL语句时,应用程序会发出解析调用(parse call)给数据库,解析调用(parse call)会打开或者创建一个游标(Cursor),并进行以下的检查: 语法检查 : 检查语句(SQL的拼写等)是否符合SQL语法。 语义检查 : 检查SQL的访问对象、访问权限等语义内容。 共享池检查:检查共享池(Shared Pool)中是否有相同SQL的解析结果(执行计划)。

    75330发布于 2020-03-25
  • 来自专栏开源部署

    Oracle SQL 异常处理

    而用户自定义异常以及预定义异常不回终止程序,但会终止该 PL/SQL 代码块,所以一个存储过程中可以有多个 PL/SQL 代码块。 关于异常的语法及定义: 什么是异常: PL/SQL用异常和异常处理器来实现错误处理 Oracle中出现错误的情形通常分为编译时错误(compile-time error)和运行时错误(run-time 异常在PL/SQL执行过程中很可能出现 对异常如果不进行处理,异常可能会中断程序的运行 捕获异常的规则: 在异常部分WHEN 子句没有数量限制 当异常抛出后,控制无条件转到异常处理部分 EXCEPTION 中错误处理的步骤: 步骤1:如果当前块中有该异常的处理器,则执行该异常处理语句块,然后控制权传递到外层语句块 步骤2:如果没有当前异常的处理器,把该异常传播给外层块。 编写PL/SQL块,使用SELECT语句将管理者编号为空的员工的姓名及工作编号显示出来,如果符合条件的员工多于一人,则返回字符串“最高管理者人员过多!”

    1K10编辑于 2022-08-17
  • 来自专栏学习/读书笔记

    Java入门(11)-- 异常处理

    这个对象就是异常对象,通过异常处理机制,可以将非正常情况下的处理代码与程序的主逻辑分离,即在编写代码主流程的同时在其他地方处理异常。 11.2 处理程序异常错误 为了保证程序有效地进行,需要对发生的异常进行相应的处理。 在Java中,如果某个方法抛出异常,既可以在当前方法中进行捕捉,然后处理该异常,也可以将异常向上抛出,由方法调用者来处理。 11.2.1 错误 异常产生后,如果不做任何处理,程序就会被终止。 e) { //对Exceptiontype2 的处理 } ... finally { //程序块 } 通过异常处理器的语法可知,异常处理器大致分为try-catch语句块和finally 11.3 Java常见异常 在Java中提供了一些异常用来描述经常发生的错误,其中,有的需要程序员进行捕获处理或声明抛出,有的是由Java虚拟机自动进行捕获处理的。

    53530编辑于 2022-04-07
  • 来自专栏小工匠聊架构

    MyBatis-11MyBatis动态SQL之【if】

    动态SQL概述 if概述 在WHERE条件中使用if 需求 1.UserMapper接口中增加接口方法 2.UserMapper.xml配置动态SQL 3.单元测试 在UPDATE条件中使用if 需求 配置动态SQL 3.单元测试 动态SQL概述 MyBatis的强大特性之一就是使用动态SQL,我们在使用JDBC的时候,根据不同的条件拼接SQL语句不仅不能忘了必要的空格,还要注意省略掉列名列表最后的逗号 ,处理方式显得很繁琐。 MyBatis的动态SQL则让你摆脱这种痛苦。 注意SQL中where关键字后面的条件 where 1 = 1, 又有两个条件都是动态的,如果没有1=1这个默认条件,当两个if都不满足时,最后生成的SQL就会以where结束,不符合SQL规范,会报错

    91730发布于 2021-08-17
  • 来自专栏机器学习/数据可视化

    Spark笔记11-Spark-SQL基础

    Spark SQL基础 Hive Hive会将SQL语句转成MapReduce作业,本身不执行SQL语句。 作业 将HiveQL解析换成了Spark上的RDD操作 存在的两个主要问题: spark是线程并行,mapreduce是进程级并行 spark在兼容Hive的基础上存在线程安全性问题 Spark SQL 产生原因 关系数据库在大数据时代下不再满足需求: 用户要从不同的数据源操作不同的数据,包含结构化和非结构化 用户需要执行高级分析,比如机器学习和图形处理等 大数据时代经常需要融合关系查询和复杂分析算法 Spark SQL解决的两大问题: 提供DF API,对内部和外部的各种数据进行各种关系操作 支持大量的数据源和数据分析算法,可以进行融合 架构 Spark SQL在Hive 兼容层面仅仅是依赖 HiveQL解析、Hive元数据 执行计划生成和优化是由Catalyst(函数式关系查询优化框架)负责 Spark SQL中增加了数据框DataFrame,数据的来源可以是RDD,也可以是Hive、HDFS

    59010发布于 2021-03-02
  • 来自专栏学习笔记持续记录中...

    JDBC 处理事务(11

    即一个事务内部的操作及使用的数据对兵法的其他事务是隔离的,并发执行的各个事务之间不能互相干扰 持久性:持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来的其他操作和数据库故障不应该对其有任何影响 JDBC 事务处理 1)事务:指构成单个逻辑工作单元的操作集合 2)事务处理:保证所有事务都作为一个工作单元来执行,即使出现了故障,都不能改变这种执行方式。 当在一个事务中执行多个操作时,要么所有的事务都被提交(commit),要么整个事务回滚(rollback)到最初状态 3)当一个连接对象被创建时,默认情况下是自动提交事务:每次执行一个SQL语句时,如果执行成功 ,就会向数据库自动提交,而不能回滚 4)为了让多个SQL语句作为一个事务执行: - 调用Connection对象的setAutoCommit(false);以取消自动提交事务 - 在所有的SQL语句都成功执行后 sql没有执行,从而违反了数据的一致性 System.out.println(i); sql = "UPDATE users SET balance = " + "balance

    44810发布于 2020-03-17
  • 来自专栏MasiMaro 的技术博文

    Java 学习笔记(11)——异常处理

    比如说,你的代码少了一个分号,那么运行出来结果是提示是错误 java.lang.Error;如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出 java.lang.ArithmeticException 从Exception继承的类都是异常,异常可以被处理处理完后程序仍然可以继续运行。从Error继承来的类都是错误,在运行时错误无法被处理,只能修改代码逻辑。 从Runtime中继承的类都是运行时异常,这类异常在程序中可以处理,也可以不处理。而非运行时异常在代码中必须处理。不然编译会报错。 Java中异常处理的方式 Java中的异常处理主要有下列几种: 使用 throw 在指定方法中抛出指定异常。 在使用try 处理异常时需要注意: 如果catch 中捕获的有多个异常,且异常间有继承关系,那么必须把子类写在前面,父类在后面 异常中的常用方法 Throwable 中定义了3个异常处理的方法: String

    68340发布于 2019-07-01
  • 来自专栏Java 技术小屋

    Java 异常处理下篇:11 个异常处理最佳实践

    前言在前两篇文章中,我们深入研究了 Java 异常处理中的 Throwable 类和异常处理常用关键字以及 finally 使用中的陷阱。 最佳实践早抛出,晚捕获原则早抛出,晚捕获是异常处理中比较经典的原则,它告诉我们出现异常时应该尽可能早的抛出而不是等异常变得更加复杂后再抛出;而捕获异常时,需要等我们可以处理时再进行捕获,而不是为了捕获而捕获 }只捕获实际可处理的异常不要为了捕获异常而捕获,只捕获可以处理的异常来让代码更加健壮,无法处理异常捕获并没有实际意义。 使用条件语句或其他逻辑结构来处理正常的程序流程。使用模板方法处理重复的 try-catch如果在多个地方有相似的异常处理逻辑,可以考虑将其提取为一个模板方法,以避免重复代码。 异常处理后清理资源在异常处理中,确保清理已分配的资源,以避免资源泄漏。可以通过在 finally 块中进行清理操作来实现。

    1K40编辑于 2023-12-15
  • Java 异常处理下篇:11 个异常处理最佳实践

    前言在前两篇文章中,我们深入研究了 Java 异常处理中的 Throwable 类和异常处理常用关键字以及 finally 使用中的陷阱。 最佳实践早抛出,晚捕获原则早抛出,晚捕获是异常处理中比较经典的原则,它告诉我们出现异常时应该尽可能早的抛出而不是等异常变得更加复杂后再抛出;而捕获异常时,需要等我们可以处理时再进行捕获,而不是为了捕获而捕获 }只捕获实际可处理的异常不要为了捕获异常而捕获,只捕获可以处理的异常来让代码更加健壮,无法处理异常捕获并没有实际意义。 使用条件语句或其他逻辑结构来处理正常的程序流程。使用模板方法处理重复的 try-catch如果在多个地方有相似的异常处理逻辑,可以考虑将其提取为一个模板方法,以避免重复代码。 异常处理后清理资源在异常处理中,确保清理已分配的资源,以避免资源泄漏。可以通过在 finally 块中进行清理操作来实现。

    48810编辑于 2024-11-11
  • 来自专栏Java项目实战

    1100万大表11SQL优化

    时间:上周六刚刚从外面回来,报出生产数据慢SQL开始优化select t.x te.xfrom o_detail tleft join p_detail teon t.A = te.A and t.B

    29330编辑于 2023-06-30
  • 来自专栏Java项目实战

    1100万大表11SQL优化

    时间:上周六刚刚从外面回来,报出生产数据慢SQL开始优化 select t.x te.xfrom o_detail t left join p_detail te on t.A = te.A and

    45020发布于 2021-07-22
  • 来自专栏Python与算法之美

    11,二维dataframe —— 类SQL操作

    你可以像操作excel表一样操作DataFrame:插入行和列,排序,筛选…… 你可以像操作SQL数据表一样操作DataFrame:查询,分组,连接…… 本节我们介绍DataFrame的类SQL操作。 一,表查询 类似 SQL中 select ... where ... 常用的有:布尔索引,query,filter 相关方法 1,利用布尔索引 ? ? ? ? 2,利用query ? ? 三,表分组 表分组类似SQL中的 select ... group by ...操作,可以代替excel表格中的数据透视表功能。 ? 1,分组对象性质 ? ? ? ?

    98820发布于 2020-07-20
  • 来自专栏自动化、性能测试

    Mysql常用sql语句(11)- between and 范围查询

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 between and可以判断值是否在指定范围内

    2.6K10发布于 2020-06-09
  • 来自专栏JavaPark

    SQL 必知必会 50 题(11 - 15)

    SQL11 返回更多的产品 描述 OrderItems 表含有:订单号 order_num,quantity 产品数量 order_num quantity a1 105 a2 1100 a2 200 quantity >= 100; SELECT DISTINCT order_num FROM OrderItems WHERE quantity > 100 OR quantity = 100; SQL12 vend_state) vend_name vend_country vend_state apple USA CA vivo CNA shenzhen huawei CNA xian 问题 编写 SQL SELECT vend_name FROM Vendors WHERE vend_country = 'USA' AND vend_state = 'CA'; SQL13 检索并列出已订购产品的清单 描述 quantity BR01 a1 105 BR02 a2 1100 BR02 a2 200 BR03 a4 1121 BR017 a5 10 BR02 a2 19 BR017 a7 5 问题 编写 SQL

    77130编辑于 2022-06-15
  • 来自专栏开源部署

    MySQL的SQL处理(Prepared)

    Prepared SQL Statement:SQL的执行、预编译处理语法、注意点 一、SQL 语句的执行处理 1、即时 SQL   一条 SQL 在 DB 接收到最终执行完毕返回,大致的过程如下:    执行并返回结果;   如上,一条 SQL 直接是走流程处理,一次编译,单次运行,此类普通语句被称作 Immediate Statements (即时 SQL)。 2、预处理 SQL   但是,绝大多数情况下,某需求某一条 SQL 语句可能会被反复调用执行,或者每次执行的时候只有个别的值不同(比如 select 的 where 子句值不同,update 的 set 注意:   虽然可能是通过预处理 SQL 的方式一定程度的提高了效率,但是对于优化而言,最优的执行计划不是光靠 SQL 语句的模板化来实现的,往往还是需要通过具体值来预估出成本代价。 @var_name] ...]; # 删除(释放)定义 {DEALLOCATE | DROP} PREPARE stmt_name;  1、利用字符串定义预处理 SQL (直角三角形计算) mysql

    1.9K10编辑于 2022-08-17
  • 来自专栏大数据学习与分享

    Spark SQL 小文件问题处理

    在生产中,无论是通过SQL语句或者Scala/Java等代码的方式使用Spark SQL处理数据,在Spark SQL写数据时,往往会遇到生成的小文件过多的问题,而管理这些大量的小文件,是一件非常头疼的事情 大量的小文件会影响Hadoop集群管理或者Spark在处理数据时的稳定性: 1.Spark SQL写Hive或者直接写入HDFS,过多的小文件会对NameNode内存管理等产生巨大的压力,会影响整个集群的稳定运行 此外,Spark在处理任务时,一个分区分配一个task进行处理,多个分区并行处理,虽然并行处理能够提高处理效率,但不是意味着task数越多越好。如果数据量不大,过多的task运行反而会影响效率。 同样的这种机制也可以套用到Spark SQL中的DataSet上,那么就很好解释了tmp的分区数为什么等于t1和t2的分区数的和。 最后,Spark中一个task处理一个分区从而也会影响最终生成的文件数。 当然上述只是以Spark SQL中的一个场景阐述了小文件产生过多的原因之一(分区数过多)。

    2.9K20发布于 2020-08-10
领券