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 empselect empno,ename,sal,sal*12,comm,sal*12+nvl(comm,0) --comm存在有空值的情况 sal*12+comm 也会为空
from empselect *
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 '\' 左斜线 跟前面的相同 可以定义为aorder by + 列名,表达式,别名,序号
多列的情况下 先按照第一列进行排序 在进行第二列排序 select ename,sal*12 from emp order by sal*12 desc;select * --降序的情况下 后两个列 都要加上desc
from emp order by deptno,sal descselect * -- 对于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 ---------- -------- --------- ---------- -------------- ----- ---------- ----------