`
lms168
  • 浏览: 61593 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

oracle表的简单查询

 
阅读更多

desc emp显示emp表的结构

 

dual 是一个特殊的表,里面没有任何数据

 

select 语句:
计算数学表达式:select from 3*2 from dual 

 

重命名的形式输出: select 3*2 as mult_result from dual;

注意中间的as可以省略不写,且中间不能用空格隔开(eg:mult result );要想用空格隔开mult result 加上双引号“”后将可以原样输出;as后面的重命名要么加双引号要么不加,使用单引号将会出错。而插入值时除了number类型的值,其他类型的值都要用单引号括起来

 

空值运算函数:nvl(name,number)

任何运算法则(加减乘除)与含有空值的字段的运算结果都是空值,nvl(name,number)可以用number值来代替name字段为null处的值

eg:  select ename ,sal *12+nvl(comm,0) from emp   //表示如果comm列里面的值是空值,则用0代替,如果不是空值,则不起任何作用

 

查询空值情况:

* 不能用‘=’作为判断连接词,不是空就是 is not null

eg:select * from a_tbl where money is null  

 

 

字符串的连接用||
连接字符:select ename || 'fdfdfdfd' from emp;
如果连接的字符里面已经有一个单引号了,就用两个单引号代替一个单引号;

如:select ename || 'fdf''dfdfd' from emp;

 

dintinct 表示去掉重复的,修饰多个字段的组合的时候表示把这多个字段组成的重复的记录消除掉

 

模糊查询:like 

eg:select name from a_tbl where name like '%lms%'  

_代表一个字母,如:查询第二个字母为a的姓名 like '_a%'
默认的转义字符是\

eg:当模糊查询的条件里面就有%时查询语句如下: like '%\%%'
当不使用\作为转义字符写法如下(转义字符为$):select name from a_tbl where name like '%$%%' escape '$'

 

in

eg: select * from a_tbl where name in ('张三','李四','王五');

 

排序:order by(desc降序,asc升序),order by 默认为asc
eg:select * from emp order by EMPNO desc
两个字段进行排序:select * from emp  order by EMPNO desc,sal desc

如果使用列的别名进行查询,那么列的别名要用双引号括起来

eg:select sal as "月工资" from emp order by "月工资" desc;

 

字符串操作函数

lower(char),upper(char)    大小写的转换
eg:select name from a_tbl where lower(name) like '_a%'  查询所有姓名的第二个字符为(a/A)的姓名 

length(char)  获取字符串的长度
substr(str,beginIndex,login)截字符串,从1开始
eg:select substr(name,2,3) from a_tbl     从name第二个字符开始截取name值一个截取三个字符
chr(int):将ascii码转换为字符

eg:select chr(65) from dual
ascii(char):将字符转换为ascii码

eg:select chr('a') from dual

replace (char,search_string,replace_string)替换字符串中的字符

eg:将雇员名字中的字母'A'替换成'我是A'

 select replace(ename,'A','我是A') from emp;

instr(char1,char2,[,n[,m]])取子串在字符串中的位置

 

 常用字符串函数综合应用

以首字母大写的形式显示所有员工姓名

select upper(substr(ename,1,1))||lower(substr(ename,2,length(ename)-1)) as "姓名" from emp;

 

数学函数:

数学函数的输入参数和返回值类型都是数字类型的,数学函数包括cos,cosh,exp,ln,log,sin,sinh,sqrt,tan,tanh,acos,asin,atan,round,最常用的有如下几个

round(c,[m]):该函数用于执行四舍五入,如果省掉m,则四舍五入到整数;如果m是正数,就四舍五入到小数点的m位后,如果是负数,则四舍五入到小数点的m位前

eg:select round(23.652) from dual 结果为:24
eg:select round(23.652,1) from dual 结果为:23.7
eg:select round(23.652,-1) from dual 结果为:20

trunc(c,[m])该函数用于截取数字,如果省掉m,就截取去小数部分,如果m是正数就截取到小数点的m位后,如果m是负数,就截取到小数点的前m位

eg:select trunc(23.652) from dual; 结果为23

eg: select trunc(23.652,1) from dual;结果为23.6

 select trunc(23.652,-1) from dual;结果为20

mod(m,n)取模的余数

eg:select mod(23,6) from dual;     结果为5

eg:select mod(23.5,6) from dual; 结果为5.5

floor(n)返回小于或是等于n的最大整数,向下取整

eg:select floor(23.6) from dual;返回23

ceil(n)返回大于或是等于n的最小整数,向上取整

eg:select ceil(23.6) from dual;返回24

eg:显示一个月为30天的情况所有员工的日薪金,忽略余数

第一种写法:select trunc(sal/30) as "日薪" from emp;

第二种写法:select floor(sal/30) as "日薪" from emp;

 对数字的处理,在财务系统或银行系统中用的最多,不同的处理方法,对财务报表会有不同的结果

 

其他的数学函数

abs(n)返回数字的绝对值

acos(n)返回数字的反余弦值

asin(n)返回数字的反正弦值

atan(n)返回数字的反正切值

cos(n)返回余弦值

exp(n)返回e的n次幂

log(m,n)返回对数值

power(m,n)返回m的n次幂

 

 

日期函数

日期函数用于处理date类型的数据

默认情况下日期格式是dd-mon-yy即12-7月-88

(1)sysdate:返回系统时间

eg:select sysdate from dual;返回值是2011-10-26

(2)add_months(d,n)

返回入职日期大于300个月的员工信息

 eg:select * from emp where sysdate>add_months(hiredate,300);

(3)last_day(d)返回制定日期所在的月份的最后一天

eg:查出各月倒数第三天被雇佣的员工

 select hiredate,ename from emp where last_day(hiredate)-2=hiredate;

eg:输入每个员工的入职日期

select trunc(sysdate-hiredate) as "入职天数" from emp;

 

转换函数
to_char():把数字或者日期转换为某种格式
to_date();把日期类型的字符串转换成日期类型
to_numbrt()把字符转换成数据类型
eg:select to_char(sal,'$999,999.999')from emp;   //9代表的一位,当给定的格式位数不够时将显示为##的形式
eg:  select to_char(sal,'L999,999.999')from emp;         //L代表本地货币,不区分大小写,位数不够同上
eg;  select to_char(sal,'000000000000.00')from emp; //0代表一位数字,且位数不够的用0代替,位数不够同上
eg;  select to_char(sysdate,'YYYY-MM-DD HH:MI:SS') from dual// 输出格式为:2008-10-2 02:20:30  ,HH默认为12时制,sysdate表示当前时间
eg;  select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual//输出格式为24时制

eg:  to_date('2008-01-01','yyyy-mm-dd')      //将字符串'2008-01-01'转换成'yyyy-mm-dd'的date类型

eg : select to_number('$888,888.00,'$999,999.00'')

eg:select to_char(sysdate,'yyyy') from dual;  //返回2011

 

系统函数

terminal:当前会话客户所对应的终端标识符

language:语言

db_name:当前数据库名称

nls_date_formate:当前会话客户所对应的日期格式

session_user:当前会话客户所对应的数据库用户名

current_schema:当前会话客户所对应的默认方案名(一个用户对应一个方案,用户名与方案名相同)

host:返回数据库所在主机的名称

host:返回数据库所在主机的名称

通过该函数,可以查询一些重要信息,比如你在使用哪个数据库?

eg:select sys_context('userenv','db_name') from dual;

 

 

 

其它的还有>,<,<>,他们不仅可以比较数字还可以比较字符串与日期,当比较字符串时比较第一个不相同的字符的ascii码值,当比较日期时要求进行比较的日期的格式一致
还有:between,and,or等

比较日期可以用如下形式

select * from table
where 日期字段 between to_date('2008-01-01','yyyy-mm-dd'
                        
and to_date('2008-10-20','yyyy-mm-dd')

 

分享到:
评论

相关推荐

    Java使用Jdbc连接Oracle执行简单查询操作示例

    Java使用Jdbc连接Oracle执行简单查询操作示例 Java使用Jdbc连接Oracle执行简单查询操作,是指使用Java语言通过Jdbc(Java Database Connectivity)连接Oracle数据库并执行简单查询操作的过程。本文将通过实例形式...

    查询一个Oracle表所占的物理空间大小

    2. **使用DBMS_SPACE.TOTAL_SPACE**:这是一个Oracle提供的包,可以用来查询表空间中使用的空间大小。例如: ```sql SELECT DBMS_SPACE.TOTAL_SPACE('FILE_LOG') AS total_space; ``` 3. **使用DBMS_SPACE.COUNT...

    oracle数据库表简单查询修改小工具

    "Oracle数据库表简单查询修改小工具"就是为了简化这些操作而设计的辅助软件,旨在提供一个用户友好的界面,使得非专业DBA也能方便地对数据库进行操作。 该工具的核心功能主要包括以下几个方面: 1. **查询功能**:...

    oracle4的表查询和基本函数.docx

    本文将深入探讨Oracle4中的表查询和基本函数。 首先,我们关注的是基本查询。在Oracle中,查询多表通常涉及到联接操作。以示例中的雇员表(EMP)和部门表(DEPT)为例,我们可以使用JOIN语句来获取雇员及其所在部门...

    关于Oracle多表连接,提高效率,性能优化操作

    这是因为ORACLE只对简单的表提供高速缓冲(cache buffering) ,这个功能并不适用于多表连接查询..数据库管理员必须在init.ora中为这个区域设置合适的参数,当这个内存区域越大,就可以保留更多的语句,当然被共享的可能性...

    ORACLE中查找定位表最后DML操作的时间小结

     ORA_ROWSCN伪列是Oracle 10g开始引入的,可以查询表中记录最后变更的SCN。然后通过SCN_TO_TIMESTAMP函数可以将SCN转换为时间戳,从而找到最后DML操作时SCN的对应时间。但是,默认情况下,每行记录的ORA_ROWSCN是...

    ORACLE表自动按月分区步骤

    ### Oracle表自动按月分区步骤详解 #### 一、背景介绍 在大数据处理与分析领域,数据库表的性能优化显得尤为重要。特别是在面对大量历史数据时,合理地利用表分区技术可以显著提高查询效率,减少资源消耗。Oracle...

    Oracle中对两个数据表交集查询简介

    在Oracle关系型数据库管理系统中,...总的来说,Oracle提供了多种方式来处理数据表的交集查询,选择哪种方法取决于实际需求和数据库的具体情况。正确理解和运用这些查询技巧,将有助于优化数据库操作,提高工作效率。

    oracle日期查询相关

    这里的`DUAL`是一个特殊表,通常用于测试或简单的查询操作。 #### 二、使用`TO_CHAR`函数进行日期格式化 `TO_CHAR`函数可以用来将日期转换为字符串形式,并且可以根据不同的需求定制日期显示的格式。这对于数据...

    oracle 常用SQL查询

    以下是一些常用的Oracle SQL查询,这些查询涵盖了从基础的表空间信息到复杂的数据库对象状态和性能监控。 1. **查看表空间的名称及大小**: 这个查询通过`dba_tablespaces`和`dba_data_files`视图获取每个表空间的...

    oracle导出表结构到excel中

    总结起来,将Oracle表结构导出到Excel涉及SQL查询、数据复制以及在Excel中的粘贴操作。对于频繁的操作,可以通过编写VBA宏或使用专业工具来自动化这个过程,提高工作效率。在处理大数据量时,应考虑分批处理和优化...

    ORACLE分页查询效率

    - **查询统计信息**:可以通过创建的表(如MY_STATISTICS)直接查询收集的统计信息,或者通过Oracle提供的GET_SYSTEM_STATS过程获取特定类型的统计数据。 综上所述,通过以上知识点的学习,我们不仅可以了解Oracle...

    Oracle复制表数据的两种用法

    第二种方法是使用Oracle的`CREATE TABLE AS SELECT`(CTAS)语句,这一步骤创建一个新的表并立即填充来自查询的结果。基本语法如下: ```sql CREATE TABLE table2 AS SELECT column1, column2, ... FROM table1 ...

    oracle并行查询优化

    例如,对于较小的数据集或简单的查询,并行查询可能不会带来明显的性能提升。 3. **可能引入延迟**:在某些情况下,并行查询可能会因为进程间的通信和协调导致额外的延迟。 #### 四、并行查询的优化策略 ##### 1. ...

    查询oracle数据库数据的一款简单工具

    Golden32是一款简洁易用的数据库管理工具,它允许用户通过简单的界面直接连接到本地或远程的Oracle数据库。这个工具的核心功能在于提供了一个直观的SQL编辑器,用户可以在这个编辑器中编写和执行SQL查询语句,从而...

    oracle通用查询系统

    Oracle通用查询系统是一款基于Delphi开发的图形化数据库查询工具,专为用户提供了方便快捷的方式来探索和操作Oracle数据库。这款工具允许用户直观地查看数据库的表结构,包括字段信息、索引、触发器和约束,使得...

    Oracle数据库查询练习

    oracle 有关emp表的简单查询练习题 使用scott/tiger用户下的emp表和dept表完成下列练习,表的结构说明如下 emp员工表(empno员工号/ename员工姓名/job工作/mgr上级编号/hiredate受雇日期/sal薪金/comm佣金/deptno...

    Oracle基础练习题及答案(多表查询1)

    14. 最后一个查询简单地列出所有员工的姓名、部门名称和工资,通过JOIN连接`emp`和`dept`表。 这些练习涵盖了SQL中的基础和进阶查询技巧,包括JOIN、子查询、聚合函数、条件过滤和分组等概念,对于理解Oracle数据库...

    oracle12c 32位简易客户端

    这个客户端包含了SQL*Plus、ODBC驱动程序以及其他基础组件,可以满足开发人员、系统管理员以及对Oracle数据库进行简单查询和管理的用户需求。 SQL*Plus是Oracle提供的一种命令行工具,它允许用户直接与Oracle数据库...

    如何:让Oracle表及字段显示为区分大小写

    虽然在Oracle中默认采用全部大写的形式可以简化查询过程,但对于那些希望保留标识符原始大小写状态的开发者来说,通过使用PowerDesigner或其他方法来创建表和字段,可以使Oracle中的表及字段显示为区分大小写的形式...

Global site tag (gtag.js) - Google Analytics