暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

学习笔记-SQL基础知识学习-20210415

原创 Jun song 2021-04-15
461

(^@^)~ 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;

image.png

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

(^@^)~ 算数表达式
使用算数运算符可以创建包含数字和日期数据的表达式

  • 加;- 减;* 乘;/ 除
    select 1+1 from dual;

image.png
scott用户下的emp表结构如下:
image.png

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

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

验算一下
image.png

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

(^@^)~ 如何处理空值
可以使用nvl函数处理空值
nvl 函数, 如果是空值, 就转换为 0: nvl(comm,0)

image.png

image.png

如果不处理空值
image.png

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论