Oracle笔记(二)

原创 2015年11月18日 12:44:21


SELECT 语句

SELECT子句中可以直接指定字段名,也可以嵌套使用

concat是连接符,返回两个字段的拼接。

SELECT concat(ename,sal) FROM emp_tzm;
SELECT concat(concat(ename ,':'),sal) FROM emp_tzm;

拼接字符串常使用“||"来连接,更简单

SELECT ename||':'||sal FROM emp;



LENGTH()函数查询字段串字符个数:

SELECT ENAME , LENGTH(ename) FROM emp;

DUAL:ORACLE中的伪表
在使用SELECT语句查询内容时语法要求FROM 子句后面必须要根一个表名,当我们查询的数据不来自热火和一张表时可以使用伪表,这样查询出来的记录只会有一条记录


将给定字符内容转化为全大写,全小写,首字母大写。

对于initcap而言,单子间可以只用空格分隔,那么每个单词瘦子母都会大写。

SELECT UPPER(‘hello world’) FROM DUAL;

TRIM 函数:
去掉字符串中左右两边连续重复的字符。

ltrim rtrim
单独取出字符串左面或右面的字符
SELECT ltrim ('esdeddsdesesdesliteee','dse')FROM dual;

取出左侧或右侧指定字符串中所有字符,
直到指定字符串中没有该字符为止。


lapd ,rpad函数,补位函数:
lpad(char1,len,char2)
其中char2必须是单一的一个字符,作用为:显示char1内容,要求显示len位,若不足则在左侧添加若干char2一大到该位数,若超过,则截取char1内容,只显示len位。

substr(str,m,n)
m:指定位置处从1开始,但也可以是0或者负数。
n:截取字符长度,不写则是截取到末尾,若超过可以截取的长度,则也截取到末尾。


rund 四舍五入,
SELECT round(45.678,2) FROM dual;45.68
SELECT round(45.678) FROM dual;46

trunc(n[,m])
截取数字m默认为0,与rund区别在于仅截取不做四舍五入
SELECT trunc(45.678) FROM dual;45
SELECT trunc(45.678,2) FROM dual;45.67

MOD
MOD(m,n):返回m除以n后的余数
SELECT ename,sal,MOD(sal, 1000) FROM emp_tzm ;

CEIL(n)与floor(n)其中n是数字,通常是小数。
ceil:返回大于给定数字的最小整数(向上取整)
floor:返回小于给定数字的最大整数(向下取整)

SELECT CEIL (45.6780)FROM DUAL;
SELECT FLOOR (45.678)FROM DUAL;

CEIL(45.6780)
-------------
           46

FLOOR(45.678)
-------------
           45


----------------------------------------------------------------------------------------------------------------
oracle日期操作:

CREATE TABLE STUDENT_TZM(
ID NUMBER(4),
NAME CHAR(20),
registerDate DATE DEFAULT SYSDATE
);

日期类型之间可以比较大小,时间晚的大,时间早的小。
日期之间可以做减法操作,作为相差的天数。日期可以减数字,等同与加减指定的天数。

SELECT SYSDATE+1 FROM DUAL;

SELECT ename,hiredate FROM emp_tzm WHERE hiredate>to_date('1981-01-01','yyyy-mm-dd');

to_char()函数
常用与将一个给定的日期按照给定的日期格式转换为字符串


测试RR指定的世纪

SELECT to_char( to_date ('95-12-21','rr-mm-dd'),'yyyy-mm-dd') FROM dual;
SELECT to_char( to_date ('49-12-21','rr-mm-dd'),'yyyy-mm-dd') FROM dual;

TO_CHAR(TO_DATE('95-12-21','RR-MM-DD'),'YYYY-MM-DD')
---------------------------------------------------------------------
1995-12-21                                          

TO_CHAR(TO_DATE('49-12-21','RR-MM-DD'),'YYYY-MM-DD')
----------------------------------------------------------------------
2049-12-21 

日期格式字符串中,除字母与符号外的其他字符都需要使用双引号扩起来。

SELECT to_char(sysdate,'yyyy"年"mm"月"dd')FROM dual;

LAST_DAY(date)
该函数返回给定日期所在月的最后一天:
SELECT LAST_DAY(SYSDATE) FROM DUAL;

SELECT LAST_DAY(HIREDATE) FROM EMP_TZM;


ADD_MONTHS(date,i)
对给定日期加上给定的月。
i可正可负,负数则是减去。
查看每个员工入职20周年纪念日:
SELECT ename,add_months(hiredate, 20*12) FROM emp_tzm;

