千家信息网

从数据表中检索信息

发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,本章内容包括:使用SELECT语句从一个或多个数据库表中检索信息使用算术表达式进行计算使用WHERE子句对行进行过滤对从表中检索到的行进行排序一、单表查询数据SELECT语句用于从数据库表中检索信息。
千家信息网最后更新 2025年11月14日从数据表中检索信息

本章内容包括:

  • 使用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_SOAPAAGlTlAAOAAJEhUAAB                                                                        2         6 SC_SOAPAAGlTlAAOAAJEhUAAC                                                                        3         9 88AAGlTlAAOAAJEhUAAD                                                                        4        22 12AAGlTlAAOAAJEhUAAE                                                                        5        23 52AAGlTlAAOAAJEhUAAF                                                                        6        24 82AAGlTlAAOAAJEhUAAG                                                                        7        25 94AAGlTlAAOAAJEhUAAH                                                                        8        29 21AAGlTlAAOAAJEhUAAI                                                                        9        30 REPLACE_NOCHECK_SECROSCODEAAGlTlAAOAAJEhVAAA                                                                       10        10 89AAGlTlAAOAAJEhVAAB                                                                       11        13 RECORD_MONITOR_LOGAAGlTlAAOAAJEhVAAC                                                                       12        14 92AAGlTlAAOAAJEhVAAD                                                                       13        15 DEFAULT_URL_FALGAAGlTlAAOAAJEhVAAE                                                                       14        32 98AAGlTlAAOAAJEhVAAF                                                                       15        37 CHECK_DEFAULT_SECRESCODE_DESCAAGlTlAAOAAJEhVAAG                                                                       16        38 NOT_FAULT_BARRIER_ENABLEAAGlTlAAOAAJEhVAAH                                                                       17        39 NO_FAULT_BARRIER_CRONAAGlTlAAOAAJEhVAAI                                                                       18        40 GROUP_SPECIAL_MSISDNAAGlTlAAOAAJEhVAAJ                                                                       19        41 GROUP_SPECIAL_BIPCODE_ACTIVECODE19 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/13SQL> 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)返回连接到同一张表中的行












0