oracle数据库实训之第二章《编写简单的查询语句》

第二章《编写简单的查询语句》

练习1

1、使用两种方式查询所有员工(EMP)信息

(1)select * from emp

2select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp

2、查询(EMP)员工编号、员工姓名、员工职位、员工月薪、工作部门编号

select empno,ename,job,sal,deptno from emp

知识点一:算术运算符

1、可以在select语句中使用算术运算符(+,-,*,/),改变输出结果

如:select sal,sal+300  from emp

2、算术运算符优先级

(1)乘除优先于加减

(2)相同优先权的表达式按照从左至右的顺序依次计算

(3)括弧可以提高优先权,并使表达式的描述更为清晰

练习2

1、员工转正后,月薪上调20%,请查询出所有员工转正后的月薪。

(注意:用百分号不行,即是用20%代替0.2是执行不了的)

select  sal*(1+0.2) 转正后月薪 from emp

2、员工试用期6个月,转正后月薪上调20%,请查询出所有员工工作第一年的年薪所得(不考虑奖金部分,年薪的试用期6个月的月薪+转正后6个月的月薪)

select 6*sal+6*sal*(1+0.2) 一年月薪 from emp

知识点二:空值NULL

(1)空值是指一种无效的、未赋值、未知的或不可用的值。

(2)空值不同于零或者空格

(3)算术表达式中的空值NULL。任何包含空值的算术表达式运算后的结果都为空值NULL。

如:select ename,12*sal+comm  from emp where ename='KING'

第二列返回的是空值null,因为KING的奖金comm是空值

知识点三:列别名

(1)用来重新命名列的显示标题

(2)如果SELECT语句中包含计算列,通常使用列别名来重新定义列标题

(3)使用列别名的方法

方式1:列名 列别名

方式2:列名 AS 列别名

(4)以下三种情况列别名两侧需要添加双引号

情况一:列别名中包含有空格

情况二:列别名中要求区分大小写

情况三:列别名中包含有特殊字符

(5)注意:列别名如果是中文,要加双引号

练习3

1、员工试用期6个月,转正后月薪上调20%,请查询出所有员工工作第一年的所有收入(需要考虑奖金部分),要求显示列标题为员工姓名,工资收入、奖金收入、总收入。

(注意:当comm是空值时候,所有带有它的运算都是空值,解决办法是使用nvl(comm,0),那么当comm为空时就返回0)

select ename as 员工姓名,6*sal+6*sal*(1+0.2) 工资收入,comm 奖金收入,6*sal+6*sal*(1+0.2)+nvl(comm,0) 总收入

from emp

知识点四:连接操作符

(1)用于连接列与列、列和字符

(2)形式上是以两个竖杠||

(3)用于创建字符表达式的结果列

如:select *  ename||job from emp

知识点五:原义字符串

(1)原义字符串是包含在SELECT列表中的一个字符、一个数字或一个日期。

(2)日期和字符字面值必须用单引号引起来。

(3)每个原义字符串都会在每个数据行输出中出现。

原义字符串的使用如下:

select  ename || ' is a' || job   from emp

知识点六:消除重复行

(1)在SELECT字句中使用关键字DISTINCT可消除重复行。

如:select distinct deptno from emp

练习4

1、员工试用期6个月,转正后月薪上调20%,请查询出所有员工工作第一年的所有收入,需要考虑奖金部分),要求显示格式为:XXX的第一年总收入为XXX。(使用到连接符”||”,它可以用于连接列与列,列与字符)

select ename||'的第一年总收入为'||(6*sal+6*sal*(1+0.2)+nvl(comm,0)) from emp

2、查询员工表中一共有哪几种岗位类型。(使用distinct关键字可以消除重复行)

select distinct job  from  emp

知识点七:显示表的结构

(1)在SQL*Plus中,可以使用DESCRIBE 命令来查看表结构

如:desc [ribe]   emp

知识点八:SQL语句与SQL*PLUS命令的区别

(1)SQL是关系型数据库的标准操作语言,而SQL*Plus是一个客户端工具,除了执行标准的SQL外,还可以执行工具本身的一些命令,比如登录等。

(2)SQL语句不可以缩写,而SQL*PLUS命令可以缩写。

课后作业:

1、分别选择员工表、部门表、薪资等级表中的所有数据。

select * from emp
select * from dept

select * from salgrade

2、分别查看员工表、部门表、薪资等级表的表结构。

desc emp

desc dept

desc salgrade

 

 

 

猜你喜欢

转载自blog.csdn.net/rongzz/article/details/81234316