oracle经典查询练手-练习4

2024-06-18 18:58

本文主要是介绍oracle经典查询练手-练习4,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

通配符

SQL> select ename from emp where enamelike '%A%N%';

 

ENAME

----------

ALLEN

MARTIN

 

SQL> select ename from emp where enamelike '%A%' AND '%N%';

select ename from emp where ename like'%A%' AND '%N%'

                                                    *

第 1 行出现错误:

ORA-00920: 无效的关系运算符 

 

 

SQL> select ename from emp where ename like '%A%' AND like '%N%';

select ename from emp where ename like'%A%' AND like '%N%'

                                                *

第 1 行出现错误:

ORA-00936: 缺失表达式

 

 

SQL> select ename from emp where ename like '%A%' AND ename like '%N%';

 

ENAME

----------

ALLEN

MARTIN

=====================结论=======================

1、 通配符%是通配多个字符,通配符_是通配一个字符。

2、 使用通配符必须加【列名 like】

3、 ename like '%A%N%'ename like '%A%' AND ename like '%N%'结果一样。

================================================

 

Desc为降序

SQL> select ename,sal,comm from empwhere comm>0 order by sal,comm desc;

 

ENAME             SAL       COMM

----------             ----------    ----------

MARTIN           1250       1400

WARD             1250       500

ALLEN            1600       300

=================结论===============

Desc为降序(默认为升序)

====================================

 

Where 不能使用别名

SQL> select ename,sal+comm as gold fromemp where sal+commnot between 1000and

1500 order by gold;

 

ENAME            GOLD

---------- ----------

WARD             1750

ALLEN            1900

MARTIN           2650

 

SQL> select ename,sal+comm as gold fromemp where gold not between 1000 and 1500 order by gold;

select ename,sal+comm as gold from empwhere gold not between 1000 and 1500 order by gold

                                             *

第 1 行出现错误:

ORA-00904: "GOLD": 标识符无效

=================结论=================

Where语句不能识别别名

======================================

 

Is null 和 = null

SQL> select ename,job,sal+comm as wagefrom emp where job='MANAGER' or job='SALESMAN'and sal+comm between 15000 and 20000;

 

ENAME     JOB             WAGE

----------     ---------           ----------

JONES     MANAGER

BLAKE     MANAGER

CLARK     MANAGER

 

SQL> select ename,job,(sal+comm)*12 aswage from emp where job='MANAGER' or job='SALESMAN' and (sal+comm)*12 between15000 and 20000;

 

ENAME     JOB             WAGE

----------     ---------           ----------

JONES     MANAGER

BLAKE     MANAGER

CLARK     MANAGER

TURNER    SALESMAN       18000

 

SQL> select ename,job,(sal+comm)*12 aswage from emp where job in ('MANAGER','SALESMAN')and(sal+comm)*12 between 15000 and 20000;

 

ENAME     JOB             WAGE

---------- --------- ----------

TURNER    SALESMAN       18000

=============结论=============

在in中可以一对多的匹配

==============================

 

SQL> select empno,comm from emp wherecomm is null;

 

    EMPNO       COMM

----------       ----------

     7369

     7566

     7698

     7782

     7788

     7839

     7876

     7900

     7902

     7934

 

已选择10行。

 

SQL> select empno,comm from emp where comm = null;

 

未选定行

===============结论=============

isnull 是判断值是不是null,用=null则是跟null进行比较运算,而null跟任何值作比较运算结果都是false,也就不会有任何查询纪录。

================================

 

拼接字段

SQL> select 'select * from ' table_namefrom user_tables;

 

TABLE_NAME

--------------

select * from

select * from

select * from

select * from

 

SQL> select 'select * from '|| table_name|| fromuser_tables;

select 'select * from '|| table_name|| fromuser_tables

                                       *

第 1 行出现错误:

ORA-00936: 缺失表达式

 

 

SQL> select 'select * from '|| table_name from user_tables;

 

'SELECT*FROM'||TABLE_NAME

--------------------------------------------

select * from DEPT

select * from EMP

select * from BONUS

select * from SALGRADE

 

SQL> select 'select * from '|| table_name||';' fromuser_tables;

 

'SELECT*FROM'||TABLE_NAME||';'

---------------------------------------------

select * from DEPT;

