`

ORACLE数据库总结02

 
阅读更多

DQL:数据查询语言

至少包含两部分:

1:SELECT子句

2:FROM子句

SELECT之后指定要查询的字段,可以

使用"*"查询所有字段,也可以单独指定

具体的字段,或者一个函数,表达式。

FROM之后指定要查询的表

 

SELECT ename,job,sal,deptno 

FROM emp

 

查看函数或表达式的结果

SELECT ename,sal*12

FROM emp

 

字符串函数

1:CONCAT(char1,char2)

连接字符串

SELECT CONCAT(ename,sal)

FROM emp

 

SELECT 

 CONCAT(CONCAT(ename,':'),sal)

FROM emp

 

可以使用"||"的形式连接字符串

SELECT 

 ename||':'||sal

FROM 

 emp

 

LENGTH(char)函数

统计指定字符串的长度

对CHAR统计长度是固定的,通常

对VARCHAR2类型字段统计。

SELECT ename, LENGTH(ename) 

FROM emp

 

UPPER(),LOWER(),INITCAP()

将字符串转换为全大写,全小写

以及首字母大写

 

dual:伪表,当查询的内容与现实的

任何一张表没有关系时,可以使用

伪表来填充FROM子句,伪表只会查询

出一条记录

SELECT 

  UPPER('helloworld'),

  LOWER('HELLOWORLD'),

  INITCAP('hello world')

FROM dual

 

TRIM,LTRIM,RTRIM

去除字符串两边的指定字符

SELECT 

 TRIM('e' FROM 'eeeeeliteeee')

FROM dual

 

SELECT 

 LTRIM('etstesteliteseseses','set')

FROM dual

 

 

 

 

 

 

LPAD,RPAD

补位函数

SELECT 

  RPAD(sal,5,' ')

FROM 

  emp

 

 

SUBSTR(str,m,n)

截取当前字符串,从m指定的

位置开始连续截取n个字符。

n可以不指定,不指定则截取到

字符串末尾,n若超过该字符串

可以截取的最大值时,也是截取到

字符串末尾。

需要注意:数据库下标从1开始!!!!

SELECT 

 SUBSTR('thinking in java',1,5)

FROM 

 dual

 

INSTR(char1,char2,n,m)

查看char2在char1中的位置

n:可以不指定,不指定默认值为1

  表示从第几个字符开始检索

m:可以不指定,默认值为1

  表示第几次出现

SELECT 

  INSTR('thinking in java','in',

         4,2)

FROM 

  dual

 

数值函数:

 

ROUND(n,m)

四舍五入,保留n的小数点后m位。

若m不指定或为0则表示保留到整数

为,负数则是十位以上的数字。

SELECT ROUND(45.678, 2) FROM DUAL

SELECT ROUND(45.678, 0) FROM DUAL

SELECT ROUND(45.678, -1) FROM DUAL

 

TRUNC()

参数与ROUND一致,截取数字,不进行四舍五

入操作

SELECT TRUNC(45.678, 2) FROM DUAL

SELECT TRUNC(45.678, 0) FROM DUAL

SELECT TRUNC(45.678, -1) FROM DUAL

 

MOD(m,n)

求余数

SELECT 

  ename, sal, MOD(sal, 1000) 

FROM emp; 

 

CEIL(n),FLOOR(n)

向上取整与向下取整

SELECT CEIL(45.678) FROM dual

SELECT FLOOR(45.678) FROM dual

 

 

日期相关函数

 

SYSDATE,SYSTIMESTAMP

这两个关键字表示两个内部函数

返回的都是当前系统时间,只不过

一个以DATE型返回,一个以时间戳

类型返回。

SELECT SYSDATE FROM dual

SELECT SYSTIMESTAMP FROM dual

 

TO_DATE函数

可以将一个字符串按照指定的日期格式

解析为一个DATE类型的值

日期格式字符串中出现了除英文,数字,符号

以外的其他字符时都要使用双引号括起来。

SELECT

 TO_DATE('1992年08月05日 22:12:44',

         'YYYY"年"MM"月"DD"日" HH24:MI:SS' )

FROM 

 dual

 

日期可以比较大小与计算

时间越晚的越大

两个日期相减,差为相差的天数

对一个日期加减一个数字等于加减指定的天数

 

SELECT SYSDATE+1 FROM dual

 

查看每个员工到今天为止入职多少天了?

SELECT ename,SYSDATE-hiredate

FROM emp

 

查看自己到今天为止活了多少天?

SELECT 

  SYSDATE-TO_DATE('1992-08-02','YYYY-MM-DD')

FROM

  dual

 

查看82年以后入职的员工?

SELECT ename,hiredate

FROM emp

WHERE hiredate>TO_DATE('1982-01-01','YYYY-MM-DD')

 

 

TO_CHAR()

可以将给定的日期按照指定的日期

格式转换为字符串

SELECT 

  TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS')

FROM 

  dual

 

RR在日期格式中也是2位数字表示

的年,但是与YY不同,它可以在

解析字符串的年时判定世纪

SELECT

 TO_CHAR(

  TO_DATE('49-08-08','RR-MM-DD'),

  'YYYY-MM-DD'

 ) 

FROM 

 dual

 

LAST_DAY(date)

返回给定日期所在月的月底

查看每个员工入职所在月的月底?

SELECT ename,LAST_DAY(hiredate)

FROM emp

 

ADD_MONTHS(date,i)

对指定的日期加上指定的月

若i为负数,则是减去。

 

查看每个员工入职30周年纪念日?

SELECT 

  ename,ADD_MONTHS(hiredate,12*30)

FROM 

  emp

 

 

MONTHS_BETWEEN(date1,date2)

计算两个日期之间相差的月

 

查看每个员工至今入职多少个月了?

SELECT 

 ename,MONTHS_BETWEEN(SYSDATE,hiredate)

FROM 

 emp

 

NEXT_DAY(date,i)

返回给定日期第二天起一周之内

的周几

SELECT NEXT_DAY(SYSDATE,4)

FROM dual

 

LEAST、GREATEST

求最小值与最大值,参数一个以上即可。

常用与日期,数字的求值

SELECT 

 LEAST(SYSDATE,

       TO_DATE('2008-08-05',

               'YYYY-MM-DD')

      ) 

FROM DUAL;

 

EXTRACT()

提取一个日期的指定时间分量

对应的值

1982年入职的员工?

SELECT ename,hiredate

FROM emp

WHERE EXTRACT(YEAR FROM hiredate)=1982

 

NULL值操作

CREATE TABLE student

    (id NUMBER(4), name CHAR(20), gender CHAR(1));

 

INSERT INTO student VALUES(1000, '李莫愁', 'F');

 

INSERT INTO student VALUES(1001, '林平之', NULL);

 

INSERT INTO student(id, name) VALUES(1002, '张无忌');

 

 

UPDATE student

SET gender = NULL

WHERE id=1000

 

SELECT * FROM student

 

删除性别为NULL的记录

判断一个字段的值是否为空,要使用

IS NULL或IS NOT NULL

不能使用"="判断NULL

DELETE FROM student

WHERE gender IS NOT NULL

 

CREATE TABLE student

    (id NUMBER(4),

     name CHAR(20), 

    gender CHAR(1) NOT NULL);

 

NULL与字符串连接等于什么也没做

NULL与数字运算记过还为NULL

 

查看每个员工的收入情况:

SELECT 

  ename,sal,comm,sal+comm

FROM emp

空值函数:

NVL(f1,f2)

当f1为NULL时,函数返回f2,

若不为NULL,函数返回f1自身。

所以NVL函数的作用是将NULL值

替换为非NULL值。

查看每个员工的收入情况:

SELECT 

  ename,sal,comm,sal+NVL(comm,0)

FROM emp

 

查看每个人的奖金情况,有奖金的

则显示为"有奖金",为NULL的则显示

为"没有奖金"

NVL2(f1,f2,f3)

当f1不为NULL时,函数返回f2

当f1为NULL时,函数返回f3

 

SELECT 

 ename,sal,comm,

 NVL2(comm,'有奖金','没有奖金')

FROM

 emp

 

SELECT 

  ename,NVL2(comm,sal+comm,sal)

FROM 

  emp

 

 

 

 

分享到:
评论

相关推荐

    ORACLE数据库学习总结资料.pdf

    Oracle数据库学习总结资料.pdf Oracle数据库学习总结资料.pdf 是一份关于 Oracle 数据库的学习总结资料,涵盖了 Oracle 数据库的各个方面,包括 Oracle 的简介、简单查询、标量函数和算数运算、多表查询、列函数和...

    Oracle数据库总结

    Oracle 数据库总结 Oracle 数据库是甲骨文公司的一款关系数据库管理系统,是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。下面是 Oracle 数据库的总结...

    查看登录oracle数据库用户记录.docx

    "查看登录 Oracle 数据库用户记录" Oracle 数据库是一个强大的关系型数据库管理系统,提供了强大的数据存储和管理功能。为了管理和监控数据库的访问情况,需要对登录 Oracle 数据库的用户记录进行跟踪和查看。本文...

    oracle数据库日志查看方法

    ### Oracle数据库日志查看方法详解 #### 一、概述 Oracle数据库是企业级应用中广泛使用的数据库管理系统之一,为了确保数据库系统的稳定运行和快速定位问题,掌握Oracle数据库日志查看方法至关重要。本文将详细...

    Oracle数据库知识点总结 Oracle数据库架构与组件学习攻略

    Oracle数据库知识点总结 章节目录 一、Oracle数据库概述 二、Oracle数据库架构与组件 三、SQL语言基础 四、PL/SQL编程 五、数据库对象管理 六、数据备份与恢复 七、性能优化与安全管理 八、如何学习Oracle数据库 九...

    oracle数据库

    oracle数据库总结oracle数据库总结oracle数据库总结oracle数据库总结

    oracle数据库总结.sql

    oracle数据库总结

    Oracle数据库的启停

    Oracle 数据库的启停 Oracle 数据库的启停是数据库管理员的重要任务之一。启停数据库的过程可以细分为三个步骤:启动实例、挂载数据库、打开数据库。下面将详细讲解 Oracle 数据库的启停过程。 启动数据库 启动...

    ORACLE数据库设计与优化

    总结,Oracle数据库设计与优化是一个涉及多方面知识的复杂过程,包括但不限于物理结构设计、SQL优化、索引策略、存储过程使用、性能监控以及备份恢复策略。理解这些核心概念并灵活应用,将有助于构建高效、稳定且...

    labview 调用oracle数据库

    总结,LabVIEW调用Oracle数据库涉及的关键点有:使用ODBC连接数据库、构建和执行SQL命令、创建和操作数据库表。理解这些概念和步骤,将有助于在LabVIEW环境中有效地管理和操作Oracle数据库。在实际应用中,还要考虑...

    C#版Oracle数据库通用操作类

    ### C# 版 Oracle 数据库通用操作类解析 在现代软件开发中,数据库操作是必不可少的一部分,而 C# 结合 Oracle 数据库的应用尤为广泛。本文将深入探讨一个用于简化 Oracle 数据库操作的 C# 类——`ConnForOracle`。...

    Oracle数据库开发和设计规范

    本文档总结了 Oracle 数据库开发和设计规范的主要内容,包括命名约定、表名规则、存储过程规则、视图规则、索引规则、序列规则、主键规则和外键规则等。 一、命名约定 Oracle 数据库开发和设计规范中,命名约定是...

    Oracle-新建Oracle数据库并连接(图文,详细).docx

    新建Oracle数据库并连接详细教程 在这篇教程中,我们将学习如何新建Oracle数据库并连接到该数据库。该教程分为两部分:新建Oracle数据库和连接到数据库。 新建Oracle数据库 新建Oracle数据库需要使用Database ...

    Oracle数据库命令 个人总结

    "Oracle数据库命令个人总结" Oracle数据库命令个人总结是徐博文在2014年3月整理的关于Oracle数据库的命令和心得的总结。下面是从该总结中提取的重要知识点: 1. 查询数据库数据文件的基本字段信息:使用DESC DBA_...

    oracle数据库克隆总结

    ### Oracle数据库克隆总结 #### 一、Oracle数据库克隆概述 在企业级应用中,Oracle数据库因其稳定性和高效性而被广泛采用。随着业务需求的变化和技术的发展,Oracle数据库克隆成为了维护和管理数据库的一项重要...

    access数据库MDB数据文件导入oracle数据库操作步骤.pdf

    Access 数据库 MDB 数据文件导入 Oracle 数据库操作步骤 Access 数据库 MDB 文件是 Microsoft Access 应用程序的数据库文件格式,而 Oracle 数据库是关系数据库管理系统。将 Access 数据库 MDB 文件导入 Oracle ...

    excel导入数据到Oracle数据库

    ### Excel导入数据到Oracle数据库详解 #### 一、前言 在日常工作中,我们经常会遇到需要将Excel中的数据批量导入到Oracle数据库的情况。这一过程不仅可以提高工作效率,还能确保数据的一致性和准确性。本文将详细...

Global site tag (gtag.js) - Google Analytics