oracle基本查询
1、show user
USER 为 "SCOTT"
set linesize 120--------------------------设置行宽 每一行显示120个字符
col ename for a8 ----------------------设置ename列宽 a表示字符串 8表示字符串的宽度是8
col sal for 9999/ ---------------------- 一个9代表一个数字,薪水是四个数字所以是四个9
/ --------------------------------------------表示执行上一条sql语句
select * from tab;------------------------查看tab数据字典(管理员提供的表)
host cls---------------------------------清屏“屏幕东西太多时清屏。
-----------------------通过列名查询
2、SQL优化:
-------------------------- 尽量使用列名代替* 查询要快
--查询员工号 姓名 月薪 年薪 年收入
select empno,ename,sal,sal*12 年薪,comm 奖金,sal*12+comm 年收入
from emp;
-------------------查询员工号 姓名 月薪 年薪
--------------------------查询员工号 姓名 月薪 年薪 年收入(部分截图)
因为comm(奖金)有些人没有,即为空值,这样sal*12+comm 就会出现下面这种情况:所以,SQL中null值:包含null的表达式都为null, SQL中,null != null
-------------------------------------因此为处理这种情况有一个nvl来处理;nvl判断值如果为空,则赋值给它0
select empno,ename,sal,sal*12 年薪,comm 奖金,sal*12+nvl(comm,0) 年收入from emp:同样是求查询员工号 姓名 月薪 年薪 年收入
SQL中,null != null
--查询奖金为null的员工
select *
from emp
where comm=null; 因为comm是null 在sql中null!-null
未选定行
SQL> ed
已写入 file afiedt.buf
select *
from emp
where comm is null 要用is 不要用=
------------------------------- ed 是在oracle中语句有错误可以打开编辑器重新修改的命令
如图:
host cls-------------------------清屏
distinct--------去掉重复的记录:
同时对两列进行去重时,是两列全部相同才是重复的
这个是代表deptno与job组合起来没有重复的才省掉
concat 连接字符串
上图中的dual是管理员提供的伪表;
--连接符:||
SQL> select 'Hello'||' World' from dual;
select ename||'的薪水是'||sal 一列
from emp;
save是保存