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

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

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

    2K50发布于 2018-04-04
  • 来自专栏开源部署

    Oracle SQL 异常处理

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

    98510编辑于 2022-08-17
  • 来自专栏机器学习/数据可视化

    SQL进阶-10-SQL处理序列

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

    66710发布于 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的解析结果(执行计划)。

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

    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.8K10编辑于 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
  • 来自专栏IT云清

    SQL---NULL值处理(2)

    SQL NULL 函数 SQL Nulls SQL 数据类型 SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数 请看下面的 "Products" 表 微软的 ISNULL() 函数用于规定如何处理 NULL 值。 NVL(), IFNULL() 和 COALESCE() 函数也可以达到相同的结果。 在这里,我们希望 NULL 值为 0。 SQL Server / MS Access SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0)) FROM Products

    94820发布于 2019-01-16
  • 来自专栏技术碎碎念

    sql server 事务处理

    事物处理 事务是SQL Server中的单个逻辑单元,一个事务内的所有SQL语句作为一个整体执行,要么全部执行,要么都不执行。 2.自动提交事务:自动提交模式是SQL Server的默认事务管理模式。每个Transact-SQL语句在完成时,都被提交或回滚。如果一个语句成功地完成,则提交该语句;如果遇到错误,则回滚该语句。 当提交或回滚显式事务或者关闭隐性事务模式时,SQL Server将返回到自动提交模式。 3.隐式事务 隐性事务模式设置为打开之后,当SQL Server首次执行某些Transact-SQL语句时,都会自动启动一个事务,而不需要使用 BEGIN TRANSACTION 语句。 在第一个事务被提交或回滚之后,下次当连接执行这些语句的任何语句时,SQL Server都将自动启动一个新事务。

    2.7K80发布于 2018-04-09
  • 来自专栏多线程

    MySQL SQL的完整处理流程

    专栏持续更新中:MySQL详解 一、sql执行流程分析 一条sql从客户端发起,在mysql中经过了一系列的流程,归结为如下图所示: 客户端提交一条sql语句,先在查询缓存中查询,如果缓存没有命中,将会进行查表操作 查表的流程总结过为如下: (1)将sql交给解析器处理,生成一个解析树。 (2)预处理器会处理解析器,重新生成一个解析器,这个过程中将会改写sql。 预处理阶段(查询改写) 查询优化阶段:主要有逻辑优化,物理优化。 3.1. 逻辑优化:把sql交给查询优化器之后,会根据生成的解析树,对sql做一些改写操作。 3.2. 通过Processlist,我们可以看到当前在MySQL中执行的所有SQL语句,有没有异常的会话或比较特殊的SQL状态。 tmp_table_size 将临时表中的数据转换到磁盘中 Converting HEAP to MyISAM:线程正在从内部内存临时表到磁盘MYISA临时表 Creating sort index:正在使用内部临时表处理

    44640编辑于 2023-11-20
  • 来自专栏极客生活

    sql语句时间处理那些事儿

    所有语句都是基于mysql的语法,能用一条sql语句搞定的就不要去写程序。 如果你不知道sql语句可以自动完成这个事儿,那么就不可避免要在程序中手动去设置这两个字段的值。 时区转化 很多时候为了程序处理方便统一,表中某个字段的时间是utc时间,但是生成报表需要转化成北京时间。 下面这个sql可以用来获取当天的数据,需要用DATE()函数来获取时间字段的日期值。 不需要查出来后用程序处理sql语句也能通通搞定。 有一个很常用的时序统计相关的需求,按照月统计新增用户数量并按照日期从小到大排序。

    1.3K40发布于 2019-01-03
  • 来自专栏SQL实现

    SQL中的Null值处理

    在日常的开发中,遇到需要处理 Null 值的场景还是蛮常见的。比如,查询某个字段包含 Null 值的记录、在展示的时候将 Null 值转为其它值、聚合包含 Null 值的列等。 今天就和大家聊聊在 MySQL 中处理 Null 值时需要注意的点,本文包含以下内容: 查找 Null 值 将 Null 值转为实际值 在排序中对 Null 值的处理 计算非 Null 值的数量 聚合 比如,查询 emp 表中字段 comm 为 Null 的记录,就这么写 SQL: SELECT * FROM emp WHERE comm IS NULL 有时候根据业务需要,我们要找出在 emp 类似的,在处理字符串类型的字段的时候,我们要找出某个字段没有值的记录。假设该字段叫作 xxx,xxx 允许设置 Null 值。 比如,要求员工的平均提成,正确的 SQL 应该这么写: SELECT AVG(COALESCE(comm, 0)) AS avg_comm FROM emp 聚合的结果: avg_comm

    4.3K30发布于 2020-08-27
  • 来自专栏SQL_BOY

    各类SQL日期时间处理方法

    使用的SQL多了不知道大家有没这样的困惑,SQL的语法大的方面是一致的,如SELECT,JOIN,GROUP BY等,但是在一些函数或某些特定功能处理上还是有很大差异的,而这些差异经常给大家带来困惑,尤其是一个新手从一种 SQL转到另一种SQL的时候,总是抓耳挠腮,不知所措。 今天就把大家常用的SQL语言做一个总结,来看看他们在日期时间处理方面的差异。 :select mow() /current_timestamp() from table1; --比较简单,两个函数返回的结果相同,但是注意返回的是到毫秒的日期时间格式,如果需要到天粒度的话可以截取处理 备注:以上列出了大家工作中常用的一些SQL在日期处理上的一些差别,可能存在部分不严谨的地方,欢迎大家指出。另外在一些功能上也不限于以上提供的方式,大家如果有更好更简洁的方式也欢迎提出。

    5.2K32发布于 2020-07-29
  • 来自专栏Hongten

    SQL SERVER事务处理

    COMMIT TRAN T1 BEGIN DISTRIBUTED TRANSACTION 指定一个由 Microsoft 分布式事务处理协调器 (MS DTC) 管理的 Transact-SQL 分布式事务的起始 为 OFF 时,只回滚产生错误的Transact-SQL 语句,而事务将继续进行处理。编译错误(如语法错误)不受 SET XACT_ABORT 的影响。 这导致语句错误使批处理终止,并使事务回滚。 在存储过程中,ROLLBACK TRANSACTION 语句不影响调用该过程的批处理中的后续语句; 将执行批处理中的后续语句。 对于导致终止批处理并生成内部回滚的错误,将释放在含有该错误语句的批处理内声明的所有游标。

    2.3K20发布于 2018-09-18
  • 来自专栏IT云清

    SQL---NULL值处理(1)

    SQL NULL 值 SQL Date SQL isnull() NULL 值是遗漏的未知数据。 默认地,表的列可以存放 NULL 值。 SQL NULL 值 如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新记录或更新已有的记录。这意味着该字段将以 NULL 值保存。 NULL 值的处理方式与其他值不同。 SQL 的 NULL 值处理 请看下面的 "Persons" 表: Id LastName FirstName Address City 1 Adams John London 2 Bush George SQL IS NULL 我们如何仅仅选取在 "Address" 列中带有 NULL 值的记录呢? 来源:http://www.w3school.com.cn/sql/sql_null_values.asp

    94320发布于 2019-01-16
  • 来自专栏销声匿迹

    sql模糊匹配中%、_的处理

    sql注入之模糊匹配中%、_处理:        StringBuilder sbSql = new StringBuilder(); sbSql.Append(@"SELECT sbSql.AppendFormat(@" AND t.Name like '%{0}%'", name); } 上述采用的是拼接字符串,现改为参数化,防止sql

    2.1K10发布于 2020-09-03
  • 来自专栏小闫笔记

    SQL处理排行榜问题

    . —— Tony Robbins 对现有的数据,根据某一字段进行排名,如果没有 RANK 函数,SQL 语句怎么写? 请写出 sql 语句查询排名第4的学生信息。 ?

    84510发布于 2020-05-26
  • 来自专栏SQL数据库开发

    图解SQL查询处理的各个阶段

    通知:《SQL每日一题》系列不再更新,有需要刷题的小伙伴可以查看历史文章。 大家好,我是李岳。 今天给大家介绍一下SQL查询处理的各个阶段,便于大家理解SQL的执行过程。 执行顺序 我们先用数字+关键字的方式标注一下每个关键字的处理步骤。 这些生成的虚表对SQL发起者(客户端应用程序或者外部查询)是不可用的,只有最后一步生成的虚表才会返回给SQL发起者。如果在查询中没有指定某一个子句,就会跳过相应的步骤。 注:这一部分我会在后续的章节中给大家详细讲解外部行的添加过程 其它的运算符APPLY,PIVOT和UNPIVOT的处理过程与JOIN类似,我们就不再一一演示 通过上述各个子阶段的执行,最终生成虚表VT1 查询过程执行结束,最终返回VT6的结果给SQL发起者。

    44010编辑于 2024-04-25
  • 来自专栏datartisan

    利用Sql处理MR栅格数据

    工作中需要处理MR栅格数据,原始数据关键列类似这个样子: ? 要处理成这个样子(栅格内主服务小区CGI中可能包含50多个CGI,只提取前15个) ? 原始文件有100多个,一共有1000多万行,而且原始数据列特别多,大概几十列吧,合并成多个excel大文件也能搞,就是操作起来太费劲,这种活最合适采用数据库或者python干了,今天咱们就来看看sql如何实现 文件导入时默认所有字段均为varchar(255)数据类型,注意修改栅格内主服务小区CGI字段类型为text、MR总点数为int、RSRP<=-110占比为float 结果查询 根据文件格式转换说明编写sql `栅格内主服务小区弱覆盖采样点数量`,';;;;;;;;;;;;;;'),';',2),';',-1)) else '' end as '小区2采样点(>-110)数量' 完整sql如下: SELECT

    1.3K10发布于 2020-07-22
  • 来自专栏SQL数据库开发

    SQL 中的高级字符处理函数

    分享几个高级的字符处理函数 CHARINDEX 作用 会在第二个字符表达式中搜索一个字符表达式,这将返回第一个表达式(如果发现存在)的开始位置。 不加起始值示例 SELECT CHARINDEX('数据', 'SQL数据库开发SQL数据库开发') 结果 添加起始值示例 SELECT CHARINDEX('数据', 'SQL数据库开发SQL数据库开发 示例 SELECT CONCAT_WS('-','SQL', '数据库',NULL,'开发') 结果: FORMAT 作用 返回使用指定格式和可选区域性格式化的值。 此函数无法进行远程处理,因为它依赖于 CLR 的存在。远程处理需要 CLR 的函数可能导致在远程服务器上出现错误。 空子字符串的处理方式与普通子字符串相同。可以通过使用 WHERE 子句筛选出包含空的子字符串的任何行 (WHERE value <> '')。

    74010编辑于 2024-08-01
  • 来自专栏祝威廉

    使用Spark SQL 构建流式处理程序

    StreamingPro目前已经涵盖流式/批处理,以及交互查询三个领域,实现配置和SQL化 前言 今天介绍利用 StreamingPro 构建流式(Spark Streaming)计算程序 准备工作 这是一个标准的Spark 流式处理程序

    57340发布于 2018-08-27
领券