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
  • 相关阅读:
    MySQL的字符编码体系(一)——数据存储编码
    poj 1659 Frogs&#39; Neighborhood 度序列可图化 贪心
    POJ 1083 &amp;&amp; HDU 1050 Moving Tables (贪心)
    cocos2d-x wp8 中文显示问题
    Linux多线程编程
    how tomcat works 五 servlet容器 上
    SecureCRT 选择Courier New等其他字体.
    如何设置secureCRT的鼠标右键为弹出文本操作菜单功能
    SecureCRT中文显示乱码
    ZooKeepr日志清理
  • 原文地址:https://www.cnblogs.com/NextAction/p/7366706.html
Copyright © 2011-2022 走看看