(^@^)~ select * from scott.emp;
* 代表查询所有列,也会比较方便查看整张表里的所有数据。
但是需要注意:
1.如果你查询的数据并不是所查询表中的所有字段,那么些*会查询整张表的数据库,会增加oracle处理代价,会降低性能。
2.写*时,oracle需要查询数据字典,转换为具体列名称。
啥是数据字典:数据字典是oracle存放有关数据库信息的地方,几乎所有的系统信息和对象信息都可在数据字典中进行查询。数据字典是oracle数据库系统的信息核心,它是一组提供有关数据库信息的表和视图的集合,这些表和视图是只读的。它是随着数据库的建立而建立的,当数据库执行特定动作时数据字典也会自动更新。数据一览与数据字典来记录、校验和管理正在进行的操作。Oracle中,sys用户是数据字典的拥有者,数据字典保证在所有数据库的系统表空间system内,数据字典只能查询,不能手动进行修改。
3.如果要从事sql开发,还是比较建议写具体字段名称。

select empno,ename from scott.emp;
(^@^)~ 选择想要查询的列。

(^@^)~ 表结构描述 describe
当你知道一个表的名字,但是不知道这个表的表结构是什么样子的,可以在sqlplus里面执行desc scott.dept命令,能查询到这个表的表结构以及表的字段类型等信息。

(^@^)~ 格式化列的宽度 col … for
col deptno for 9999
col dname for a20
select * from scott.dept;

如果列宽度设置不够, 会出现###。

(^@^)~ 算数表达式
使用算数运算符可以创建包含数字和日期数据的表达式
- 加;- 减;* 乘;/ 除
select 1+1 from dual;

scott用户下的emp表结构如下:

现在每个员工工资涨400,要求查询出员工姓名、工资、工资调整后的信息
select ename,sal,sal+400 from scott.emp;

(^@^)~ 表达式的优先级
* / + -
乘除高于加减
相同优先级的操作符自左向右进行计算,带圆括号()的,括号里面的优先计算。也就是说用括号可以改变优先级。
每个员工的年终奖金是5000,每个月的的绩效是200,要求查询出每个员工的名称和其全年收入
需求分解:
全年收入=12*(基本工资+200)+5000
select ename,12*(sal+200)+5000 from scott.emp;

验算一下

(^@^)~ 空值的定义以及如何处理空值
空值的定义:空值是无效的、未指定的、未知的或不可预知的值,空值不是空格或者0
空值在数学运算中的使用:包含空值的数学表达式的值都为空值
空值的定义里面说了,包含空值的数学表达式的值都为空值,那么我们来验证一下,还是使用scott.emp这个表。
执行:select ename,sal,comm,sal+comm from scott.emp;

可以看出所有空值参与计算的值都为空值。
(^@^)~ 如何处理空值
可以使用nvl函数处理空值
nvl 函数, 如果是空值, 就转换为 0: nvl(comm,0)


如果不处理空值





