select查询学习
格式:select 要查询的数据(字段1,字段2…) from 数据来源;
-1------查询员工表
例:select * from emp;
-2------查询员工名
例:select ename from emp;
-3------查询所有的员工编号和员工名称,员工上级编号
例:select empno , ename ,mgr from emp;
-4------查询所欲员工所在的部门编号
数据:部门编号 deptno
来源:dept emp
select deptno from dept;
select deptno from emp;
emp表中会有重复字段 去除重复字段使用 distinct
格式:select distinct 要查询的数据 from 数据来源
例:select distinct deptno from emp;
--------注:distinct 去重只能对结果集中完全相同的数据进行去重--------
-5------查询表达式 伪列(不存在的列就是伪列 比如 表达式,字符串)
格式:select 表达式 from 表名
例:select 1+1 from emp;
例:select distinct 123*456 from emp;
(使用distinct去掉重复)
-6------取别名 给字段取别的名字
格式:select 查询字段1 (as)别名 , 查询字段2 (as)别名 from 表名
例:select ename 员工名称 from emp;
注1:当取得别名中有其他符号,例:“员工 名称”,需要在查询别名中加双引号
例:select ename "员工 名称" from emp
注2:当改的别名中还是字母,名字会默认大写,当还是要是要用别名不变时加引号
例:select ename "empName", sal empSal from emp
-7------字符串拼接: ||
在所有员工名字前加SX-
例:select 'SX-'||ename 用户名 from emp;
-8--------默认值null的处理
- null值与数字进行运算,结果还是null
- null值与字符串拼接,结果是原串
- nvl 处理null值 nvl(字段,值) 如果参数1字段为null,函数最终的结果为参数2指定值,如果字段不为null,结果为当前字段
(实现每个员工奖金+1)
例1:select empno,ename,sal, comm, comm+1 from emp;
例2:select empno,ename,sal,comm,comm||'1' from emp;
例3:select empno 员工编号,ename 员工姓名,sal 薪资, comm奖金,nvl(comm,0)+1 from emp;
-9------虚表 (dual 没有数据 没有字段)
例:select * from dual;
例:select 123*456 from dual;
例:select sysdate from dual;