SQL和PLSQL--基本查询
- 2024-07-29 13:52:00
- 六月
- 原创 96
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