从数据表中检索信息

本章内容包括:

成都创新互联公司总部坐落于成都市区,致力网站建设服务有做网站、网站制作、网络营销策划、网页设计、网站维护、公众号搭建、小程序制作、软件开发等为企业提供一整套的信息化建设解决方案。创造真正意义上的网站建设,为互联网品牌在互动行销领域创造价值而不懈努力!

  • 使用SELECT语句从一个或多个数据库表中检索信息

  • 使用算术表达式进行计算

  • 使用WHERE子句对行进行过滤

  • 对从表中检索到的行进行排序

一、单表查询数据

  1. SELECT语句用于从数据库表中检索信息。

    select * from customers;    //选择一个表中所有的列

    select c.name from cutomers c;   //选择表中的某一列

  2. 使用WHERE子句过滤行

    在查询中可以使用WHERE子句来指定想要检索的行。

    select * from customers where customer_id = 2;

  3. 理解行标识符

    oracle数据库中的每一行都有一个唯一的行标识符ROWID。Oracle数据库内部使用行标识符来存储行的物理位置。rowid通常被称为伪列。不会出现在表结构中

  4. 理解行号

    oracle的另一个伪列是ROWNUM,它返回每一行在结果集中的行号

  5. SQL> select rowid,rownum,f.serial_no,f.code_id from fault_barrier_base_code f where rownum < 20;
    ROWID                                                                                ROWNUM SERIAL_NO CODE_ID
    -------------------------------------------------------------------------------- ---------- --------- ----------------------------------------
    AAGlTlAAOAAJEhUAAA                                                                        1         5 YJ_SOAP
    AAGlTlAAOAAJEhUAAB                                                                        2         6 SC_SOAP
    AAGlTlAAOAAJEhUAAC                                                                        3         9 88
    AAGlTlAAOAAJEhUAAD                                                                        4        22 12
    AAGlTlAAOAAJEhUAAE                                                                        5        23 52
    AAGlTlAAOAAJEhUAAF                                                                        6        24 82
    AAGlTlAAOAAJEhUAAG                                                                        7        25 94
    AAGlTlAAOAAJEhUAAH                                                                        8        29 21
    AAGlTlAAOAAJEhUAAI                                                                        9        30 REPLACE_NOCHECK_SECROSCODE
    AAGlTlAAOAAJEhVAAA                                                                       10        10 89
    AAGlTlAAOAAJEhVAAB                                                                       11        13 RECORD_MONITOR_LOG
    AAGlTlAAOAAJEhVAAC                                                                       12        14 92
    AAGlTlAAOAAJEhVAAD                                                                       13        15 DEFAULT_URL_FALG
    AAGlTlAAOAAJEhVAAE                                                                       14        32 98
    AAGlTlAAOAAJEhVAAF                                                                       15        37 CHECK_DEFAULT_SECRESCODE_DESC
    AAGlTlAAOAAJEhVAAG                                                                       16        38 NOT_FAULT_BARRIER_ENABLE
    AAGlTlAAOAAJEhVAAH                                                                       17        39 NO_FAULT_BARRIER_CRON
    AAGlTlAAOAAJEhVAAI                                                                       18        40 GROUP_SPECIAL_MSISDN
    AAGlTlAAOAAJEhVAAJ                                                                       19        41 GROUP_SPECIAL_BIPCODE_ACTIVECODE
    19 rows selected
  6.  执行算术运算

    Oracle在SQL语句中使用算术表达式来进行算术运算,包括+、-、*、/

    日期运算:在2016年6月6日上加上一天

  7. SQL> select to_date(sysdate) + 7  as "one week later" from dual;
    one week later
    --------------
    2016/6/13
    SQL> select to_date(sysdate) - 7  as "one week ago" from dual;
    one week ago
    ------------
    2016/5/30
  8. 算术运算中也支持表的列操作。

  9. 禁止显示重复行 关键字DISTINCT

  10. 比较值,用 =、<>或!=、<、>、<=,>=,ANY(与任何值比较),ALL

  11. 使用SQL操作符,LIKE(模糊查询),IN(范围查询),BETWEEN(范围查询),IS NULL,IS NAN(非数字),IS INFINITE

  12. 使用逻辑操作符 x AND y(当x和y都为true时,返回true),x OR y(当x和y中有一个为true,就返回true),NOT x(如果x为false,则返回true);

  13. 使用ORDER BY 子句对行进行排序

    使用ORDER BY子句可以对查询检索出来的行进行排序。ORDER BY子句必须位于FROM或WHERE子句(如果提供了WHERE子句)之后。

二、执行两个表的SELECT语句

  1. 连接可以用于连接任意多个表。连接数 = 查询中使用的表的总数 - 1

  2. select * from fault_barrier_code;
    select * from fault_barrier_sec_rspcode sec,fault_barrier_code fc
     where sec.bip_code = fc.bip_code
     and sec.act_code = fc.act_code
     and sec.plat_code = fc.plat_code;

3.  连接条件和连接类型

    根据连接中使用的操作符的不同,连接条件(join condition)可以分为两类:

  •     等连接(equijion)在连接中使用操作符。

  •     不等连接(non-equijoin)在连接中使用除等号之外的操作符如,<,>,BETWEEN

    连接有3中类型

  •     内连接(inner join)只有当连接中的列包含满足连接条件的值时才会返回一行。

  •      外连接(outer join)即使连接条件中的一列包含空值也会返回一行

  •    自连接(self join)返回连接到同一张表中的行


分享名称:从数据表中检索信息
转载来源:http://scyanting.com/article/gjccpc.html