每天开心一点

SQL和PLSQL--基本查询

2024-07-29 13:52:00    六月    154    原创

SQL> --清屏

SQL> host cls

SQL> --当前用户

SQL> show user

USER 为 "SCOTT"

SQL> --当前用户下的表

SQL> select * from tab;


SQL> --员工表的结构

SQL> desc emp


SQL> --查询所有员工的所有信息

SQL> select * from emp;                      

SQL> --设置行宽

SQL> show linesize

linesize 80

SQL> set linesize 120

SQL>  --设置列宽

SQL> col ename for a8

SQL> col sal for 9999

SQL> /

SQL> --通过列名查询

SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno

  2  form emp;

form emp

     *

第 2 行出现错误: 

ORA-00923: 未找到要求的 FROM 关键字 

SQL> 2

  2* form emp

SQL> --c命令  change

SQL> c /form/from

  2* from emp

SQL> /


SQL> /*

SQL> SQL优化原则

SQL> 1. 尽量使用列名

SQL> */

SQL> host cls


SQL> --查询员工信息:员工号 姓名 月薪

SQL> select empno,ename,sal

  2  from emp;

SQL> --查询员工信息:员工号 姓名 月薪  年薪

SQL> select empno,ename,sal,sal*12

  2  from emp;

SQL>  --查询员工信息:员工号 姓名 月薪  年薪 奖金 年收入

SQL> select empno,ename,sal,sal*12,comm,sal*12+comm

  2  from emp;

SQL> /*

SQL> SQL中的null

SQL> 1. SQL中,包含null的表达式都为null

SQL> 2. SQL中,null永远!=null

SQL> */

SQL> select empno,ename,sal,sal*12,comm,sal*12+nvl(comm,0)

  2  from emp;


SQL> --查询奖金为null的员工

SQL> select *

  2  from emp

  3  where comm=null;

未选定行


SQL> select *

  2  from emp

  3  where comm is null;


SQL> select empno,ename,sal,sal*12,comm,sal*12+nvl(comm,0)

  2  from emp;


SQL> ed

已写入 file afiedt.buf

  1  select empno as "员工号",ename "姓名",sal 月  薪,sal*12,comm,sal*12+nvl(comm,0)

  2* from emp

SQL> /

select empno as "员工号",ename "姓名",sal 月  薪,sal*12,comm,sal*12+nvl(comm,0)

第 1 行出现错误: 

ORA-00923: 未找到要求的 FROM 关键字 

SQL> ed

已写入 file afiedt.buf

  1  select empno as "员工号",ename "姓名",sal "月  薪",sal*12,comm,sal*12+nvl(comm,0)

  2* from emp

SQL> /

SQL> host cls

SQL> --distinct 去掉重复记录

SQL> select deptno from emp;

SQL> select distinct deptno from emp;

SQL> select job from emp;

SQL> select distinct job from emp;

SQL> select distinct deptno,job from emp;

SQL> --distinct作用于后面所有的列

SQL> host cls

SQL> --concat 函数

SQL> select concat('Hello','  World');

select concat('Hello','  World')

 *

第 1 行出现错误: 

ORA-00923: 未找到要求的 FROM 关键字 

SQL> select concat('Hello','  World') from emp;

SQL> select concat('Hello','  World') from dual;          

SQL> select 3+2 from dual;

SQL> select * from tab;

SQL> --dual: 伪表

SQL> --伪列

SQL> select 'hello'||' world' 字符串 from dual;

SQL> --查询员工信息:***的薪水是***

SQL> select ename||'的薪水是'||sal 信息 from emp;

SQL> host cls

SQL> --字符串

SQL> select * from emp;

SQL> spool off