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是保存

原文地址:https://www.cnblogs.com/yang1182/p/9585280.html