1、格式化dos窗口命令:
Set linesize 300; 设置行
Set pagesize 30; 设置页
这两个命令只在sqlplus中有效,程序无效。
2、调用记事本
ed、@;
3、切换用户:
conn 用户名/密码 【as sysdba】;
4、select [distinct] * |列名称[别名],列名称[别名],……
from 数据表 [别名]
[where 条件(s)]
[order by 字段[asc|desc]];
以上给出的格式的执行顺序,from、where、select、order by(永远最后一个执行)
在编写where子句之中,可以设置多个条判断的条件:关系运算符(>,<,>=,<=,<>,!=)、逻辑运算符(and,or,not),若干个条件连接只能用and,or,between and,in(使用not in的时候该地段不能出现null,否则不会有任何数据返回),is null,like(like可以使用各种数据类型,如果没有设置关键字表示查询全部。单字符用_,任意字符用%);
order by 子句之中是唯一可以使用select子句定义的别名的子句。
5、单行函数的定义:
单行函数的功能非常简单,就是完成一个特定的功能。例如,现在希望将字母变为大写,这样的功能就可使用单行函数来实现。
单行函数的分类有:字符串函数,数字函数,日期函数,转换函数,通用函数。所用的单行函数在进行记忆的时候都必须记下单行函数的名称,返回值类型,接收的参数数据等。
1、
select upper('Hello') UPPER ,lower('Hello') LOWER from dual; --字符串转换 |
|
2、
select * from &tablename; -- 自定义输入数据表的名称 |
3、
select length('hello world') from dual; --获取字符串长度 |
4、
select initcap(ename) from emp; --设置字符串首字母大写,其余字母小写 |
5、
select ename ,replace(ename,'A','_')from emp; --字符串替换【序列号好像不行】 |
6、
select substr('hello world',5) from dual; --截取字符串中>=5的字符串,序列从1开始; |
7、
select substr('helloworld',1,5)from dual; --截取序列为[1,5]闭区间的元素 |
8、
select substr('helloworld',length('helloworld')-2)from dual; --获取字符串的后三位元素 |
9、
select trim(' hello world ') from dual; --去掉字符串左右两边的空格 |
数字函数
主要针对于数字进行处理。
1、
select round(111,888) from dual; --去掉小数部分 |
|
2、
select round(111.225,2) from dual; --四舍五入保留5位小数 |
3、
select round(111.222,-2) from dual; --整数部分回退两位,以50为界四舍五入。 |
|
4、
select round(-15.5),round(-17.2) from dual; --负数的取整先四舍五入再加负号 |
5、
select trunc(-222.555) from dual; --保留整数 |
6、
select mod(1.,3) from dual; -取余数 |
7、
Select systimestamp from dual; --获取系统当前时间 |
8、
计算两个日期之间所经历的月数,年数的计算是经过月数的计算完成的,一年12个月是不会改变的。 |
范例:计算每一位雇员到今天为止所经历的年数,所经历的月数,所经历的天数 |
select ename,months_between(sysdate,hiredate) 月数,trunc(months_between(sysdate,hiredate)/12) 年数 from emp; |
9、
select next_day(sysdate,'星期日')from dual; --下一个星期日的日期 |
10、
select last_day(systimestamp)-2 from dual; --查询本月的倒数第三天 |
11、
select to_char(sysdate,'yyyy-mm-dd') from dual; --设置日期的格式 |
12、
范例:查询出所有在二月份雇佣人员的名单 |
13、
select to_char(16132165122,'L999,999,999,999,999')from dual; ---格式化显示数字 |
14、
select 1+2 from dual; --直接进行加法操作 select to_number('1')+to_number('2') from dual; --先把字符串转换为数字再进行加法操作 |
通用函数,在oracle中常使用的主要有两个,NVL和DECODE()
1、处理NULL数据 |
范例:要求计算emp表中每一位雇员的年薪 select ename,sal,comm,(sal+NVL(comm,0))*12 from emp; |
1、处理字符串解码 |
范例:将所有雇员的职位数据变为中文数据 |
select ename,job,decode(job,'CLERK','办事员') from emp; |