select systimestamp from dual; --系统时间戳 timestamp 精确到秒后三位
select sysdate from dual; -- 日期 相当于mysql中的日期+时间的总和
select 1+1 --dual是一张伪表 ASNI规范中必须有from,ORACLE遵循
from dual;
select empno as "员工号",ename "姓名",sal "月 薪",sal*12 年薪 --别名的三种情况和其好处
from emp
select empno,ename,sal,sal*12,comm,sal*12+nvl(comm,0) --comm存在有空值的情况 sal*12+comm 也会为空
from emp
select *
from emp
where comm is null --where comm = null 在oracle中不存在
select DISTINCT deptno,job --作用于身后的所有列 单独列有重复的情况,但是加起来没
from emp;
select * -- oracle中敏感 mysql中的bug 字符大小写不敏感
from emp
where ename='KING';
/*
查询当前会话的字符集 oracle中的参数都是以表的形式提供的 也是一种数据字典 用于时间,货币,等格式的转换查询依据 查询的时候不遵循依据的话,会查不到数据
*/
select * from v$nls_parameters; ---National Language Support alter session set NLS_DATE_FORMAT='yyyy-mm-dd';
select *
from emp
where hiredate='1981-11-17';
select * --查询薪水位于1000~2000的员工 含有边界 小的那个值必须在前面 对于日期也是这个要求
from emp
where sal between 1000 and 2000;
--查询名字中含有下划线的员工
select *
from emp
where ename like '%_%';
select * ----转意字符 表示其本身的含义查询里面带有_的
from emp
where ename like '%\_%' escape '\' 左斜线 跟前面的相同 可以定义为a
order by + 列名,表达式,别名,序号
多列的情况下 先按照第一列进行排序 在进行第二列排序
select ename,sal*12
from emp
order by sal*12 desc;
select * --降序的情况下 后两个列 都要加上desc
from emp
order by deptno,sal desc
select * -- 对于null值的排序要符合人们的习惯
from emp
order by comm desc
nulls last
host cls 公共语言规范Common Language Specification;控制室监听;屏幕清除的系统命令
set pagesize 20
--设置行宽
set linesize 150
--设置列宽column for 代表的是format的意思 a代表字符串 8代表字符串的长度
--若是数字的情况下,用9代表一位数字 9999表示占用的位数
col ename for a8
col sal for 9999 下面的 ---指的就是这个展示的大小
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- -------- --------- ---------- -------------- ----- ---------- ----------