zoukankan      html  css  js  c++  java
  • oracle的基本查询

    1、清屏操作:

    SQL> host cls

    2、查看当前用户:

    SQL> show user;
    USER 为 "SCOTT"        当前用户为Scott

    3、当前用户下的表:

    SQL> select * from tab;               tab数据字典(管理员提供的表)
    
    TNAME                                                        TABTYPE       CLUSTERID      
    ------------------------------------------------------------ -----------------------
    
    BONUS                                                        TABLE
    
    
    DEPT                                                         TABLE
    
    
    EMP                                                          TABLE
    
    
    
    TNAME                                                        TABTYPE         CLUSTERID
    ------------------------------------------------------------ --------------------------
    
    SALGRADE                                                     TABLE

    4、查看表结构:

    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)               部门代号

    5、查询所有员工的所有信息

    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
    
          7521 WARD                 SALESMAN                 7698 22-2月 -81
          1250        500         30
    
    
         EMPNO ENAME                JOB                       MGR HIREDATE
    ---------- -------------------- ------------------ ---------- --------------
           SAL       COMM     DEPTNO
    ---------- ---------- ----------
          7566 JONES                MANAGER                  7839 02-4月 -81
          2975                    20
    
          7654 MARTIN               SALESMAN                 7698 28-9月 -81
          1250       1400         30
    
          7698 BLAKE                MANAGER                  7839 01-5月 -81
          2850                    30
    
    
         EMPNO ENAME                JOB                       MGR HIREDATE
    ---------- -------------------- ------------------ ---------- --------------
           SAL       COMM     DEPTNO
    ---------- ---------- ----------
          7782 CLARK                MANAGER                  7839 09-6月 -81
          2450                    10
    
          7788 SCOTT                ANALYST                  7566 19-4月 -87
          3000                    20
    
          7839 KING                 PRESIDENT                     17-11月-81
          5000                    10
    
    
         EMPNO ENAME                JOB                       MGR HIREDATE
    ---------- -------------------- ------------------ ---------- --------------
           SAL       COMM     DEPTNO
    ---------- ---------- ----------
          7844 TURNER               SALESMAN                 7698 08-9月 -81
          1500          0         30
    
          7876 ADAMS                CLERK                    7788 23-5月 -87
          1100                    20
    
          7900 JAMES                CLERK                    7698 03-12月-81
           950                    30
    
    
         EMPNO ENAME                JOB                       MGR HIREDATE
    ---------- -------------------- ------------------ ---------- --------------
           SAL       COMM     DEPTNO
    ---------- ---------- ----------
          7902 FORD                 ANALYST                  7566 03-12月-81
          3000                    20
    
          7934 MILLER               CLERK                    7782 23-1月 -82
          1300                    10
    
    
    已选择14行。

    6、设置行宽  每一行显示120个字符:

    SQL> set linesize 120

    7、设置ename列宽  a表示字符串 8表示字符串的宽度是8:

    SQL> col ename for a8

    8、设置ename列宽   一个9代表一个数字,薪水是四个数字所以是四个9:

    SQL> col sal for 9999

    9、执行上一条sql语句:

    SQL> /
    
         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
          7521 WARD     SALESMAN                 7698 22-2月 -81      1250        500         30
          7566 JONES    MANAGER                  7839 02-4月 -81      2975                    20
          7654 MARTIN   SALESMAN                 7698 28-9月 -81      1250       1400         30
          7698 BLAKE    MANAGER                  7839 01-5月 -81      2850                    30
          7782 CLARK    MANAGER                  7839 09-6月 -81      2450                    10
          7788 SCOTT    ANALYST                  7566 19-4月 -87      3000                    20
          7839 KING     PRESIDENT                     17-11月-81      5000                    10
          7844 TURNER   SALESMAN                 7698 08-9月 -81      1500          0         30
          7876 ADAMS    CLERK                    7788 23-5月 -87      1100                    20
    
         EMPNO ENAME    JOB                       MGR HIREDATE         SAL       COMM     DEPTNO
    ---------- -------- ------------------ ---------- -------------- ----- ---------- ----------
          7900 JAMES    CLERK                    7698 03-12月-81       950                    30
          7902 FORD     ANALYST                  7566 03-12月-81      3000                    20
          7934 MILLER   CLERK                    7782 23-1月 -82      1300                    10
    
    已选择14行。

    10、通过列名查询:

    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
          7521 WARD     SALESMAN                 7698 22-2月 -81      1250        500         30
          7566 JONES    MANAGER                  7839 02-4月 -81      2975                    20
          7654 MARTIN   SALESMAN                 7698 28-9月 -81      1250       1400         30
          7698 BLAKE    MANAGER                  7839 01-5月 -81      2850                    30
          7782 CLARK    MANAGER                  7839 09-6月 -81      2450                    10
          7788 SCOTT    ANALYST                  7566 19-4月 -87      3000                    20
          7839 KING     PRESIDENT                     17-11月-81      5000                    10
          7844 TURNER   SALESMAN                 7698 08-9月 -81      1500          0         30
          7876 ADAMS    CLERK                    7788 23-5月 -87      1100                    20
    
         EMPNO ENAME    JOB                       MGR HIREDATE         SAL       COMM     DEPTNO
    ---------- -------- ------------------ ---------- -------------- ----- ---------- ----------
          7900 JAMES    CLERK                    7698 03-12月-81       950                    30
          7902 FORD     ANALYST                  7566 03-12月-81      3000                    20
          7934 MILLER   CLERK                    7782 23-1月 -82      1300                    10
    
    已选择14行。

    11、SQL优化:尽量使用列名代替* 查询要快

    12、注释  ( 单行用 -- 多行用 /* */)

    13、查询员工号 姓名 月薪 年薪:

    SQL> select empno,ename,sal,sal*12 from emp;
    
         EMPNO ENAME      SAL     SAL*12
    ---------- -------- ----- ----------
          7369 SMITH      800       9600
          7499 ALLEN     1600      19200
          7521 WARD      1250      15000
          7566 JONES     2975      35700
          7654 MARTIN    1250      15000
          7698 BLAKE     2850      34200
          7782 CLARK     2450      29400
          7788 SCOTT     3000      36000
          7839 KING      5000      60000
          7844 TURNER    1500      18000
          7876 ADAMS     1100      13200
    
         EMPNO ENAME      SAL     SAL*12
    ---------- -------- ----- ----------
          7900 JAMES      950      11400
          7902 FORD      3000      36000
          7934 MILLER    1300      15600
    
    已选择14行。

    14、查询员工号 姓名 月薪 年薪 年收入:

    SQL> select empno,ename,sal,sal*12 年薪,comm 奖金,sal*12+comm 年收入 from emp;
    
         EMPNO ENAME      SAL       年薪       奖金     年收入
    ---------- -------- ----- ---------- ---------- ----------
          7369 SMITH      800       9600
          7499 ALLEN     1600      19200        300      19500
          7521 WARD      1250      15000        500      15500
          7566 JONES     2975      35700
          7654 MARTIN    1250      15000       1400      16400
          7698 BLAKE     2850      34200
          7782 CLARK     2450      29400
          7788 SCOTT     3000      36000
          7839 KING      5000      60000
          7844 TURNER    1500      18000          0      18000
          7876 ADAMS     1100      13200
    
         EMPNO ENAME      SAL       年薪       奖金     年收入
    ---------- -------- ----- ---------- ---------- ----------
          7900 JAMES      950      11400
          7902 FORD      3000      36000
          7934 MILLER    1300      15600
    
    已选择14行。

    15、SQL中null值:

    1. 包含null的表达式都为null

    所以进行修改:

    SQL> ed
    已写入 file afiedt.buf
    
      1* select empno,ename,sal,sal*12 年薪,comm 奖金,sal*12+nvl(comm,0) 年收入 from emp

    SQL> /

    EMPNO ENAME SAL 年薪 奖金 年收入
    ---------- -------------------- ---------- ---------- ---------- ----------
    7369 SMITH 800 9600 9600
    7499 ALLEN 1600 19200 300 19500
    7521 WARD 1250 15000 500 15500
    7566 JONES 2975 35700 35700
    7654 MARTIN 1250 15000 1400 16400
    7698 BLAKE 2850 34200 34200
    7782 CLARK 2450 29400 29400
    7788 SCOTT 3000 36000 36000
    7839 KING 5000 60000 60000
    7844 TURNER 1500 18000 0 18000
    7876 ADAMS 1100 13200 13200

    EMPNO ENAME SAL 年薪 奖金 年收入
    ---------- -------------------- ---------- ---------- ---------- ----------
    7900 JAMES 950 11400 11400
    7902 FORD 3000 36000 36000
    7934 MILLER 1300 15600 15600

    已选择14行。

     2. SQL中,null != null:

    SQL> select * from emp where comm=null;
    
    未选定行

    此时进行修改 :  要用is 或者用 is not

    SQL> ed
    已写入 file afiedt.buf
    
      1* select * from emp where comm is null
    SQL> /
    
         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
    
          7698 BLAKE                MANAGER                  7839 01-5月 -81
          2850                    30
    
    
         EMPNO ENAME                JOB                       MGR HIREDATE
    ---------- -------------------- ------------------ ---------- --------------
           SAL       COMM     DEPTNO
    ---------- ---------- ----------
          7782 CLARK                MANAGER                  7839 09-6月 -81
          2450                    10
    
          7788 SCOTT                ANALYST                  7566 19-4月 -87
          3000                    20
    
          7839 KING                 PRESIDENT                     17-11月-81
          5000                    10
    
    
         EMPNO ENAME                JOB                       MGR HIREDATE
    ---------- -------------------- ------------------ ---------- --------------
           SAL       COMM     DEPTNO
    ---------- ---------- ----------
          7876 ADAMS                CLERK                    7788 23-5月 -87
          1100                    20
    
          7900 JAMES                CLERK                    7698 03-12月-81
           950                    30
    
          7902 FORD                 ANALYST                  7566 03-12月-81
          3000                    20
    
    
         EMPNO ENAME                JOB                       MGR HIREDATE
    ---------- -------------------- ------------------ ---------- --------------
           SAL       COMM     DEPTNO
    ---------- ---------- ----------
          7934 MILLER               CLERK                    7782 23-1月 -82
          1300                    10
    
    
    已选择10行。
    SQL> ed
    已写入 file afiedt.buf
    
      1* select * from emp where comm is  not null
    SQL>
    SQL> /
    
         EMPNO ENAME                JOB                       MGR HIREDATE
    ---------- -------------------- ------------------ ---------- --------------
           SAL       COMM     DEPTNO
    ---------- ---------- ----------
          7499 ALLEN                SALESMAN                 7698 20-2月 -81
          1600        300         30
    
          7521 WARD                 SALESMAN                 7698 22-2月 -81
          1250        500         30
    
          7654 MARTIN               SALESMAN                 7698 28-9月 -81
          1250       1400         30
    
    
         EMPNO ENAME                JOB                       MGR HIREDATE
    ---------- -------------------- ------------------ ---------- --------------
           SAL       COMM     DEPTNO
    ---------- ---------- ----------
          7844 TURNER               SALESMAN                 7698 08-9月 -81
          1500          0         30

    16、去掉重复的记录:

    SQL> select deptno from emp;
    
        DEPTNO
    ----------
            20
            30
            30
            20
            30
            30
            10
            20
            10
            30
            20
    
        DEPTNO
    ----------
            30
            20
            10
    
    已选择14行。
    
    SQL> select DISTINCT deptno from emp;
    
        DEPTNO
    ----------
            30
            20
            10

    注意:

    SQL> select job from emp;
    
    JOB
    ------------------
    CLERK
    SALESMAN
    SALESMAN
    MANAGER
    SALESMAN
    MANAGER
    MANAGER
    ANALYST
    PRESIDENT
    SALESMAN
    CLERK
    
    JOB
    ------------------
    CLERK
    ANALYST
    CLERK
    
    已选择14行。
    
    SQL>  select DISTINCT job from emp;
    
    JOB
    ------------------
    CLERK
    SALESMAN
    PRESIDENT
    MANAGER
    ANALYST
    
    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
    
    已选择9行。

    17、连接concat:

    SQL> select concat('Hello',' World') from emp;
    
    CONCAT('HELLO','WORLD'
    ----------------------
    Hello World
    Hello World
    Hello World
    Hello World
    Hello World
    Hello World
    Hello World
    Hello World
    Hello World
    Hello World
    Hello World
    
    CONCAT('HELLO','WORLD'
    ----------------------
    Hello World
    Hello World
    Hello World
    
    已选择14行。

    这里有一个新概念dual 伪表

    SQL> select concat('Hello',' World') from dual;
    
    CONCAT('HELLO','WORLD'
    ----------------------
    Hello World

    18、运算符“+ - * /” 与数学符号一样进行使用

     例如:

    SQL> select  5-2 from dual;
    
           5-2
    ----------
             3
    SQL> select 7+8 from dual;
    
           7+8
    ----------
            15
    SQL> select 7*8 from dual;
    
           7*8
    ----------
            56
    SQL> select 8/2 from dual;
    
           8/2
    ----------
             4

    19、连接符 || :

    SQL>  select 'Hello'||'  World' from dual;
    
    'HELLO'||'WORLD'
    ------------------------
    Hello  World
    SQL>  select ename||'的薪水是'||sal  一列(别名)
      2   from emp;
    
    一列
    --------------------------------------------------------------------------------
    SMITH的薪水是800
    ALLEN的薪水是1600
    WARD的薪水是1250
    JONES的薪水是2975
    MARTIN的薪水是1250
    BLAKE的薪水是2850
    CLARK的薪水是2450
    SCOTT的薪水是3000
    KING的薪水是5000
    TURNER的薪水是1500
    ADAMS的薪水是1100
    
    一列
    --------------------------------------------------------------------------------
    JAMES的薪水是950
    FORD的薪水是3000
    MILLER的薪水是1300
    
    已选择14行。

    20、创建保存文件:

    SQL> save c:a.sql
    已创建 file c:a.sql
    SQL> @c:a.sql
    
         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                                     
          7521 WARD     SALESMAN        7698 22-2月 -81      1250        500         30                                     
          7566 JONES    MANAGER         7839 02-4月 -81      2975                    20                                     
          7654 MARTIN   SALESMAN        7698 28-9月 -81      1250       1400         30                                     
          7698 BLAKE    MANAGER         7839 01-5月 -81      2850                    30                                     
          7782 CLARK    MANAGER         7839 09-6月 -81      2450                    10                                     
          7788 SCOTT    ANALYST         7566 13-7月 -87      3000                    20                                     
          7839 KING     PRESIDENT            17-11月-81      5000                    10                                     
          7844 TURNER   SALESMAN        7698 08-9月 -81      1500          0         30                                     
          7876 ADAMS    CLERK           7788 13-7月 -87      1100                    20                                     
    
         EMPNO ENAME    JOB              MGR HIREDATE         SAL       COMM     DEPTNO                                     
    ---------- -------- --------- ---------- -------------- ----- ---------- ----------                                     
          7900 JAMES    CLERK           7698 03-12月-81       950                    30                                     
          7902 FORD     ANALYST         7566 03-12月-81      3000                    20                                     
          7934 MILLER   CLERK           7782 23-1月 -82      1300                    10                                     
    
    已选择14行。

  • 相关阅读:
    视差插件parallarx
    经典幻灯片插件Swiper
    经典全屏滚动插件fullPage.js
    Dialog插件artDialog
    html5 canvas 做的一个时钟效果
    CSS3 Transitions, Transforms和Animation使用简介与应用展示
    微软官方下载地址
    Windows 7 下配置IIS,并且局域网内可访问(转载)
    C# 使用HttpWebRequest 实现文件的上传
    小图标网站
  • 原文地址:https://www.cnblogs.com/scw123/p/9591515.html
Copyright © 2011-2022 走看看