select * from EMP;

select * from BONUS;

select * from SALGRADE;

 

SQL> select 'select * from '||table_name||';' as a from user_tables;

 

A

---------------------------------------------

select * from DEPT;

select * from EMP;

select * from BONUS;

select * from SALGRADE;

=================结论==================

||是拼接字段

=======================================


这篇关于oracle经典查询练手-练习4的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1072836

相关文章

MyBatis编写嵌套子查询的动态SQL实践详解

《MyBatis编写嵌套子查询的动态SQL实践详解》在Java生态中,MyBatis作为一款优秀的ORM框架,广泛应用于数据库操作,本文将深入探讨如何在MyBatis中编写嵌套子查询的动态SQL,并结... 目录一、Myhttp://www.chinasem.cnBATis动态SQL的核心优势1. 灵活性与可

Mybatis嵌套子查询动态SQL编写实践

《Mybatis嵌套子查询动态SQL编写实践》:本文主要介绍Mybatis嵌套子查询动态SQL编写方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、实体类1、主类2、子类二、Mapper三、XML四、详解总结前言MyBATis的xml文件编写动态SQL

在Java中基于Geotools对PostGIS数据库的空间查询实践教程

《在Java中基于Geotools对PostGIS数据库的空间查询实践教程》本文将深入探讨这一实践,从连接配置到复杂空间查询操作,包括点查询、区域范围查询以及空间关系判断等,全方位展示如何在Java环... 目录前言一、相关技术背景介绍1、评价对象AOI2、数据处理流程二、对AOI空间范围查询实践1、空间查

MySQL基本查询示例总结

《MySQL基本查询示例总结》:本文主要介绍MySQL基本查询示例总结,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Create插入替换Retrieve(读取)select(确定列)where条件(确定行)null查询order by语句li

Oracle 通过 ROWID 批量更新表的方法

《Oracle通过ROWID批量更新表的方法》在Oracle数据库中,使用ROWID进行批量更新是一种高效的更新方法,因为它直接定位到物理行位置,避免了通过索引查找的开销,下面给大家介绍Orac... 目录oracle 通过 ROWID 批量更新表ROWID 基本概念性能优化建议性能UoTrFPH优化建议注

PostgreSQL 序列(Sequence) 与 Oracle 序列对比差异分析

《PostgreSQL序列(Sequence)与Oracle序列对比差异分析》PostgreSQL和Oracle都提供了序列(Sequence)功能,但在实现细节和使用方式上存在一些重要差异,... 目录PostgreSQL 序列(Sequence) 与 oracle 序列对比一 基本语法对比1.1 创建序

MySQL中like模糊查询的优化方案

《MySQL中like模糊查询的优化方案》在MySQL中,like模糊查询是一种常用的查询方式,但在某些情况下可能会导致性能问题,本文将介绍八种优化MySQL中like模糊查询的方法,需要的朋友可以参... 目录1. 避免以通配符开头的查询2. 使用全文索引(Full-text Index)3. 使用前缀索

基于Redis实现附近商铺查询功能

《基于Redis实现附近商铺查询功能》:本文主要介绍基于Redis实现-附近商铺查询功能,这个功能将使用到Redis中的GEO这种数据结构来实现,需要的朋友可以参考下... 目录基于Redis实现-附近查询1.GEO相关命令2.使用GEO来实现以下功能3.使用Java实现简China编程单的附近商铺查询4.Red

mysql递归查询语法WITH RECURSIVE的使用

《mysql递归查询语法WITHRECURSIVE的使用》本文主要介绍了mysql递归查询语法WITHRECURSIVE的使用,WITHRECURSIVE用于执行递归查询,特别适合处理层级结构或递归... 目录基本语法结构:关键部分解析:递归查询的工作流程:示例:员工与经理的层级关系解释:示例:树形结构的数

SQL常用操作精华之复制表、跨库查询、删除重复数据

《SQL常用操作精华之复制表、跨库查询、删除重复数据》:本文主要介绍SQL常用操作精华之复制表、跨库查询、删除重复数据,这些SQL操作涵盖了数据库开发中最常用的技术点,包括表操作、数据查询、数据管... 目录SQL常用操作精华总结表结构与数据操作高级查询技巧SQL常用操作精华总结表结构与数据操作复制表结