Oracle SQL Lesson (3) - 使用单行函数自定义输出
大小写转换函数
LOWER('SQL Course') = sql course
UPPER('SQL Course') = SQL COURSE
INITCAP('SQL Course') = Sql Course
SELECT employee_id, last_name, department_id
FROM employees
WHERE last_name = 'higgins';
SELECT employee_id, last_name, department_id
FROM employees
WHERE LOWER(last_name) = 'higgins';
任何用户均可以使用dual,用于计算,输出字符串,输出系统日期
select lower('SQL Course') from dual;
select 56+9 from dual;
select sysdate from dual;
字符操作函数
CONCAT('Hello', 'World') = HelloWorld
SUBSTR('HelloWorld',1,5) = Hello
LENGTH('HelloWorld') = 10
INSTR('HelloWorld', 'W') = 6
LPAD(salary,10,'*') = *****24000
RPAD(salary, 10, '*') = 24000*****
REPLACE('JACK and JUE','J','BL') = BLACK and BLUE
TRIM('H' FROM 'HelloWorld') = elloWorld
concat功能不及||强大,仅能连接两列,不能连接字符串
select substr('HelloWorld', 6, 5) from dual;
select substr('HelloWorld', -5, 5) from dual;
第二个参数为负数表示从后往前数
第三个参数不指定表示到结束
conn scott/tiger;
select ename, lpad(ename, 10, '*'),rpad(ename, 10, '*') from emp;
select trim('H' from 'HelloWorld') from dual;
select trim('H' from 'HHHHHHHelloWorldHH') from dual;
select trim('H' from 'HelloHHWorldHH') from dual;
Trim的作用
create table t1(id number, name char(10));
create table t2(id number, name varchar2(10));
insert into t1 values(1, 'a');
insert into t1 values(2, 'b');
insert into t2 values(1, 'a');
insert into t2 values(2, 'b');
select * from t1, t2 where t1.name = t2.name;
select * from t1, t2 where trim(t1.name) = t2.name;
char(n)和varchar2(n)的区别
n代表长度
char固定长度:长度不够n,仍然分配n个字符空间,用空格补齐
varchar2可变长度:根据实际长度分配空间
clob和long的区别: 表中只能有一列为long,建议使用clob
clob:字符长度非常多的
blob:图片,影音
数字函数
ROUND(45.926, 2) = 45.93
ROUND(45.926, -1) = 50
TRUNC(45.926, 2) = 45.92
TRUNC(45.926, -1) = 40
MOD(1600, 300) = 100
MOD(300, 1600) = 300
负数均表示往前数
日期函数
日期在数据库中以数字格式方式存储
The default date display format is DD-MON-RR.
Enables you to store 21st-century dates in the 20th century by specifying only the last two digits of the year
Enables you to store 20th-century dates in the21st century in the same way
RR日期格式
返回离当前年份较近的日期
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
alter session set nls_date_format='DD-MON-RR';
alter session set nls_date_format='dd-mon-rr';
select sysdate from dual;
select sysdate+2 from dual;(天数)
select sysdate+2/24 from dual;(小时)
select hiredate,sysdate,sysdate-hiredate from emp;(天数)
MONTHS_BETWEEN('01-SEP-95','11-JAN-94') = 19.6774194
ADD_MONTHS ('31-JAN-96','1') = '29-FEB-96'
NEXT_DAY ('01-SEP-95','FRIDAY') = '08-SEP-95'
LAST_DAY ('01-FEB-95') = '28-FEB-95'
Assume SYSDATE = '25-JUL-03':
ROUND(SYSDATE,'MONTH') = 01-AUG-03
ROUND(SYSDATE ,'YEAR') = 01-JAN-04
TRUNC(SYSDATE ,'MONTH') = 01-JUL-03
TRUNC(SYSDATE ,'YEAR') = 01-JAN-03
Oracle SQL Lesson (3) - 使用单行函数自定义输出的更多相关文章
- SQL Fundamentals: Using Single-Row Functions to Customize Output使用单行函数自定义输出
SQL Fundamentals || Oracle SQL语言 DUAL is a public table that you can use to view results from functi ...
- Oracle SQL Lesson (4) - 使用转换函数和条件表达式
隐式转换select * from emp where empno='7788'字符(char,varchar2)转换为数字(number)或日期(date)数字或日期转换为字符 显式转换字符转换为数 ...
- Oracle SQL Lesson (5) - 使用组函数输出聚合数据
组函数AVGCOUNTMAXMINSUMVARIANCE:方差STDDEV:标准差 SELECT AVG(salary), MAX(salary), MIN(salary), SUM(salary)F ...
- Oracle笔记(三)单行函数
-函数 函数像一个黑盒子一样(看不到里边的构造),有参数返回值,可以为我们完成一定的功能. -单行 这种函数会对结果中的每一行计算一次,每行返回一个结果,单行概念区别于分组函数. 单行函数主要分为以下 ...
- Oracle笔记(五) 单行函数
虽然各个数据库都是支持SQL语句的,但是每一个数据库也有每一个数据库自己所支持的操作函数,这些就是单行函数,而如果要想进行数据库开发的话,除了要会使用SQL之外 ,就是要多学习函数. 单行函数主要分为 ...
- Oracle SQL常用内置系统函数总结
Oracle数据库 内置系统函数主要分为以下类别:数学函数.字符串函数.日期函数.转换函数.聚合函数.分析聚合函数 一.数学函数 ------------返回数字 abs(n):返回数字 ...
- Oracle SQL Lesson (2) - 限制和排序数据
重建scott用户@?/rdbms/admin/utlsampl.sql@--执行?--$ORACLE_HOME 字符区分大小写:SELECT last_name, job_id, departmen ...
- Oracle SQL Lesson (6) - 使用Join进行联合查询
使用连接SQL 1999SELECT table1.column, table2.columnFROM table1[NATURAL JOIN table2] |[JOIN table2 USING ...
- Oracle SQL Lesson (7) - 使用子查询
使用子查询简单子查询SELECT select_listFROM tableWHERE expr operator (SELECT select_list FROM table);子查询可以出现在se ...
随机推荐
- mysql 主从同步出问题,重新修复从库 - web架构研究
mysql 主从同步出问题,重新修复从库 - web架构研究 mysql 主从同步出问题,重新修复从库 0 昨天由于操作失误,在从库上执行一堆sql之后,导致主从同步错误,并且已 ...
- Swift - 微调器或叫步进器(UIStepper)的用法
1,微调器(UIStepper)控件包含两个按钮“+”和“-”,让使用者可以依照自己的喜欢做数值上的调整. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 ...
- Ogre嵌入MFC傻瓜全然教程(三)
经过前两两篇博文的解说.我们已经完毕了渲染工作,但仅仅是渲染而没有交互性,本篇博文我们就来加上事件的处理方法. 首先我们须要为项目加入一个帧监听类:CMyFrameListener,为了直观,在这直接 ...
- SilkTest Q&A 4
Q31.如何在inc文件里面写函数? A31.在你在inc文件(例如demo.inc)里写好函数以后,你需要使用Use path/Use file来指定指定它们. 在SilkTest中->Opt ...
- 怎样获取自己的SSL证书
2.创建证书,注意这里的common name应该填你的server name $ openssl req -new -key key.pem -out request.pem Country Nam ...
- thinkPHP 模板的使用技巧(十三)
原文:thinkPHP 模板的使用技巧(十三) 模板的使用技巧:页面跳转 .模板包含.模板渲染.模板的继承 页面跳转 <a href='__URL__/index'>我要跳转到首页面,用这 ...
- java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)
java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessCo ...
- Load and Unload
一.前言 在前一段时间,我遭遇了一个现象诡异的Bug,最后原因归结为在DllMain里错误地调用了FreeLibrary(在本文最后对此Bug有详细的解释). MSDN里关于禁止在DllMain里调用 ...
- uva live-2322 - Wooden Sticks
首先排个序,然后找一次0花费,然后再找一次0花费,然后再找一次0花费,然后再找一次0花费......... 最后看找了几次,+1就是答案 #include<iostream> #inclu ...
- LeetCode_Merge Two Sorted Lists
一.题目 Merge Two Sorted Lists My Submissions Merge two sorted linked lists and return it as a new list ...