sqlplus操作:
1.在sqlplus下使用命令ed a 会创建一个文件夹,在其中写入sql命令,然后使用@a,则会执行写入的语句。
2.当连接超级用户的时候使用 conn sys/root as sysdba;
3.set linesize 300;
set pagesize 100;
设置行宽和显示记录数量
4.show user 显示当前用户
5.select * from tab;得到所有表名称
6.desc emp;查看表的结构
7."/"代表上一条记录
8.distinct 去除重复列,并且在查询列数都有重复的时候才会有作用
9.||是字符串连接符, select '编号'||empno||'姓名'||ename from scott.emp;使用单引号括住固定字符名称
10. is not null 和 null 判定为空与否
11. between...and... 范围查询,sal between 1300 and 3000 范围是 sal >=1300 sal<=3000;除了支持数字外,还可以支持日期的比较
12. in 的使用 select * from emp where id in (12,34,23);
13. 模糊查询 select * from emp where ename like '%m%'; %m%匹配包含m的名字,%%则会匹配所有的名字。
14. ordre by asc|desc 升序或降序 默认为asc
字符函数
select upper('smith') from dual;
select lower('smith') from dual;
select initcap('smith') from dual; 将首字母大写
cancat(str,str)拼接字符串
select substr('hello',1,3),length('hello'),replace('hello','l','x') from dual;注意sunstr()从0和从1 开始截取的效果一样
数值函数
四舍五入round():round(23.4) round(23.3332,2) round(23.3332,-1)
截取位数 trunc() trunc(34.234) trunc(34.234,2) trunc(34.232,-1)
取余 mod()
日期函数
日期-日期= 数字(天数)
日期+数字=日期
日期-数字=日期
select sysdate from dual;
months_between() 查询给定日期范围的月数
select months_between(to_date('1999-01-23','yyyy-mm-dd'),to_date('2012-01-23','yyyy-mm-dd')) from dual;
add_months(date,number)
next_day(date,'星期一') 求下一个星期一是几号
last_day() 求某月的最后一天是几号
转换函数
to_char()
to_char(sysdate,'yyyy') 获取到年 ,月和日类似
to_char(sysdate,'yyyy-mm-dd')
to_char(sysdate,'fmyyyy') fm回去掉日期中的月份和日前面的0
to_char(salary,'$99,999')
to_char(salary,'L99,999')
to_number() 将字符串变为数字
to_date() to_date('1999-01-23','yyyy-mm-dd')
通用函数
select decode(1,1,'结果1',2,'结果2',3,'结果3') from dual;
nvl(null,0) 将null值设定为制定的内荣
网友评论