- 浏览: 796787 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (480)
- Spring (12)
- Hibernate (8)
- Struts2 (4)
- Java 基础-JDK-类-接口-URI-专题研究 (27)
- 线程、线程池、多线程高并发高可用、Socket通信 (15)
- Oracle数据库 (20)
- 一般-前端js-html-其它 (25)
- JYSK-互联网金融、金融科技、支付、公司、新闻等等 (8)
- Ajax-jQuery开源框架 (7)
- Json-轻量级的数据交换格式 (14)
- JavaScript (15)
- Jsp、Servlet、Servlet+JSP+JavaBean开发模式(MVC) (18)
- Html-JavaScript-前端-调用接口 (12)
- Sql Server 2005 (6)
- 正则表达式 (2)
- Java tools (18)
- 加签与验签、加密与解密 (3)
- Ajax技术核心-xmlHttpRequest(简称XHR) (6)
- xml-数据交换格式 (3)
- 信息采集 (1)
- Http - Https - HttpClient - httpCore-SSL-TLS (10)
- HtmlParser (2)
- 标签库 (1)
- SMS (2)
- jxl-导入导出 (4)
- poi-导入导出 (2)
- 定时器Timer+Quartz (6)
- 工作流引擎JBPM3.2.3 (4)
- 工作流引擎JBPM4 (0)
- 数据源-JNDI (0)
- tomcat、weblogic等应用服务器 (6)
- 工作流引擎jbpm5 (1)
- 搜索引擎Lucene (1)
- ant (1)
- 大数据-HBase (2)
- bigtable (0)
- 数据库设计 (4)
- jquery tab (0)
- mybatis (5)
- jquery ui 1.10.3 (5)
- Jboss7 (1)
- 规则引擎drools (0)
- 工作流引擎Activiti5 (0)
- 数据库-用户自定义函数 (0)
- 数据库-存储过程 (2)
- 数据库-视图 (0)
- 数据库-触发器 (0)
- 数据库-sql (2)
- highcharts-图表工具 (1)
- sql server 2008 (6)
- 诗词-工作室 (2)
- 数据割接 (1)
- GIS-地理信息系统 (2)
- RS-遥感技术 (1)
- GPS-全球定位系统 (1)
- java整合flex_RIA开发 (3)
- C#编程语言 (5)
- webservice_axis2_cxf_soap_wsdl (2)
- sql语句 (3)
- Flex_WebService_GIS (25)
- PHP编程语言 (0)
- ExtJS4.2 (1)
- Spring mvc (5)
- EasyUI1.4.2 (16)
- 日期时间工具类 (4)
- 随机数 (1)
- Arcgis api for js (0)
- Mysql数据库 (9)
- 移动互联网 java html5/flash socket netty (0)
- API接口 (1)
- AndroidStudio (0)
- Git (2)
- Maven (5)
- IDEA (0)
- 大数据-Hadoop (2)
- JPA (0)
- Spring boot (4)
- JSF (0)
- nginx_lua_module_redis (2)
- Activiti (1)
- bootstrap (1)
- AngularJS (10)
- 数据库-索引 (1)
- Linux及其连接工具SSH (4)
- java日志管理 (2)
- islider滑动控件 (1)
- jquery (1)
- 异常处理Exception (1)
- 秒杀与类秒杀系统 (1)
- 连接数据库、数据库连接池 (4)
- 数据库-临时表 (1)
- 软件设计模式-单例、多例、代理、工厂、观察者 (3)
- 集合框架 (5)
- 人工智能--Artificial intelligence、神经网络算法、机器学习 (1)
- 分布式应用 (1)
- SOA服务-Dubbo框架-Thrift框架 (2)
- Zookeeper分布式服务框架 (2)
- intellij idea (1)
- python编程语言 (0)
- 消息队列_MQ (0)
- 消息队列_RabbitMQ (2)
- 消息队列_ActiveMQ (1)
- 消息队列_Kafka (2)
- 缓存_Redis (4)
- 缓存_Memcache (0)
- 缓存_Ehcache (0)
- ivy-ivyde (1)
- google-protocol buffers (1)
- 正向代理-正向代理服务器 (1)
- 反向代理-反向代理服务器 (1)
- JVM内存模型 (0)
- Thunder框架 (1)
- NIO-非阻塞式IO (0)
- 软件测试、性能测试 (1)
- 序列化、Serializable接口、Externalizable接口 (3)
- 线程池-ExecutorService-ThreadPoolExecutor (1)
- web.xml (1)
- java开发-java工具-实用工具网站 (6)
- 医疗 (1)
- Filter-过滤器 (2)
- Unicode码-双字节字符编码 (1)
- OpenResty (1)
- 计算机网络 (1)
- eclipse_myeclipse_intellij idea (3)
- Enum (1)
- 大数据--Big Data (1)
- 云计算--Cloud computing (1)
- Elastic-Job (1)
- Redis (2)
- 文件流-IO操作 (6)
- 计算机基础知识 (1)
- Hessian-二进制RPC协议 (1)
- String类 (3)
- BigDecimal类 (1)
- java重要接口 (1)
- ReactJS (1)
- 跨域问题 (0)
- Map (1)
- 注解 (1)
- ASCII码-单字节字符编码 (1)
- 微服务、微服务架构 (2)
- RPC协议、RPC服务、RPC框架 (0)
- java反射 (1)
- java项目之classpath (1)
- 经典算法-树 (1)
- listener-监听器 (1)
- Interceptor-拦截器 (1)
- pojo javabean (2)
- 计算机科学与技术-进阶 (1)
- 代码规范与文档编写 (1)
- UML-统一建模语言 (1)
- 对接微信、支付宝 (3)
- 压力测试 (1)
- 办公软件-Excel (1)
- 办公软件-PPT (0)
- UTF8、GBK编码 (1)
- 微服务架构:Spring Cloud架构-Dubbo架构 (6)
- Nginx (1)
- 点滴业务 (1)
- form表单-json数据-转换与接口调用 (1)
- Junit单元测试 (1)
- 大数据-Spark (1)
- 大数据-Storm (1)
- 数据库事务-Spring事务 (0)
- elasticsearch (1)
- windows (1)
最新评论
一、引用参考
-- Oracle数据库中 to_date()、to_char()函数的用法
https://blog.csdn.net/idomyway/article/details/78785112
--oracle获得当前时间,精确到毫秒并指定精确位数
https://www.cnblogs.com/mq0036/p/6813147.html
--解决乱码:oracle中的timestamp字段的值乱码
https://www.cnblogs.com/lowerCaseK/p/timeStamp_coding.html
-- ORACLE中Like与Instr模糊查询性能大比拼(转载)
http://blog.csdn.net/bamboopot/article/details/8127033
--Oracle 增删列,为列增加注释,修改主键等
https://www.cnblogs.com/furenjun/archive/2009/03/13/oraclecolumn.html
--oracle alter table详解
http://blog.csdn.net/chen_linbo/article/details/6323727
--ORACLE中通过SQL语句(alter table)来增加、删除、修改字段
http://blog.csdn.net/piaoxuan1987/article/details/12277407
--Oracle Purge和drop的区别
https://zhidao.baidu.com/question/1639310045220424220.html
--oracle SEQUENCE 修改,删除,创建
http://blog.csdn.net/xiechunmei13/article/details/5656845
--跨库查询
https://www.cnblogs.com/liuqiyun/p/6589623.html
--check约束
https://blog.csdn.net/jssg_tzw/article/details/40985081
二、工作SQL
ps:查询第11到20条记录
--分组统计
--函数
https://www.cnblogs.com/lxl57610/p/7442130.html
https://www.cnblogs.com/chuangege/p/6258658.html
https://www.cnblogs.com/ZwyBky/p/7159191.html
//wm_concat() 多行单字段拼接,为空则跳过
select WM_CONCAT(a.activity_name) from pcs.t_activity_info a where rownum<=20
//extract()
https://blog.csdn.net/github_37830343/article/details/80333174
--查询锁表情况、解锁
https://www.cnblogs.com/XQiu/p/5212787.html
https://zhidao.baidu.com/question/1924996799512691147.html
http://blog.csdn.net/zengmingen/article/details/51007745
三、修改表结构
四、SQL性能优化
------------------------------------------------------------
模糊查询instr 和 like 对比
-------------------------------------------------------------
--instr(str, targetStr)函数
instr(title,'手册')>0 相当于 title like '%手册%'
instr(title,'手册')=1 相当于 title like '手册%'
instr(title,'手册')=0 相当于 title not like '%手册%'
==========================================================
另外,我在结另外一个2亿多的表,使用8个并行,使用like查询很久都不出来结果,但使用instr,4分钟即完成查找,性能是相当的好。这些小技巧用好,工作效率提高不少。通过上面的测试说明,ORACLE内建的一些函数,是经过相当程度的优化的。
instr(title,’aaa’)>0 相当于like
instr(title,’aaa’)=0 相当于not like
特殊用法:
select id, name from users where instr('101914, 104703', id) > 0;
它等价于
select id, name from users where id = 101914 or id = 104703;
--使用Oracle的[instr函数与索引配合]提高模糊查询的效率
一般来说,在Oracle数据库中,我们对tb表的name字段进行模糊查询会采用下面两种方式:
1.select * from tb where name like '%XX%';
2.select * from tb where instr(name,'XX')>0;
若是在name字段上没有加索引,两者效率差不多,基本没有区别。
为提高效率,我们在name字段上可以加上非唯一性索引:
create index idx_tb_name on tb(name);
这样,再使用
select * from tb where instr(name,'XX')>0;
这样的语句查询,效率可以提高不少,表数据量越大时两者差别越大。但也要顾及到name字段加上索引后DML语句会使索引数据重新排序的影响。
-- Oracle数据库中 to_date()、to_char()函数的用法
https://blog.csdn.net/idomyway/article/details/78785112
--oracle获得当前时间,精确到毫秒并指定精确位数
https://www.cnblogs.com/mq0036/p/6813147.html
--解决乱码:oracle中的timestamp字段的值乱码
https://www.cnblogs.com/lowerCaseK/p/timeStamp_coding.html
-- ORACLE中Like与Instr模糊查询性能大比拼(转载)
http://blog.csdn.net/bamboopot/article/details/8127033
--Oracle 增删列,为列增加注释,修改主键等
https://www.cnblogs.com/furenjun/archive/2009/03/13/oraclecolumn.html
--oracle alter table详解
http://blog.csdn.net/chen_linbo/article/details/6323727
--ORACLE中通过SQL语句(alter table)来增加、删除、修改字段
http://blog.csdn.net/piaoxuan1987/article/details/12277407
--Oracle Purge和drop的区别
https://zhidao.baidu.com/question/1639310045220424220.html
--oracle SEQUENCE 修改,删除,创建
http://blog.csdn.net/xiechunmei13/article/details/5656845
--跨库查询
https://www.cnblogs.com/liuqiyun/p/6589623.html
--check约束
https://blog.csdn.net/jssg_tzw/article/details/40985081
二、工作SQL
----------------------------- dual、时间 to_date()、to_char() ----------------------------- select t.id,t.stu_name,t.create_time,t.update_time from crm.t_stu_info t where t.create_time>to_date('2018-04-18 15:30:30', 'yyyy-MM-dd HH24:mi:ss') and t.create_time<to_date('2018-04-19', 'yyyy-MM-dd HH24:mi:ss'); // select sysdate from dual; //DATE: 2018/8/16 19:08:10 select to_char(sysdate, 'yyyy-MM-dd HH:mi:ss') from dual; //HH: 12小时制; HH24: 24小时制; select to_char(sysdate, 'YYYY-mm-dd hh24:mi:ss') from dual; // 时间格式不区分大小写 注意区分月份和分钟,月份用MM或mm,分钟用mi select to_char(sysdate, 'yyyy-MM-dd HH24:mi:ss') from dual; // 2018-08-16 19:02:57 select to_char(systimestamp, 'yyyy-MM-dd HH24:mi:ss.ff') from dual; // 2018-08-16 18:49:13.730531 select to_char(systimestamp, 'yyyy-MM-dd HH24:mi:ss.ff3') from dual; // 2018-08-16 19:03:18.815 ff的位数取值范围:[1,9] -------------------------- 基础sql -------------------------- select * from CRM.T_STUDENT_INFO; select count(1) from CRM.T_STUDENT_INFO; --176 select * from CRM.T_STUDENT_INFO order by id desc; select t.rowid, rownum,t.* from CRM.T_STUDENT_INFO t order by t.id desc; -- AAAY jnAA iAAA Cx3A Ai 18位; rownum不能用t.rownum select t.rowid,rownum,t.id,t.short_url from CRM.T_STUDENT_INFO t order by t.rowid asc; -- 【rownum本身只能用 <=的比较方式,只有转成实例才能做 >=的比较】 select *, rownum rn from demo.t_demo_info where rownum<=120; //查不出来 select id, rownum rn from demo.t_demo_info where rownum<=120; //可以查出来 select * from demo.t_demo_info where rownum>=101; //查不出来 select * from demo.t_demo_info where rownum>101; //查不出来 select t.* from ( select id, url, rownum rn from demo.t_demo_info where rownum<=120 ) t where t.rn>=101; //查询第101至第120条记录 --查询前10条记录,无序排序 select t.rowid,rownum,t.id,t.url from CRM.T_STUDENT_INFO t where rownum<11; --查询前10条记录,按id升序 select t.rowid,rownum,t.id,t.url from CRM.T_STUDENT_INFO t where rownum<11 order by t.id asc; --查询第11到第20条记录 select rownum,t.id,t.url from CRM.T_STUDENT_INFO t where rownum<21; /*写法1*/ select s.* from( select rownum rn,t.order_id from CRM.T_STUDENT_INFO t ) s where s.rn>10 and s.rn<=20; /*写法2*/ select s.* from( select rownum rn,t.order_id from CRM.T_STUDENT_INFO t where rownum<=20 ) s where s.rn>10
ps:查询第11到20条记录
--分组统计
select to_char(create_time, 'yyyy-MM-dd'), count(1) from demo.t_demo_info where 1=1 and create_time>to_date('2018-06-01', 'yyyy-MM-dd') group by to_char(create_time, 'yyyy-MM-dd') order by to_char(create_time, 'yyyy-MM-dd');
--函数
https://www.cnblogs.com/lxl57610/p/7442130.html
https://www.cnblogs.com/chuangege/p/6258658.html
https://www.cnblogs.com/ZwyBky/p/7159191.html
//wm_concat() 多行单字段拼接,为空则跳过
select WM_CONCAT(a.activity_name) from pcs.t_activity_info a where rownum<=20
//extract()
https://blog.csdn.net/github_37830343/article/details/80333174
--查询锁表情况、解锁
https://www.cnblogs.com/XQiu/p/5212787.html
https://zhidao.baidu.com/question/1924996799512691147.html
http://blog.csdn.net/zengmingen/article/details/51007745
//查看当前锁表情况 select p.spid,a.sid, a.serial#, c.object_name, b.session_id, b.oracle_username, b.os_user_name from v$process p, v$session a, v$locked_object b, all_objects c where p.addr = a.paddr and a.process = b.process and c.object_id = b.object_id; //解锁 alter system kill session 'sid , s.serial#'; --杀掉进程 sid,serial# alter system kill session'210,11562';
三、修改表结构
/* 创建表 T_STUDENT_INFO */ -- Create table create table XTSK.T_STUDENT_INFO ( ID NUMBER not null, STUDENT_ NO VARCHAR2(32) not null, CRT_TIME DATE not null, UPT_TIME DATE not null ) tablespace USERS pctfree 10 initrans 1 maxtrans 255 storage ( initial 64 next 8 minextents 1 maxextents unlimited ); -- Add comments to the table comment on table XTSK.T_STUDENT_INFO is '学生学号表'; -- Add comments to the columns comment on column XTSK.T_STUDENT_INFO.ID is '主键id'; comment on column XTSK.T_STUDENT_INFO.STUDENT_ NO is '用户STUDENT_ NO'; comment on column XTSK.T_STUDENT_INFO.CRT_TIME is '创建时间'; comment on column XTSK.T_STUDENT_INFO.UPT_TIME is '修改时间'; -- Create/Recreate primary, unique and foreign key constraints alter table XTSK.T_STUDENT_INFO add constraint PK_T_STUDENT_INFO primary key (ID) using index tablespace USERS pctfree 10 initrans 2 maxtrans 255; /* 创建序列SEQ_STUDENT_INFO */ -- Create sequence create sequence XTSK.SEQ_STUDENT_INFO minvalue 1 maxvalue 9999999999999999999999999999 start with 1 increment by 1 cache 20; ---------------------------------------------------------------------------- --回滚 ---------------------------------------------------------------------------- /* 删除表 T_STUDENT_INFO */ drop table XTSK.T_STUDENT_INFO cascade constraints; /* 删除序列 SEQ_STUDENT_INFO */ DROP SEQUENCE XTSK.SEQ_STUDENT_INFO;
四、SQL性能优化
------------------------------------------------------------
模糊查询instr 和 like 对比
-------------------------------------------------------------
--instr(str, targetStr)函数
instr(title,'手册')>0 相当于 title like '%手册%'
instr(title,'手册')=1 相当于 title like '手册%'
instr(title,'手册')=0 相当于 title not like '%手册%'
==========================================================
另外,我在结另外一个2亿多的表,使用8个并行,使用like查询很久都不出来结果,但使用instr,4分钟即完成查找,性能是相当的好。这些小技巧用好,工作效率提高不少。通过上面的测试说明,ORACLE内建的一些函数,是经过相当程度的优化的。
instr(title,’aaa’)>0 相当于like
instr(title,’aaa’)=0 相当于not like
特殊用法:
select id, name from users where instr('101914, 104703', id) > 0;
它等价于
select id, name from users where id = 101914 or id = 104703;
--使用Oracle的[instr函数与索引配合]提高模糊查询的效率
一般来说,在Oracle数据库中,我们对tb表的name字段进行模糊查询会采用下面两种方式:
1.select * from tb where name like '%XX%';
2.select * from tb where instr(name,'XX')>0;
若是在name字段上没有加索引,两者效率差不多,基本没有区别。
为提高效率,我们在name字段上可以加上非唯一性索引:
create index idx_tb_name on tb(name);
这样,再使用
select * from tb where instr(name,'XX')>0;
这样的语句查询,效率可以提高不少,表数据量越大时两者差别越大。但也要顾及到name字段加上索引后DML语句会使索引数据重新排序的影响。
发表评论
-
Oracle 存储过程
2019-03-19 22:45 4181、参考博客 2、demo示例 -
Oracle 自定义函数
2019-03-18 20:09 686自定义函数 1、参考博客 2、参考demo CREATE ... -
Oracle 修改最大连接数
2019-01-29 15:59 418参考: ORA-12520错误解决方法 https://blo ... -
Oracle 修改表结构、备份表结构和数据
2018-12-12 19:07 878一、sql语句新建或修改表结构 1、增加字段 语法:al ... -
oracle安装成功后配置远程连接
2018-11-09 11:10 510Oracle安装成功后,本地 ... -
Oracle 视图
2018-11-05 14:46 372【引用参考】 --Oracle数据库视图的概念、语法及操作讲解 ... -
Oracle数据库实例导入导出dmp文件-建表空间、用户等
2018-10-07 22:40 674一、导入dmp --表空间 create tablespac ... -
Oracle 常用函数 substr instr
2015-08-28 11:57 23101、截取字符串:substr https://www.cnbl ... -
oracle数据库 各种问题及解决
2015-07-10 11:07 625解决: ORA-01034: ORACLE not avail ... -
plsql访问本机(win7 64位操作系统)数据库,报错解决
2013-12-26 16:37 5131、报错截图: 解决方法在D:\oracle\app\pr ... -
Oracle数据库--操作、理解
2013-07-16 11:18 1001引用参考 【分区表】 --对oracle分区表的理解整理 ht ... -
oracle 时间参数格式
2013-06-24 14:31 980String sql = "update TB_TO ... -
计算机管理中的Oralce11g服务
2013-03-29 09:23 824Oralce11g默认状态: 1、Orarle ORCL VS ... -
hibernate.cfg.xml配置oracle9i连接
2013-03-28 14:31 1431<?xml version="1.0" ... -
java链接oracle数据库
2013-03-28 14:09 877Connection conn = null; Class ... -
配置PL/SQL Developer 8
2013-03-06 09:55 1017配置PL/SQL Developer 8.0.4 引自:h ... -
Win 7 下安装Oracle
2013-03-04 16:43 806-- Win 7 下一般是安装Vista版本,注意你你是否 ... -
数据库比较-Oracle Mysql SqlServer
2012-08-15 18:37 727引用参考 --Oracle与Mysql差异:数据类型 htt ... -
tnsnames.ora配置文件
2012-07-05 08:58 875# tnsnames.ora Network Config ...
相关推荐
oracle 基础sql
oracle sql function
本资源“Oracle Sql基础(beginning oracle sql中文版)”旨在为初学者提供一个全面的Oracle SQL学习指南。让我们深入探讨Oracle SQL的基础知识。 一、SQL简介 SQL(结构化查询语言)是用于管理关系数据库的标准...
详细介绍了oracle的建表语句 增删改查 内外连接查询 授权用户 建sequence oracle常用内置函数 ddl语句 事务控制语句 tcl 等
在“Oracle-SQL.rar”这个压缩包中,包含了一份名为“Oracle SQL.ppt”的文件,这可能是一个PowerPoint演示文稿,用于详细讲解Oracle数据库的基础知识和SQL语言的使用。下面,我们将深入探讨一些Oracle SQL的基础...
**Oracle数据库SQL基础** 在IT领域,Oracle数据库是全球广泛使用的数据库管理系统之一,而SQL(结构化查询语言)则是与数据库交互的基础工具。本篇将深入讲解Oracle SQL的基础知识,包括基本的SQL语句、单行函数、...
第三章 ORACLE SQL 单行函数 第四章 从多表中查询数据 第五章 用组函数合计数据 第六章 子查询 第七章 操纵数据 第八章 创建和管理表 第九章 内置约束 第十章 创建视图 第十一章 其他数据库对象 第十二章 控制用户...
oracle 中的SQL语言基础 oracle 中的SQL语言基础
数据库开发 Oracle数据库 SQL开发教程 第01章 Oracle数据库基础(共60页).pdf 数据库开发 Oracle数据库 SQL开发教程 第02章 编写简单的查询语句(共34页).pdf 数据库开发 Oracle数据库 SQL开发教程 第03章 限制...
oracle、sql语句基础
通过"Oracle&Sql基础(ppt)"的学习,初学者将能够理解和掌握Oracle数据库的基本操作以及SQL语言的使用,为后续的数据库管理和开发工作打下坚实的基础。而文件"1.ppt"和"2.ppt"可能是这个主题的两个部分,分别深入讲解...
本书全面涵盖了从基础到高级的Oracle SQL知识,旨在帮助读者熟练掌握在Oracle环境中进行数据查询、操作、分析以及程序开发的各种技巧。 在Oracle数据库系统中,SQL(Structured Query Language)是用于管理关系...
Oracle_SQL_实用基础教程
ORACLE 的解析器按照从右到左的顺序处理 FROM 子句中的表名,因此 FROM 子句中写在最后的表(基础表 driving table)将被最先处理。在 FROM 子句中,选择最有效率的表名顺序非常重要。 四、其他优化技术 除了以上...
PL/SQL(Procedure Language/Structuer Query Language)是Oracle对标准SQL规范的扩展,全面支持SQL的数据操作、事务控制等。PL/SQL完全支持SQL数据类型,减少了在应用程序和数据库之间转换数据的操作。
Oracle SQL,全称为结构化查询语言在Oracle数据库环境中的应用,是数据库管理员和开发人员用于检索、更新和管理Oracle数据库的核心工具。Oracle SQL是SQL标准的扩展,它提供了许多特有的功能,以满足企业级数据库...
首先,"oracle常用经典sql查询.doc"很可能包含了各种常见的SQL查询语句,这些语句对于理解和掌握Oracle SQL的基础至关重要。这可能包括了如何选择(SELECT)、插入(INSERT)、更新(UPDATE)和删除(DELETE)数据,...
Oracle SQL是数据库管理和数据分析的重要工具,尤其在处理Oracle数据库时不可或缺。本文提供的经典练习题旨在帮助初学者熟悉SQL语句的编写,特别是针对Oracle数据库特有的功能。以下将详细讲解涉及的知识点。 1. **...
书中不仅包含了基础的SQL语法,还涵盖了高级特性和最佳实践,是Oracle DBA、开发人员和数据分析师的重要参考资料。 1. **SQL基础知识**:本书首先介绍了SQL的基本概念,包括数据定义(DDL)、数据操纵(DML)和数据...
一、基础SQL语法 Oracle SQL遵循标准的SQL语法,包括SELECT、INSERT、UPDATE、DELETE四大语句。用于查询数据的基本结构是SELECT字段列表FROM表名WHERE条件,这允许我们从一个或多个表中提取满足特定条件的数据。...