Oracle基本查询

本例的操作前期都在控制台完成,后期会使用客户端。
 
 1 SQL> --设置行宽
 2 SQL> show linesize
 3 linesize 80
 4 SQL> set linesize  150
 5 SQL> --设置列宽
 6 SQL> col ename format a8
 7 SQL> col sal for 9999
 8 //col是column的缩写,代表列,在sqlplus中比sql方便的是支持缩写
 9 //for是format的缩写,
10 //a代表一个符号位,8代表长度
11 //9代表一个数字符号位,9999代表该列的列宽为4个数字长度
1 SQL> --查询员工信息:员工号 姓名 月薪 年薪 奖金 年收入
2 SQL> select empno,ename,sal,sal*12,comm,sal*12+comm
3 //可以直接在语句中进行计算
 1 /*
 2 SQL> SQL中的null值:
 3 SQL> 1. 包含null的表达式都为null
 4 SQL> 2. null永远!=null
 5 SQL> *、
 6 SQL> */
 7 SQL> select empno,ename,sal,sal*12,comm,sal*12+nvl(comm,0)
 8 在实际使用的过程中,如果 某个表达式包含空值,那么这个表达式的结果也为null;
 9 不能通过=号来判断数据是否为空,应该用is
10 错误: where comm=null;
11 正确:where comm is null;
 1 NVL(a,b)
 2 nvl函数表示如果a为空,那么取值为b,不为空,取原值。
 3 例如:
 4 SQL> select empno,ename,sal,sal*12,comm,sal*12+nvl(comm,0)
 5   2  from emp;
 6 拓展:
 7 SQL> ed
 8 使用默认的记事本软件打开上一条sql语句进行编辑
 9 保存关闭后
10 SQL> /
11 使用/来执行保存的语句,也就是执行上一条语句
1 去除重复
2 SQL> --distinct 去掉重复记录
3 SQL> select deptno from emp;有重复
4 SQL> select distinct deptno from emp;没有重复
5 去重两个作用与两个列
6 SQL> select distinct deptno,job from emp;
7 上一行的语句意思是:去除部门号和职位都相同的数据
8  
 1 SQL> --连接符 ||
 2 SQL> -- concat
 3 SQL> select concat('Hello','  World') from dual;
 4 CONCAT('HELL                                                                                                                                          
 5 ------------                                                                                                                                          
 6 Hello  World
 7 SQL> --dual表:伪表
 8 dual是数据库提供的伪表,要查询的操作不属于任何的表时,就需要使用此表进行占位。
 9 SQL> select 3+2 from dual;
10        3+2                                                                                                                                            
11 ----------                                                                                                                                            
12          5                                                                                                                                            SQL> select 'Hello'||'  World'  字符串 from dual;
13 字符串                                                                                                                                                
14 ------------                                                                                                                                          
15 Hello  World
16 SQL> --查询员工信息:***的薪水是****
17 SQL> select ename||'的薪水是'||sal 信息 from emp;
18 信息                                                                                                                                                  
19 ----------------------------------------------------------                                                                                            
20 SMITH的薪水是800 
 
原文地址:https://www.cnblogs.com/anzhi/p/7515640.html