Oracle数据库的用法

1、DATE可以和一个数字进行加减运算,相当于加减了指定的天数,返回值为对应的日期一周后是哪天?

SELECT SYSDATE + 7 FROM DUAL;

2、"TO_CHAR"(x)常用于转换日期,可以将日期按照指定的日期格式转换为字符串

SELECT TO_CHAR(SYSDATE,
'YYYY-MM-DD HH24:MI:SS')
FROM DUAL;

3、--'03-09-01' 是2003-09-01的时间

SELECT TO_DATE('03-09-01', 'RR-MM-DD')
FROM DUAL;
SELECT TO_CHAR(TO_DATE
('03-09-01', 'RR-MM-DD'),
'YYYY-MM-DD')
FROM DUAL;

 

4、"LAST_DAY"(date) 该函数返回给定日期所在月的最后一天(月底)

SELECT LAST_DAY(SYSDATE)
FROM dual;

5、查看员工生日所在月的最后一天

SELECT NAME,LAST_DAY(BIRTH)
FROM EMP;

6、"LAST_DAY"(date) 该函数返回给定日期所在月的最后一天(月底)

SELECT LAST_DAY(SYSDATE)
FROM dual;

7、--"ADD_MONTHS"(date, i)对给定的日期加上指定的月数,若i为负数则是减去月数

SELECT NAME,ADD_MONTHS(BIRTH,12*20)
FROM EMP;

8、--MONTHS_BETWEEN(date1, date2)计算两个日期之间的月,计算方式是使用date1-date2的结果换算的查看每个员工活了多少个月了?

SELECT NAME,MONTHS_BETWEEN
(SYSDATE, BIRTH)
FROM EMP;

9、--"NEXT_DAY"(date, ch)返回给定日期之后一周内的周几,现在是2018-11-03 16:12:53”

SELECT NEXT_DAY(SYSDATE, 1) 
FROM DUAL;

10、LEAST/GREATEST求最小值与最大值。这组函数的参数限制数量,两个以上即可比较'2008-08-08'与当前的时间,返回小的值。

SELECT LEAST(SYSDATE,
TO_DATE('2008-08-08',
'YYYY-MM-DD'))
FROM DUAL;

11、--查看所有员工的生日,若是82年以前出生的则显示为1982-01-01

SELECT NAME,GREATEST
(BIRTH,TO_DATE('1982-01-01', 
'YYYY-MM-DD'))
FROM EMP;

12、"EXTRACT"(time_unit FROM expr)获取指定日期指定时间分量的值,以年为分割,取得年份

SELECT EXTRACT
(YEAR FROM SYSDATE)
FROM DUAL;

13、查看81年出生的员工的信息,这里没有符合条件的,所以返回的是空值

SELECT  NAME,BIRTH
FROM EMP WHERE  EXTRACT (YEAR FROM BIRTH) = 1981

  

14、--修改性别不为空的学生信息,将其名字改为'无名氏'
--判断一个字段的值是否为空,要使用 IS NULL 或 IS NOT NULL

UPDATE STUDENT 
SET NAME = '无名氏'
WHERE GENDER IS NOT NULL;
SELECT * FROM STUDENT;

15、--NULL的运算、NULL与字符串连接等于什么也没有做NULL与数字运算结果还是NULL查看每个员工的月收入(薪水+奖金)

SELECT NAME,SALARY,COMM,SALARY+COMM
FROM EMP;

16、--NVL(p1,p2)若p1为null,函数则返回p2 ,若p1不为null,函数则返回p1本身,所以该函数的作用是将NULL值替换为非NULL值查看每个员工的月收入

SELECT NAME,SALARY,COMM,
SALARY + NVL (COMM, 0) FROM EMP

17、"NVL2"(p1,p2,p3),当p1不为null时,函数返回p2,当p1为null时,函数返回p3,查看每个员工的奖金情况:
--若奖金不为空则显示”有奖金“,若奖金为空则显示”无奖金“

SELECT NAME,COMM,NVL2 (
		COMM,'有奖金','无奖金'
	)FROM EMP

18、-用NVL2实现NVL的功能、NVL2可以完全实现NVL的功能,
--但是反过来却不行、查看每个员工的月收入

SELECT NAME,SALARY,COMM,
	NVL2 (COMM, SALARY + COMM, SALARY)
FROM EMP

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值