首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏IT云清

    SQL---NULL值处理(2)

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

    98420发布于 2019-01-16
  • 来自专栏一个爱吃西瓜的程序员

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

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

    2K50发布于 2018-04-04
  • 来自专栏机器学习/数据可视化

    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 ?

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

    SQL处理流程

    概述 本章对SQL处理流程进行介绍。 SQL处理流程概要 SQL处理主要包括解析(parse)、执行(execute)、提取(fetch)几个步骤。 SQL处理的详细流程可以参考以下官方文档中的流程图: ? Database SQL Tuning Guide >About SQL Processing SQL处理主要内容: 1.解析(parse): 当应用程序执行SQL语句时,应用程序会发出解析调用(parse 语义检查 : 检查SQL的访问对象、访问权限等语义内容。 共享池检查:检查共享池(Shared Pool)中是否有相同SQL的解析结果(执行计划)。 2.执行(execute): 根据解析结果的执行计划,进行代入相关的绑定变量值等准备工作,执行SQL。 INSERT/UPDATE/DELETE SQL操作会在这个步骤中进行数据更新。

    74630发布于 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
  • 来自专栏数据库干货铺

    SQL基础(2

    之前的SQL基础1中已经介绍了部分Select的内容,但是,实际使用中select 还有很多其他的用法,本文会再介绍部分select的其他用法。 1. 去重查询 1.1 创建演示表 创建2张表用于演示,表名分别为student和class,后续也将继续用这2张表演示,2张表的数据如下: student表 ? class表 ? 即 AND和OR同时出现时,先处理AND 再与OR判断,但是出现括号,有出现括号的先处理括号里的。 例如: /** 没有括号 先处理and 最后处理or **/ mysql> select * from student where age<23 and class_no='201902' | 2019级02班 | +----------+--------------+ 6 rows in set (0.00 sec) c) in可以用内连接的方式来改写,尤其是多层子查询时,这也是SQL

    63340发布于 2019-11-29
  • 来自专栏捞月亮的小北

    2-SQL

    SQL 全称 Structured Query Language,结构化查询语言。操作关系型数据库的编程语言,定义了 一套操作关系型数据库统一标准 。 2. SQL 通用语法 1). SQL 语句可以单行或多行书写,以分号结尾。 2). SQL 语句可以使用空格/缩进来增强语句的可读性。 3). MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写。 4). SQL 分类 SQL 语句,根据其功能,主要分为四类:DDL、DML、DQL、DCL。 给全部字段添加数据 语法: INSERT INTO 表名 VALUES (值1, 值2, ...); 案例: 插入数据到 employee 表,具体的 SQL 如下: insert into employee 值2, ...), (值1, 值2, ...) ; 案例: 批量插入数据到 employee 表,具体的 SQL 如下: insert into employee values(3,'3','韦一笑',

    1.2K10编辑于 2023-12-01
  • 来自专栏技术杂记

    SQL 精编(2

    ); CREATE DATABASE `test`; ---- insert INSERT INTO tbl_name (col1,col2) VALUES(15,col1*2); insert into teamstemp select * from teams; insert into table_a(field_a1,field_a2,field_a3) select field_b1,field_b2 ,a_name,b_cumsum,c_cumsum,d_spent,e_rate,created_at,updated_at abc_def into outfile "/tmp/tmp_xyz.sql .2"; ---- optimize table mysql> select concat('optimize table ',TABLE_SCHEMA,'.' data load data infile "/tmp/abcdef.sql.925.2" into table abc_def; use xxx; source fff.sql;

    50320发布于 2021-10-19
  • 来自专栏ShyNodes

    my2sql

    my2sql简介 go版MySQL binlog解析工具,通过解析MySQL binlog ,可以生成原始SQL、回滚SQL、去除主键的INSERT SQL等,也可以生成DML统计信息。 类似工具有binlog2sql、MyFlash、my2fback等,本工具基于my2fback、binlog_rollback工具二次开发而来。 产品性能对比 binlog2sql当前是业界使用最广泛的MySQL回滚工具,下面对my2sql和binlog2sql做个性能对比。 my2sql binlog2sql 1.1G binlog生成回滚SQL 1分40秒 65分钟 1.1G binlog生成原始SQL 1分30秒 50分钟 1.1G binlog生成表DML统计信息、以及事务统计信息 采用下载已经编译好的二进制版本 有编译好的linux版本(CentOS release 7.x) 点击下载Linux版 下载好后,上传至服务器/usr/local/下 授予执行权限chmod +x /usr/local/my2sql

    62520发布于 2021-07-27
  • 来自专栏合集

    2】My SQL 管理

    | +--------------+--------------+------------------+ | localhost | guest | 6f8c114b58f2ce9e 你可以在以上实例看到用户密码加密后为: 6f8c114b58f2ce9e. 注意:在 MySQL5.7 中 user 表的 password 已换成了authentication_string。 Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv 另外一种添加用户的方法为通过SQL 注意: MySQL 的SQL语句以分号 (;) 作为结束标识。

    82590发布于 2018-04-12
  • 来自专栏Java架构师历程

    sql必会基础2

    ISAM的两个主要不足之处在于,它不支持事务处理,也不能够容错:如果你的硬盘崩溃了,那么数据文件就无法恢复了。 在使用MySql的时候,你所面对的每一个挑战几乎都源于ISAM和MYIASM数据库引擎不支持事务处理也不支持外来键。 尽管要比ISAM和MYISAM引擎慢很多,但是INNODB和BDB包括了对事务处理和外来键的支持,这两点都是前两个引擎所没有的。 但是如果你的MYSQL表类型是使用InnoDB Tables 或 BDB tables的话,你的MYSQL就可以使用事务处理,使用SET AUTOCOMMIT=0就可以使MYSQL允许在非autocommit 1、可以处理拥有上千万条记录的大型数据 2、支持常见的SQL语句规范 3、可移植行高,安装简单小巧 4、良好的运行效率,有丰富信息的网络支持 5、调试、管理,优化简单(相对其他大型数据库) 051 如何解决

    87110发布于 2018-09-26
  • 来自专栏快乐阿超

    lambda2sql

    ——高尔基 分享一个开源项目lambda2sql: https://github.com/ajermakovics/lambda2sql 编写如下的lambda person -> person.getAge () < 100 && person.getHeight() > 200 会被转换为 age < 100 AND height > 200 使用起来非常简单,也非常有意思 package lambda2sql ; import org.junit.Assert; import org.junit.Test; public class Lambda2SqlTest { @Test public void person.getAge() > age); } private void assertEqual(String expectedSql, SqlPredicate<Person> p) { String sql = Lambda2Sql.toSql(p); Assert.assertEquals(expectedSql, sql); } }

    15420编辑于 2023-06-23
  • 来自专栏python+前端 知识分享

    异常处理2

    三、异常的传递3.1概念:异常的传递——当函数/方法执行出现异常,会即将异常 传递给函数/方法的调用一方,如果传递到主程序仍然没有异常处理,程序才会被终止。 (demo2())错误执行结果:流程理解:整数转换时出现了错误,出现错误的代码仍然是第二行,当第二行代码出现错误后会把异常交给第六行,这行带妈妈是在demo2函数内部调用demo1函数,当异常被传递到demo2 之后并没有在demo2函数内部处理异常,既然没有处理异常就会把这个异常继续向上传递,传递给代码的第九行,第九行是在主程序中调用demo2这个函数。 这个就是异常一级一级传递的过程,如果某个函数出现了异常,会把这个异常向上传递,传递给这个函数的调用一方,一直传递到主程序之后如果发现异常没有被处理程序才会被终止。 示例:需求:提示用户输入密码,如果长度少于8,抛出异常注意:当前函数只负责提示用户输入密码,如果密码长度不正确,需要其他函数进行额外处理。因此可以抛出异常,由其他需要处理的函数捕获异常。

    60730编辑于 2022-09-30
  • 来自专栏IT码农

    Yii2 SqlDataProvider 原生sql 执行sql

    =:status ', [':status' => 1])->queryScalar(); $dataProvider = new SqlDataProvider([ 'sql

    1.3K31发布于 2019-09-29
  • 来自专栏一个爱吃西瓜的程序员

    学习SQL2】-数据库与SQL

    2:为什么DBMS那么重要? 答:DBMS能够实现多个用户同时安全简单的操作大量数据。 3:DBMS的种类 ● 层次数据库(HDB):最古老的数据库之一,现在已经很少使用了。 ● DB2:IBM公司的RDBMS。 ● PostgreSQL:开源的RDBMS。 ● MySQL:开源的RDBMS。 2:表的结构 ● 用来管理数据的二维表在关系数据库中简称为表。 ● 根据SQL语句的内容返回的数据同样是二维表格式。 ● 表的行称为记录,表的列称为字段。 三:SQL概要 1:标准SQL 国际标准化组织(ISO)为SQL制定了相应的标准,以此为基准的SQL称为标准SQL 虽然不同的RDBMS存在一些特使的SQL语句,但学会标准SQL就可以在各种RDBMS 2SQL语句及其种类 SQL使用关键字、表名、列名等组合成一句SQL语句来描述操作的内容。 根据指令种类不同,SQL语句可分为三种: ● DDL(数据定义语言):用来创建和删除数据库或表等对象。

    5K90发布于 2018-04-04
  • 来自专栏NLP/KG

    NL2SQL进阶系列(2):DAIL-SQL、DB-GPT开源应用实践详解Text2SQL

    NL2SQL进阶系列(2):DAIL-SQL、DB-GPT开源应用实践详解Text2SQLNL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(Spider vs BIRD)全面对比优劣分析 [Text2SQL、Text2DSL]NL2SQL基础系列(2):主流大模型与微调方法精选集,Text2SQL经典算法技术回顾七年发展脉络梳理NL2SQL进阶系列(1):DB-GPT-Hub、SQLcoder 、Text2SQL开源应用实践详解NL2SQL进阶系列(2):DAIL-SQL、DB-GPT开源应用实践详解[Text2SQL]NL2SQL任务的目标是将用户对某个数据库的自然语言问题转化为相应的SQL 随着LLM的发展,使用LLM进行NL2SQL已成为一种新的范式。在这一过程中,如何利用提示工程来发掘LLM的NL2SQL能力显得尤为重要。 图片特性一览私域问答&数据处理&RAG支持内置、多文件格式上传、插件自抓取等方式自定义构建知识库,对海量结构化,非结构化数据做统一向量存储与检索多数据源&GBI支持自然语言与Excel、数据库、数仓等多种数据源交互

    1.7K11编辑于 2024-04-12
  • 来自专栏大数据学习与分享

    Spark SQL 小文件问题处理

    在生产中,无论是通过SQL语句或者Scala/Java等代码的方式使用Spark SQL处理数据,在Spark SQL写数据时,往往会遇到生成的小文件过多的问题,而管理这些大量的小文件,是一件非常头疼的事情 分析 1)执行上述insert操作时的分区并行度,主要受tmp的分区数(对应一个DataSet)影响, 2)tmp的分区数主要受t1、t2以及union all的影响 3)暂且不考虑t1或t2是物理表还是经过其他处理生成的临时表 ,它们的分区数是确定的,这里主要看经过union all处理后,生成的tmp的分区数和t1、t2的分区数有何关系? 同样的这种机制也可以套用到Spark SQL中的DataSet上,那么就很好解释了tmp的分区数为什么等于t1和t2的分区数的和。 最后,Spark中一个task处理一个分区从而也会影响最终生成的文件数。 当然上述只是以Spark SQL中的一个场景阐述了小文件产生过多的原因之一(分区数过多)。

    2.9K20发布于 2020-08-10
  • 来自专栏开源部署

    MySQL的SQL处理(Prepared)

    Prepared SQL Statement:SQL的执行、预编译处理语法、注意点 一、SQL 语句的执行处理 1、即时 SQL   一条 SQL 在 DB 接收到最终执行完毕返回,大致的过程如下:    词法和语义解析;   2. 优化 SQL 语句,制定执行计划;   3. 执行并返回结果;   如上,一条 SQL 直接是走流程处理,一次编译,单次运行,此类普通语句被称作 Immediate Statements (即时 SQL)。 2、预处理 SQL   但是,绝大多数情况下,某需求某一条 SQL 语句可能会被反复调用执行,或者每次执行的时候只有个别的值不同(比如 select 的 where 子句值不同,update 的 set 利用变量定义预处理 SQL (直角三角形计算) mysql> SET @s = 'SELECT SQRT(POW(?

    1.9K10编辑于 2022-08-17
  • 来自专栏SQL_BOY

    各类SQL日期时间处理方法

    使用的SQL多了不知道大家有没这样的困惑,SQL的语法大的方面是一致的,如SELECT,JOIN,GROUP BY等,但是在一些函数或某些特定功能处理上还是有很大差异的,而这些差异经常给大家带来困惑,尤其是一个新手从一种 SQL转到另一种SQL的时候,总是抓耳挠腮,不知所措。 今天就把大家常用的SQL语言做一个总结,来看看他们在日期时间处理方面的差异。 “天”差值、“小时”差值等,另外需要把date1和date2转为date类型,否则SQL会报错。 备注:以上列出了大家工作中常用的一些SQL在日期处理上的一些差别,可能存在部分不严谨的地方,欢迎大家指出。另外在一些功能上也不限于以上提供的方式,大家如果有更好更简洁的方式也欢迎提出。

    5.2K32发布于 2020-07-29
  • 来自专栏SQL实现

    SQL中的Null值处理

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

    4.4K30发布于 2020-08-27
领券