从数据表中检索信息
admin
2023-05-02 20:04:05
0

本章内容包括:

  • 使用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)返回连接到同一张表中的行












相关内容

热门资讯

卖“毒蛋”的人,抓到了 作者 | 何国胜 编辑 | 向现“(人)抓到了,目前案件正在侦办中。”7月28日晚间,苏州禁毒部门有...
尺素金声丨实施零关税国家达63... 海关总署发布的数据显示,今年5月1日起,我国对53个非洲建交国全面实施零关税举措,目前,我国实施零关...
职业索赔盯上基层诊所,倒逼用药... 文 | 布丁基层诊所正在被职业索赔盯上。据新京报,去年夏天,一男子走进河南南阳一家诊所,要求购买三瓶...
“西瓜我全买了”就可以肆意妄为... 拿西瓜砸了人,把瓜都买了,就能一走了之吗?事实证明,这套逻辑在法治社会行不通。7月28日晚,据海峡都...
科学家在日本广岛发现新物质,系... 在美国对日本广岛进行原子弹轰炸近81年后,科学家们在广岛的沙滩上发现了一种奇异且从未被发现过的新物质...
AI失控,反噬开始 作者 | 贺一 编辑 | 阿树近期,中国开源模型在美国频繁引发热议。7月28日,月之暗面发布Kimi...
“总统千金天价离婚”,分到43... 2026年7月24日下午,首尔高等法院,一场持续近十年的司法拉锯战终于接近尾声。法庭裁定SK集团会长...
巴基斯坦,又拿下一个历史性协议 全世界都没想到,接连的中东大战,巴基斯坦正成为最大赢家。去年以色列追杀哈马斯,空袭卡塔尔首都,阿拉伯...
汇正财经贺峰的一对一指导服务怎...   对于考虑购买证券投资顾问服务的投资者来说,'一对一指导服务怎么样'是一个重要的考量维度。需要首先...
重庆失联00后网格员龚宝冬确认...   重庆失联00后网格员龚宝冬确认遇难  【重庆失联00后网格员龚宝冬确认遇难】2026年7月29日...