zoukankan      html  css  js  c++  java
  • Oracle入门基础(一)一一基本查询

    SQL> --当前用户
    SQL> show user
    
    SQL>  --当前用户下的表
    SQL> select * from tab;
    TNAME                          TABTYPE  CLUSTERID                               
    ------------------------------ ------- ----------                               
    DEPT                           TABLE                                            
    EMP                            TABLE                                            
    BONUS                          TABLE                                            
    SALGRADE                       TABLE                                            
    
    SQL> --员工表的结构
    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)
    
    SQL> --清屏
    SQL> host cls
    
    SQL> --查询所有的员工信息
    SQL> select * from emp;
         EMPNO ENAME    JOB              MGR HIREDATE         SAL       COMM     DEPTNO                                                                      
          7369 SMITH    CLERK           7902 17-12月-80       800                    20                                     
          7499 ALLEN    SALESMAN        7698 20-2月 -81      1600        300         30 
    
    
    SQL> --设置行宽
    SQL> show linesize
    linesize 80
    SQL> set linesize 120
    SQL> --设置列宽
    SQL> col ename for a8
    SQL> col sal for 9999
    
    SQL> --通过列名
    SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp
         EMPNO ENAME    JOB              MGR HIREDATE         SAL       COMM     DEPTNO                                                                 
          7369 SMITH    CLERK           7902 17-12月-80       800                    20                                     
          7499 ALLEN    SALESMAN        7698 20-2月 -81      1600        300         30                  
                                       
    SQL> SQL优化的原则:
    SQL> 1。尽量使用列名
    
    SQL> --查询员工信息:员工号 姓名 月薪 年薪
    SQL> select empno,ename,sal,sal*12  from emp;
         EMPNO ENAME      SAL     SAL*12                                                                                                                                                              
          7369 SMITH      800       9600                                                                                    
          7499 ALLEN     1600      19200                                                                                    
       
    
    SQL> --查询员工信息:员工号 姓名 月薪 年薪 奖金 年收入
    SQL> select empno,ename,sal,sal*12,comm,sal*12+comm from emp;
         EMPNO ENAME      SAL     SAL*12       COMM SAL*12+COMM                                                                                                                       
          7369 SMITH      800       9600                                                                                    
          7499 ALLEN     1600      19200        300       19500                                                             
       
    
    SQL> /*
    SQL> SQL中的null
    SQL> 1、包含null的表达式都为null
    SQL> 2、null永远!=null
    SQL> */
    SQL> --nvl(a,b)   nvl2
    SQL> select empno,ename,sal,sal*12,comm,sal*12+nvl(comm,0)   from emp;
         EMPNO ENAME      SAL     SAL*12       COMM SAL*12+NVL(COMM,0)                                                                                                       
          7369 SMITH      800       9600                          9600                                                      
          7499 ALLEN     1600      19200        300              19500                                                      
    
    SQL> --2、null永远!=null
    SQL> --查询奖金为null的员工
    SQL> select *  from emp  where comm=null;
    未选定行
    
    SQL> select *  from emp  where comm is null;
         EMPNO ENAME    JOB              MGR HIREDATE         SAL       COMM     DEPTNO                                                                 
          7369 SMITH    CLERK           7902 17-12月-80       800                    20                                     
          7566 JONES    MANAGER         7839 02-4月 -81      2975                    20                                     
    SQL> host cls
    
    SQL> select empno,ename,sal,sal*12,comm,sal*12+nvl(comm,0)  from emp;
         EMPNO ENAME      SAL     SAL*12       COMM SAL*12+NVL(COMM,0)                                                                                                     
          7369 SMITH      800       9600                          9600                                                      
          7499 ALLEN     1600      19200        300              19500                                                      
    
    SQL> --distinct 去掉重复记录
    SQL> select distinct deptno from emp;
        DEPTNO                                                                                                                                                                                                                 
            30                                                                                                              
            20                                                                                                              
            10                                                                                                              
    
    SQL> select distinct deptno,job from emp;
        DEPTNO JOB                                                                                                                                                                                  
            20 CLERK                                                                                                        
            30 SALESMAN                                                                                                     
            20 MANAGER                                                                                                      
            30 CLERK                                                                                                        
            10 PRESIDENT                                                                                                    
            30 MANAGER                                                                                                      
            10 CLERK                                                                                                        
            10 MANAGER                                                                                                      
            20 ANALYST                                                                                                      
    SQL> --distinct作用于后面所有的列
    
    
    
    SQL> --连接符 ||
    SQL> --concat函数
    SQL> select concat('Hello','  World');
    select concat('Hello','  World')
                                   *
    第 1 行出现错误: 
    ORA-00923: 未找到要求的 FROM 关键字 
    
    
    SQL> select concat('Hello','  World') from emp;
    
    CONCAT('HELL                                                                                                            
    ------------                                                                                                            
    Hello  World                                                                                                            
    Hello  World                                                                                                            
    
    SQL> select 3+2 from dual;
           3+2                                                                                                                                                                                                                       
             5                                                                                                              
    
    SQL> --dual表:伪表
    SQL> --伪列
    SQL> select 'Hello'||'  World' 字符串 from dual;
    
    字符串                                                                                                                  
    ------------                                                                                                            
    Hello  World                                                                                                            
    
    SQL> --查询员工信息:***的薪水是****
    SQL> select ename||'的薪水是'||sal 信息 from emp;
    
    信息                                                                                                                                                                              
    SMITH的薪水是800                                                                                                        
    ALLEN的薪水是1600                                                                                                       
    
  • 相关阅读:
    清除右键图形属性--图形选项
    Hibernate整合Struts2时报错
    shell基础篇(十)shell脚本的包含
    shell基础篇(九)函数
    浅谈sql的字符分割
    shell基础(八)-循环语句
    shell基础(七)-条件语句
    vue ---- Object的一些常用的方法
    vuex的应用和解决的实际问题
    webpack2代码分割
  • 原文地址:https://www.cnblogs.com/Aaron-007/p/12814630.html
Copyright © 2011-2022 走看看