解锁步骤:对象(object)-> user -> scott(然后进行右键,快捷菜单点击“编辑”,然后在对话框中进行相应的配置即可。
PL/SQL 的使用
PL/SQL 使用注意事项
标题栏可以看到登录的是哪个用户
小钥匙:灵活的切换用户
将 all objects 改成 my objects
该图标为执行当前窗口内的 sql 语句。
Oracle 数据库查询语言
select ename,sal,nvl(comm,0),'年薪'||(sal+comm)*12 nx from emp;# 查询所有员工的年薪# nvl(comm,0) 将comm 字段中数据为 null 的改为 0,在 mysql 中相加时自动转换为零。# '年薪'||(sal+comm)*12 nx 双竖杠:拼接字符(mysql 中没有) 字段名后“空格 + 名称”,为字段名起别名。## 模糊查询包含s的员工, % 匹配 0-n 个字符。select*from EMP where ENAME like'%s%';# Oracle 中表名和列名不区分大小写,但是字段名的值区分;MySQL 正相反。## 模糊查询名字第三个字母是 o 的员工。select*from EMP where ENAME like'__o%';# _ 下划线代表任意一个字符。##查询员工编号为 7566或7369 或7499的员工信息。select*from emp where empno in(7369,7499,7566)# in 包含一个即可。select*from emp where empno=7369or empno=7499or empno=7566## 根据工资给员工分等级。select ENAME,SAL,casewhen SAL >=0AND SAL <=1500THEN'初级'when SAL >1500AND SAL <=3000THEN'中级'else'高级'end DGREE from EMP;# 注意 case 的用法。## not 的用法select*from EMP where comm =0or comm isnull;select*from EMP where comm !=0or comm isnotnull;# 查询 comm 不是 0 和 空的员工信息。select*from EMP where EMPNO notin(7369,7499,7566);# 查询员工号不是...的信息。select*from EMP where ENAME notlike'%S%';# 查询员工名称不带 s 的员工信息。## order by 排序查询(最后一个)select*from EMP orderby SAL asc;# 升序,从小到大,默认select*from EMP orderby SAL desc;# 降序,从大到小select*from EMP orderby DEPTNO asc,SAL desc;# 先按照部门编号升序,在按照薪水降序。## group by 分组查询1.# 分组函数(作用于一组数据,得到一个结果):max、min、avg、sum、count【一共有多少行,经常使用为 count(*)】select job from emp groupby job;# 查询员工表中有多少个岗位。 当 group by 单独使用时相当于去重。select deptno,count(*)from EMP groupby deptno;# 查询每个部门有多少人 注意:此时的 count 分别作用于所划定的组select job,max(sal)from EMP groupby job;# 查询每个岗位的最高工资。select mgr,count(*),max(sal),avg(sal)from EMP where mgr isnotnullgroupby mgr;# 查询每个领导下面有多少个员工,并查询他们的最大工资和平均工资时多少。 注意: mgr 为上级领导编号。# 注意多个字段分组。select DEPTNO,JOB,COUNT(*)from EMP groupby DEPTNO,JOB;# 查询每个部门下,每个岗位下有多少员工。select DEPTNO,MGR,SUM(SAL)FROM EMP WHERE MGR ISNOTNULLGROUPBY DEPTNO,MGR;# 查询每个部门下,每个领导下员工的工资总和。# having 分组过滤select DEPTNO,COUNT(*)FROM EMP GROUPBY DEPTNO HAVINGCOUNT(*)>=5;# 查询每个部门下部门人数大于等于5的部门。select DEPTNO FROM EMP GROUPBY DEPTNO HAVINGAVG(SAL)>=2000;# 查询部门中平均工资大于等于两千的部门。SELECT DEPTNO,COUNT(*)FROM EMP WHERE SAL >1500GROUPBY DEPTNO;# 查询每个部门下薪水大于1500的员工人数。 首先要先查询薪水大于1500的员工,然后再根据部门进行分组。函数的调用最后执行,只要有 group by,函数的范围就有了限制。## 去重查询 distinctselectdistinct job from emp;