首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Oracle应用实战五——SQL查询

它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。...结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。 Ø DML(Data Manipulation Language):数据库操作语言。...在数据库中创建新表或删除表(CREAT TABLE 或 DROP TABLE);为表加入索引等。DDL包括许多与人数据库目录中获得数据有关的保留字。它也是动作查询的一部分。...select *|列名 from 表名 where 条件 例如:查询工资大于1500的所有雇员 2 非空和空的限制 示例:查询每月能得到奖金的雇员 分析:只要字段中存在内容表示不为空,如果不存在内容就是...2 排序中的空值问题 排序 order by 经验:当排序时存在null时就会产生问题 nulls first , nulls last --查询雇员的工资从低到高 select * from

1.3K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Oracle创建用户并给用户授权查询指定表或视图的权限

    V_DNPORT" TO NORTHBOUND; 【注】:在用NORTHBOUND登录后查询的时候要在视图前加上DNINMSV31,否则会报表或视图不存在。        ...: 我们有这样一个需求:在数据库中建立两个用户,用户A 用于创建一些视图,直接访问自己数据库中一个模式下的表,以及通过数据库链路访问其他数据库中的表;另一个用户B 能访问到这个用户A 中的视图,并且只能访问视图...、创建用户、授权、授权对象的访问以及查看权限 1.创建临时表空间 Oracle临时表空间主要用来做查询和存放一些缓冲区数据。...临时表空间消耗的主要原因是需要对查询的中间结 果进行排序。...临时表空间的主要作用: 索引create或rebuild Order by 或 group by Distinct 操作 Union 或 intersect 或 minus Sort-merge joins

    8.2K20

    MySQL---数据库从入门走向大神系列(四)-子查询、表与表之间的关系

    子查询: 子查询:嵌套在其它查询中的查询语句。(又称为内部查询) 主查询:包含其它子查询的查询称为主查询。...也可以这么理解: 非相关子查询是独立于外部查询的子查询,子查询总共执行一次,执行完毕后将值传递给外部查询。 ?...现在我们来对这个表做一个查询: 查询具有年龄相同的人在2人及以上的,他们的年龄分别是多少。...也可以这么理解: 执行查询的时候先取得外部查询的一个属性值,然后执行与此属性值相关的子查询,执行完毕后再取得外部父查询的下一个值,依次再来重复执行子查询; 我们先把表格增加一列sex并设置好值。...接下来: 查询不但具有年龄相同的人在2人及以上的,而且性别是1的那些人的年龄。

    1.6K10

    Oracle查询优化-02给查询结果排序

    1以指定的次序返回查询结果 问题 解决方案 总结 2按多个字段排序 问题 解决方案 总结 3按子串排序 问题 解决方案 总结 4 TRANSLATE 语法 工具 总结 5 按数字和字母混合字符串中的字母排序...问题 解决方案 总结 6 处理排序空值 - nulls first 和 nulls last 问题 解决方案 总结 7 根据条件取不同列中的值来排序 问题 解决方案 总结 2.1以指定的次序返回查询结果...如果在查询中使用group by 或者distinct,则不能按照select列中 ---- 2.3按子串排序 问题 按照字符串的某一部分对查询结果进行排序。...---- 2.6 处理排序空值 - nulls first 和 nulls last 问题 emp表中comm字段,这个字段可以为空,需要指定是否将空值排在最后 或者将空值排在最前。...first 和 nulls last 来确保null是首先排序还是最后排序,而不必考虑非空值的排序方式。

    1.2K20

    一对多场景下的exists子查询比join连表查询快这么多?

    两张表连表查询可以使用join、exists和in等方式,其中exists和in都属于依赖子查询。参考博客1给出了三种方式使用场景。...本文记录一次将join查询转换成exists查询后,性能得到了20倍以上的提升。 现有送货单(delivery_order)和送货商品明细(delivery_sku)两张表。...现在有一个需求是根据商品名称或skuId模糊匹配查询包含该sku的送货单列表。...首次优化 查询语句中,对tenant_id、store_id和create_time等字段的限定只对sku表进行了限制,而没有对送货单表做限制,导致只有sku表使用了索引,而送货单表没能走索引。...其实仔细分析我们的sql语句,导致使用临时表和filesort的原因是我们使用了group by,因为我们使用了join查询,为了避免重复,我们必须要使用group by或distinct来去重。

    1.3K30

    PostgreSQL的B-tree索引

    叶子页中的记录包含索引数据(keys)以及指向heap tuple记录(即表的行记录TIDs)的指针。内部页中的记录包含指向索引子页的指针和子页中最小值。...位于叶子节点的一端或另一端,这依赖于索引的创建方式(NULLS FIRST或NULLS LAST)。...如果查询中包含排序,这就显得很重要了:如果SELECT语句在ORDER BY子句中指定NULLs的顺序索引构建的顺序一样(NULLS FIRST或NULLS LAST),就可以使用整个索引。...由于NULLs可以被索引,因此即使表上没有任何标记也可以使用索引。(因为这个索引包含表航记录的所有信息)。如果查询需要排序的数据,而且索引确保了所需的顺序,那么这可能是由意义的。...下面简单介绍基于B-tree的覆盖索引。 具有额外列的唯一索引 前面讨论了:覆盖索引包含查询所需的所有值,需不要再回表。唯一索引可以成为覆盖索引。

    4.6K20

    HIVE基础命令Sqoop导入导出插入表问题动态分区表创建HIVE表脚本筛选CSV中的非文件行GROUP BYSqoop导出到MySQL字段类型问题WHERE中的子查询CASE中的子查询

    ; Hive 创建外部表,仅记录数据所在的路径, 不对数据的位置做任何改变; 在删除表的时候,内部表的元数据和数据会被一起删除, 而外部表只删除元数据,不删除数据。...; // 从别的表中查询出相应的数据并导入到Hive表中,注意列数目一定要相同 insert into table invoice_lines select * from invoice_lines_temp2...temp.source_sys_key = t0.source_sys_key AND temp.legal_company = t0.legal_company ) where temp.jobid = '106'; // 在创建表的时候通过从别的表中查询出相应的记录并插入到所创建的表中...WHERE中的子查询 在hive中的子查询会有各种问题,这里的解决方法是将子查询改成JOIN的方式 先看一段在MySQL中的SQL,下不管这段SQL从哪来的,我也不知道从哪里来的 SELECT...CASE中的子查询 这个与上面是一样的,都是改成JOIN的方式。

    15.4K20

    客快物流大数据项目(七十二):Impala sql 语法

    如果我们使用此子句,则只有在没有具有相同名称的现有数据库时,才会创建具有给定名称的数据库。...使用此语句,我们可以添加,删除或修改现有表中的列,也可以重命名它们。...truncate table_name;7、view视图视图仅仅是存储在数据库中具有关联名称的Impala查询语言的语句。 它是以预定义的SQL查询形式的表的组合。视图可以包含表的所有行或选定的行。...select * from table_name ORDER BY col_name [ASC|DESC] [NULLS FIRST|NULLS LAST]可以使用关键字ASC或DESC分别按升序或降序排列表中的数据...如果我们使用NULLS FIRST,表中的所有空值都排列在顶行; 如果我们使用NULLS LAST,包含空值的行将最后排列。

    1.3K11

    SQL 子查询怎么优化?写的很深!

    它们二者所用的方法大同小异,基本思想是想通的。 本文的例子都基于 TPC-H 的表结构,这里 有一份供你参考。...根据产生的数据来分类,子查询可以分成以下几种: 标量(Scalar-valued) 子查询:输出一个只有一行一列的结果表,这个标量值就是它的结果。如果结果为空(0 行),则输出一个 NULL。...集合比较(Quantified Comparision) 子查询:特指 IN、SOME、ANY 的查询,返回一个布尔值,常用的形式有:x = SOME(Q) (等价于 x IN Q)或 X ALL...r)E(r) 为空,也生成一个 r∘{NULLs}r∘{NULLs}。...Semi Apply A∃A∃:如果 E(r)E(r) 不为空则返回 rr,否则丢弃; Anti-Semi Apply A∄A∄:如果 E(r)E(r) 为空则返回 rr,否则丢弃; 我们用刚刚定义的

    3.7K30

    PostgreSQL 索引类型详解

    默认情况下,B 树索引以升序存储条目,空值排在最后。这意味着对于列 x 的索引正向扫描会生成满足 ORDER BY x 或 ORDER BY x ASC NULLS LAST 的输出。...索引也可以反向扫描,生成满足 ORDER BY x DESC 或 ORDER BY x DESC NULLS FIRST 的输出。...显然,具有非默认排序顺序的索引是一种相对特殊的功能,但有时它们可以为某些查询带来巨大的性能提升。是否值得维护这样的索引取决于查询中需要特定排序顺序的频率。...默认情况下,唯一索引对空值不视为相同,因此允许多个空值存在于索引列中。使用 NULLS NOT DISTINCT 可以修改此行为,使得空值视为相同。...表达式的索引 索引列不必只是基础表的一列,还可以是从表的一列或多列计算得出的函数或标量表达式。此功能对于根据计算结果快速访问表非常有用。

    9410

    微信为什么使用 SQLite 保存聊天记录?

    开发者可以使用空值null来代替,因为unknown和null的布尔值是一样的。 在INSERT和UPDATE语句中,字面量true和false可以大大提高values和set子句的可读性。...在发布sqlite 3.25.0时,SQL Server和PostgreSQL具有同样的限制。PostgreSQL 11消除了这一限制。...重命名列 SQLite引入的另一个特有功能是重命名基准数据库表中的列1。标准的SQL不支持此类功能2。...1:基准数据库表是指用Create table语句创建的数据库表。...派生的数据库表(如Select语句返回的查询结果集)中的列名可以通过SELECT语句、FROM语句或WITH语句来进行改变 2:据我所知,也许可以通过可更新视图或派生的列来模拟该功能。

    2.6K20

    微信为什么使用 SQLite 保存聊天记录?

    开发者可以使用空值null来代替,因为unknown和null的布尔值是一样的。 在INSERT和UPDATE语句中,字面量true和false可以大大提高values和set子句的可读性。...在发布sqlite 3.25.0时,SQL Server和PostgreSQL具有同样的限制。PostgreSQL 11消除了这一限制。...重命名列 SQLite引入的另一个特有功能是重命名基准数据库表中的列1。标准的SQL不支持此类功能2。...1:基准数据库表是指用Create table语句创建的数据库表。...派生的数据库表(如Select语句返回的查询结果集)中的列名可以通过SELECT语句、FROM语句或WITH语句来进行改变 2:据我所知,也许可以通过可更新视图或派生的列来模拟该功能。

    2.2K10

    微信为什么使用 SQLite 保存聊天记录?

    开发者可以使用空值null来代替,因为unknown和null的布尔值是一样的。 在INSERT和UPDATE语句中,字面量true和false可以大大提高values和set子句的可读性。...在发布sqlite 3.25.0时,SQL Server和PostgreSQL具有同样的限制。PostgreSQL 11消除了这一限制。...重命名列 SQLite引入的另一个特有功能是重命名基准数据库表中的列1。标准的SQL不支持此类功能2。...1:基准数据库表是指用Create table语句创建的数据库表。...派生的数据库表(如Select语句返回的查询结果集)中的列名可以通过SELECT语句、FROM语句或WITH语句来进行改变 2:据我所知,也许可以通过可更新视图或派生的列来模拟该功能。

    10610

    Oracle数据库之第一篇

    它不要求用户指定对数据的存放方法,也不需要用户了解 具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构 化查询语言作为数据输入与管理的接口。...在数据库中创建新表或删除 表(CREAT TABLE 或DROP TABLE);为表加入索引等。DDL 包括许多与人数据库目录 中获得数据有关的保留字。它也是动作查询的一部分。... 空值是无效的,未指定的,未知的或不可预知的值  空值不是空格或者0 。...2.排序中的空值问题 当排序时有可能存在null 时就会产生问题,我们可以用nulls first , nulls last 来指定null 值 显示的位置。...默认在记录之上 处理null值显示记录结尾 --nulls last 指定空值记录 置于记录末尾 select * from emp order by comm desc nulls

    3.4K10

    Oracle知识点总结(一)

    在某个区间内 is null 判断为空 is not null 判断不为空 查询每月能得到奖金的员工信息 select * from emp where comm is not null; 查询工资在...first | last 同时排列多列, 用逗号隔开 查询员工信息,按照奖金由高到低排序 select * from emp order by comm desc nulls last; --nulls...select * from emp e1 inner join dept d1 on e1.deptno = d1.deptno; 外连接 左外连接(Mysql) 左表中所有记录显示出来,如果右表没有对应的记录为空...,如果没有对应的员工就加空值 select * from emp e1,dept d1 where e1.deptno(+) = d1.deptno; 子查询 查询语句中嵌套查询语句,用来解决类似:“查询最高工资的员工的信息...not in (select mgr from emp); 上面的SQL是不正确的,因为子查询返回的结果集有null,官方文档表示无论如何都不要在子查询使用 not in,而not in(集合)就相当于

    2.3K10

    Web-第二十四天 Oracle学习【悟空教程】

    Sql中支持四则运算“+,-,*,/” l 什么是空值? 空值是无效的,未指定的,未知的或不可预知的值 空值不是空格或者0 。...2.排序中的空值问题 当排序时有可能存在null时就会产生问题,我们可以用 nulls first , nulls last来指定null值显示的位置。...因为(+)这种形式是oracle数据库独有的,所以要求大家一定要掌握left join 或right join方式的写法。 八、子查询 l 什么是子查询?...使用子查询解决问题:谁的工资比SCOTT高? ? l 子查询的语法 ? 子查询 (内查询) 在主查询之前一次执行完成。 子查询的结果被主查询使用 (外查询)。 l 子查询的类型 ?...数据的类型: ? 使用子查询创建表的语法: ?

    1.9K20

    Mysql优化器-mysql详解(六)

    Nulls_unequal:表示每个null都不相同。 Nulls_ignored:直接忽略null。...子查询:当我们的子查询在from后面的时候,子查询本质上就是一个表,这时候我们叫他 派生表。(派生表会尝试先与外层结合查询,不行的话就会物化) 还可以把子查询放在where或者on后面的时候。...表子查询:表示子查询查询的是多列多行,如同表一样。 当我们外部查询需要依赖内部查询值得时候,这时候又分为相关子查询,反之则是不相关子查询。...当执行不相关 标量查询或者行查询的时候,mysql则会当做两个表来查询,先查询内层子查询,用结果再查询外层。 执行相关子查询,则是重复上述动作,一次一次把查询出来的参数带入外层查询。...Materialized_table: 当in里面的值比较少的时候,则是直接子查询,当in里面的值很多,这时候就会把子查询里面的值写入临时表,并且写入临时表的数据会用唯一建去重--物化表。

    55010
    领券