zoukankan      html  css  js  c++  java
  • 【SQL】SELECT 语句

    1.1 SELECT基本语法:

    Select * |{[distinct]colum|expression [alias],…} from table;

    1.2 查询当前用户所有在用的表及视图:

    HR@ORA11GR2>select * from tab;
    
    TNAME                          TABTYPE  CLUSTERID
    ------------------------------ ------- ----------
    BIN$QVpuz+vXGO3gUwEAAH/YAA==$0 TABLE
    BIN$QX3Co/ONIBTgUwEAAH9Xiw==$0 TABLE
    BIN$QXf2P63XEXzgUwEAAH8s7A==$0 TABLE
    BIN$QXf2P63YEXzgUwEAAH8s7A==$0 TABLE
    BIN$QXf2P63aEXzgUwEAAH8s7A==$0 TABLE

    1.3 查看表的结构定义

    HR@ORA11GR2>desc employees;
     Name                                                  Null?    Type
     ----------------------------------------------------- -------- ------------------------------------
     EMPLOYEE_ID                                           NOT NULL NUMBER(6)
     FIRST_NAME                                                     VARCHAR2(20)
     LAST_NAME                                             NOT NULL VARCHAR2(25)
     EMAIL                                                 NOT NULL VARCHAR2(25)
     PHONE_NUMBER                                                   VARCHAR2(20)
     HIRE_DATE                                             NOT NULL DATE
     JOB_ID                                                NOT NULL VARCHAR2(10)
     SALARY                                                         NUMBER(8,2)
     COMMISSION_PCT                                                 NUMBER(2,2)
     MANAGER_ID                                                     NUMBER(6)
     DEPARTMENT_ID                                                  NUMBER(4)

    1.4 查看表中所有数据

    HR@ORA11GR2>select * from departments;
    
    DEPARTMENT_ID DEPARTMENT_NAME                MANAGER_ID LOCATION_ID
    ------------- ------------------------------ ---------- -----------
               10 Administration                        200        1700
               20 Marketing                             201        1800
               30 Purchasing                            114        1700
               40 Human Resources                       203        2400
               50 Shipping                              121        1500
               60 IT                                    103        1400   

    1.5 查看表中指定列的数据

    HR@ORA11GR2>select first_name,last_name,employee_id from employees;
    
    FIRST_NAME           LAST_NAME                 EMPLOYEE_ID
    -------------------- ------------------------- -----------
    Steven               King                              100
    Neena                Kochhar                           101
    Lex                  De Haan                           102
    Alexander            Hunold                            103
    Bruce                Ernst                             104
    David                Austin                            105

    1.6 显示某一列的唯一值

    HR@ORA11GR2>select distinct first_name from employees;
    
    FIRST_NAME
    --------------------
    Ellen
    Mozhe
    Hermann
    Alberto
    Britney

    1.7sql语句中的加、减、乘、除运算
    1)数值型字段的加、减、乘、除运算

    HR@ORA11GR2>select first_name,salary,salary+1000,salary-1000,salary*2,salary/2 from employees where first_name='Sarath';
    
    FIRST_NAME       SALARY SALARY+1000 SALARY-1000   SALARY*2   SALARY/2
    ------------ ---------- ----------- ----------- ---------- ----------
    Sarath             7000        8000        6000      14000       3500

    2)日期型字段进行加减(日期型字段不能乘除)

    HR@ORA11GR2>select hire_date,hire_date-1,hire_date+1 from employees where first_name='Sarath';
    
    HIRE_DATE           HIRE_DATE-1         HIRE_DATE+1
    ------------------- ------------------- -------------------
    2006-11-03 00:00:00 2006-11-02 00:00:00 2006-11-04 00:00:00

    1.8null的检索
    注:null值无法用=或<>来进行判断,只允许用is null和is not null来进行判断

    HR@ORA11GR2>select count(*) from employees where commission_pct is null;
    
      COUNT(*)
    ----------
            72
    
    HR@ORA11GR2>select count(*) from employees where commission_pct is not null;
    
      COUNT(*)
    ----------
            35

    1.9 NULL的计算
    注:NULL值与任何值四则运算后,其结果均为NULL。

    HR@ORA11GR2>select last_name,commission_pct,commission_pct+200,commission_pct-200,commission_pct*2 from employees;
    
    LAST_NAME                 COMMISSION_PCT COMMISSION_PCT+200 COMMISSION_PCT-200 COMMISSION_PCT*2
    ------------------------- -------------- ------------------ ------------------ ----------------
    OConnell
    Grant
    Whalen
    Hartstein
    Russell                               .4              200.4             -199.6               .8
    
    LAST_NAME                 COMMISSION_PCT COMMISSION_PCT+200 COMMISSION_PCT-200 COMMISSION_PCT*2
    ------------------------- -------------- ------------------ ------------------ ----------------
    Partners                              .3              200.3             -199.7               .6
    Errazuriz                             .3              200.3             -199.7               .6
    Cambrault                             .3              200.3             -199.7               .6
    Zlotkey                               .2              200.2             -199.8               .4
    Tucker                                .3              200.3             -199.7               .6

    1.10 SQL连接符与单引号的使用<可用来编写批量脚本>

    HR@ORA11GR2>select 'select * from '||tname||';' from tab;
    
    'SELECT*FROM'||TNAME||';'
    ---------------------------------------------
    select * from BIN$QVpuz+vXGO3gUwEAAH/YAA==$0;
    select * from BIN$QX3Co/ONIBTgUwEAAH9Xiw==$0;
    select * from BIN$QXf2P63XEXzgUwEAAH8s7A==$0;
    select * from BIN$QXf2P63YEXzgUwEAAH8s7A==$0;
    select * from BIN$QXf2P63aEXzgUwEAAH8s7A==$0;
    select * from BIN$QXf2P63bEXzgUwEAAH8s7A==$0;
    select * from BIN$QXf2P63dEXzgUwEAAH8s7A==$0;
    select * from BIN$QXs3u7LlHOfgUwEAAH94zw==$0;
    select * from COUNTRIES;
    select * from COURSE;
    select * from DEPARTMENTS;

    1.11 Aslias别名
    在SELECT选取字段后可接 as 或者空格,来替代字段别名,如果还有空格、特殊字符以及大小写需要用双引号

    HR@ORA11GR2>select 'xiaoming' as "Name",1 id from dual;
    
    Name             ID
    -------- ----------
    xiaoming          1

    1.12 distinct 删除重复值

    HR@ORA11GR2>select distinct manager_id from employees;
    
    MANAGER_ID
    ----------
           100
    
           123
           120
           121
           147
           205
           108
           148
           149
           201
    
    MANAGER_ID
    ----------
           102
           101
           114
           124
           145
           146
           103
           122
    
    HR@ORA11GR2>select distinct manager_id,department_id from employees;
    
    MANAGER_ID DEPARTMENT_ID
    ---------- -------------
           100            30
           147            80
                          90
           108           100
           149
           101            40
           100            90
           102            60
           103            60
           114            30
           100            50
  • 相关阅读:
    hdu 1028 Ignatius and the Princess III (n的划分)
    CodeForces
    poj 3254 Corn Fields (状压DP入门)
    HYSBZ 1040 骑士 (基环外向树DP)
    PAT 1071 Speech Patterns (25)
    PAT 1077 Kuchiguse (20)
    PAT 1043 Is It a Binary Search Tree (25)
    PAT 1053 Path of Equal Weight (30)
    c++ 常用标准库
    常见数学问题
  • 原文地址:https://www.cnblogs.com/NextAction/p/7366706.html
Copyright © 2011-2022 走看看