关于注释:
1、--
:单行注释;
2、/* */
:多行注释;

关于查询语句 DQL:
关键字 select
数据操作语句 DML:
关键字
增加 insert
修改 update
删除 delete
数据定义语句 DDL:
关键字
新建 create
修改 alter
删除 drop
截断 truncate
数据控制语句 DCL:
关键字
授权 grant
回收 revoke
事务控制语句 TPL:
关键字
提交 commit
回滚 rollback
简单查询语句
1.基本查询
在Oracle数据库中,语法格式为: select A from B (在B中找A)
B:表
A:列,表达式,*(所有的列)
--例:查询emp表中所有的数据
select * from emp;
select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp;
--比较两者:第一种书写简单,第二种写法效率稍高一些。工作中建议使用第二种写法
--例:查询emp表中job列的数据
select job from emp;
--例:查询emp表中员工的名字(ENAME),和员工的月薪(SAL)
select ename,sal from emp;
2.数值运算的查询
--查询emp表中员工的名字,员工的年薪(SAL*12)
select ename, sal, sal*12 from emp;
--列的别名
①:select ename, sal xixi, sal*12 haha, comm from emp;
②:select ename, sal as xixi, sal*12 as haha, comm from emp;
③:SELECT ename, SAL As xixi, sal*12 as haha, comm fRoM emp;
--查询员工姓名,月薪(sal),奖金(comm),月收入(sal+comm)
select ename, sal, comm, sal+comm from emp;
--数值运算中null
值的问题
--null值:空 在oracle的数值运算中,任何一个参与运算的值为null,数值表达式的结果一定是null
--利用nvl()函数
解决null值
--nvl函数的使用方法 expr:表达式
--nvl(expr1, expr2) 当expr1的值不为null时,使用expr1的结果;当expr1的值为null时,使用expr2的结果
①:select ename, sal, comm, nvl(sal+comm, sal) from emp;
②:select ename, sal, comm, sal+nvl(comm,0) from emp;
--查询员工姓名,年收入(月收入*12)
select ename, (sal+nvl(comm,0))*12 from emp;
--3.字符串拼接方式的查询
--查询员工姓名(ename)和职位(job),要求显示的格式是:"XXX的职位是YYY"
--如果文本作为数据出现,使用单引号,如果文本作为别名出现,不使用引号或使用双引号(建议使用双引号)
select ename || '的职位是' || job as "描述"
from emp;
select ename || '的奖金是' || comm
from emp;
null值参与文本拼接,不影响原拼接结果
--总结:null值参与数值运算,数值运算的结果一定是null
-- null值参与文本拼接,对原拼接结果没有影响
--4.去掉重复的数据
--查询emp表中出现的部门编号,去掉其中重复的数据
--distinct
关键字
-- select distinct 列名1, 列2 from emp;
-- 例:对列的重复数据进行筛选,只保留一组
select distinct deptno from emp;
--错误示例:distinct只能写在select身后
select deptno, distinct job from emp;
select deptno, job from emp;
-- 以所有列的组合数据进行去重复
select distinct deptno, job from emp;
--课后练习:
--1.查询员工编号,员工姓名,员工的入职日期
select empno, ename, hiredate
from emp;
--2.查询员工姓名,员工职位和员工月薪,以“XXX的职位是YYY,月薪是ZZZ”的格式进行显示
select ename || '的职位是' || job || ',月薪是' || sal
from emp;
--3.查询员工姓名,员工的月薪,奖金,和交税金额(交税金额计算公式为:月收入*0.05)
select ename, sal, comm, (sal+nvl(comm,0))*0.05
from emp;
--4.查询经理编号,并去掉其中重复的数据
select distinct mgr
from emp;
--5.查询经理编号和部门编号,并去掉其中重复的数据
select distinct mgr, deptno
from emp;
--6.查询员工姓名,年收入(公式:(月薪+奖金)*12),并以“XXX的年收入是YYY"进行显示
select ename|| '的年收入是' || ((sal+nvl(comm,0))*12) || '。'
from emp;
--7.查询员工年收入(公式:(月薪+奖金)*12),并去掉其中重复的数据
select distinct (sal+nvl(comm,0))*12
from emp;
--8.查询员工职位,月薪,去掉重复的数据
select distinct job, sal
from emp;
--9.查询员工编号,姓名,入职日期,并以“工号是XXX的员工YYY的入职日期是ZZZ”格式显示
select '工号是' || empno || '的员工' || ename || '的入职日期是' || hiredate
from emp;
网友评论