MONTHS_BETWEEN(date1,date2)

-------------------------------------------------------------------------
NEXT_DAY (date , i)
返回给定日期最近的,还没有过的周几?
1表示周日,7表示周六
LEAST,GREATEST
变长参数,可以传入任意个参数,类型一致即可。
LEAST:返回参数中最小的
GREATEST:返回参数中最大的
SELECT LEAST (SYSDATE,TO_DATE('2008-10-10','yyyy-mm-dd')) FROM dual;

EXTRACT 函数
可以提取一个日期中指定时间分量对应的值:
SELECT EXTRACT(YEAR FROM SYSDATE) FROM DUAL;
----------------------------------------------------------------------------

判断一个值是否为null不能使用“=”
而要使用 IS null。
判断非空用 IS NOT null

NULL与字符串拼接,等于什么也没做。
NULL与数字运算,结果还是NULL。

查看每个员工的收入(工资+奖金):


NVL(arg1,arg2)
 若arg1为NULL,则函数返回arg2的值,
否则返回arg1.
简单谁就是将NULL值替换男为一个非NULL值


查看员工的奖金情况,有奖金的显示"有奖金"没有奖金的显示“没有奖金”
SELECT ENAME ,SAL ,COMM,(SAL+NVL(COMM,0)) FROM EMP_TZM;



NVL2(arg1,arg2,arg3)
当arg1不为null时函数返回arg2,
当arg1为null时,返回arg3.

NVL后两个参数的类型不用与第一个一致。
只要后两个一致即可。

oracle 初级学习(王二暖 视频 笔记)

对oracle学习视频的总结 方便以后查看 将不定期更新
  • xv740234390
  • xv740234390
  • 2016年03月10日 10:34
  • 1393

Oracle 的记录笔记

1.1    Oracle的概述 Oracle数据库的安装完成后:Oracle自动会生成sys和system两种用户。 Sys:是超级用户,拥有至高无上的权利,具有sysdb的角色,可以creat...
  • u011066470
  • u011066470
  • 2016年12月22日 11:22
  • 186

《深入理解jvm》笔记---第三章

《深入理解JVM》第三章笔记
  • nlznlz
  • nlznlz
  • 2016年09月17日 13:51
  • 335

kafka学习笔记(2)

kafka的经典问题有这几个: 1.kafka节点之间如何备份? 2.kafka消息是否会丢失?为什么? 3.kafka最合理的配置是什么? 4.kafka的leader选举机制是什么? 5...
  • m0_37587447
  • m0_37587447
  • 2017年11月21日 15:37
  • 21

oracle基础实战笔记

本文包含以下内容: 1)Centos oracle 11g express安装与使用; 2)oracle最基本的增insert into、删delete、改update set、查select、M...
  • wojiushiwo987
  • wojiushiwo987
  • 2016年04月19日 12:27
  • 1432

oracle数据库基础知识学习笔记

一、SQL语言分类: 1.DDL(数据定义语言):  create(创建)    alter(修改)  drop(删除)------------主要是对表操作。   2.DML(数据操作...
  • u011955534
  • u011955534
  • 2013年11月04日 18:52
  • 6315

oracle进阶实战笔记

本文包含以下内容: 1、Oracle PL/SQL使用 2、Oracle中的5种约束条件(非空约束、唯一约束、主键约束、外键约束、check约束) 3、oracle单引号、双引号区别(OTL编程...
  • wojiushiwo987
  • wojiushiwo987
  • 2016年04月19日 12:30
  • 8473

《MFC游戏开发》笔记三 游戏贴图与透明特效的实现

本系列文章由七十一雾央编写,转载请注明出处。  http://blog.csdn.net/u011371356/article/details/9299121 作者:七十一雾央 新浪微博:http:/...
  • u011371356
  • u011371356
  • 2013年07月12日 17:25
  • 24302

PCIe 学习笔记(二)

pci note 2 -v0.1 2014.11.18 *** draft  本文继续pci note 1, 介绍pci_create_root_bus函数, 内核版本为3.18-rc1 ...
  • scarecrow_byr
  • scarecrow_byr
  • 2014年12月01日 22:19
  • 1719

网络编程学习笔记整理(二)

摘录笔记 《TCP/IP高效编程 改善网络程序的44个技巧》socket的创建函数int socket (int domain,int type, int protocol)参数说明protocol需...
  • stecdeng
  • stecdeng
  • 2017年02月23日 14:47
  • 187
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle笔记(二)
举报原因:
原因补充:

(最多只允许输入30个字)