Oracle数据库--基本的select语句

Posted Vanguard

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle数据库--基本的select语句相关的知识,希望对你有一定的参考价值。

1. 基本select语句

   1)查看当前用户
    show user
   USER 为 "SCOTT"
   2)查询当前用户下的表
    SQL> select * from tab;

  TNAME TABTYPE CLUSTERID
  ------------------------------ ------- ----------
  DEPT TABLE
  EMP TABLE
  BONUS TABLE
  SALGRADE TABLE

   3)查看员工表的结构
   SQL> desc emp
  名称 是否为空? 类型
  ----------------------------------------- -------- ----------------------------
  EMPNO NOT NULL NUMBER(4)
  ENAME VARCHAR2(10)
  JOB VARCHAR2(9)
  MGR NUMBER(4)
  HIREDATE DATE
  SAL NUMBER(7,2)
  COMM NUMBER(7,2)
  DEPTNO NUMBER(2)

   4)清屏
  SQL> host cls

   5)查询所有的员工信息
  SQL> select * from emp;

   6)设置行宽
  SQL> show linesize
  linesize 80
  SQL> set linesize 120
   7)设置列宽
  SQL> col ename for a8
  SQL> col sal for 9999
  SQL> /

 

  8)通过列名
  SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno
  2 from emp;

  

   

  SQL优化的原则:
  1。尽量使用列名

      9)查询员工信息:员工号 姓名 月薪
  SQL> select empno,ename,sal
    

      10)c命令 change
   

 

  11)查询员工信息:员工号 姓名 月薪 年薪
  SQL> select empno,ename,sal,sal*12
  2 from emp;

 

  12)查询员工信息:员工号 姓名 月薪 年薪 奖金 年收入
  SQL> select empno,ename,sal,sal*12,comm,sal*12+comm
  2 from emp;

  

    SQL中的null
   1、包含null的表达式都为null
   2、null永远!=null

       13)nvl(a,b) nvl2 当a为null,值为b
  

 

  14)SQL中的null

  2、null永远!=null
  15)查询奖金为null的员工
  SQL> select *
  2 from emp
  3 where comm=null;

   

  SQL> select *
  2 from emp
  3 where comm is null;

  

  16)列的别名

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

  17)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;

        

  distinct作用于后面所有的列

     18)连接符 ||

   concat函数

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

  

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

       

 

  dual表:伪表
  伪列
   select \'Hello\'||\' World\' 字符串 from dual;

  

  查询员工信息:***的薪水是****
  SQL> select ename||\'的薪水是\'||sal 信息 from emp;

  

以上是关于Oracle数据库--基本的select语句的主要内容,如果未能解决你的问题,请参考以下文章

ORA-01791: 不是 SELECTed 表达式

ORACLE数据库--order by----ORA-01785 ORDER BY必须是select-list 表达式的数目

选择语句在 Oracle 11 上给出 ora-03113

ORACLE 两个order by的SQL使用 UNION 或者 UNION ALL 报错 ORA-00933:sql命令未正确结束

ora_rowscn 在 USING 子句中时的 Oracle 合并语句行为

Oracle查询错误分析 ORA-01791 不是SELECTed表达式