许多人愁不会Oracle 10g的高级查询,其实也是比较简单的。在查询数据时,为了获取完整的信息就要将多个表连接起来,这也是关系数据库的一个重要特性---表之间存在的关系。这种关系可以将表的数据联系起来。多表查询就是根据这种关系,实现从多个表中获取数据还原信息。下面这个图就是我将要操作的表结构。
十载的汤阴网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网整合营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整汤阴建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“汤阴网站设计”,“汤阴网站推广”以来,每个客户项目都认真落实执行。
工具/材料
电脑
Oracle 10g
01
基本连接查询
在简单查询中我们一般只使用了from字句的一个表,然而在关系数据库中,表与表之间往往是存在关系的,这就是要求从多个表中检索数据,以输出更有意义的结果。最简单的连接方式就是在select语句中,通过from子句使用多个表,并用逗号将不同的基本表隔开。下面语句将商品信息表和供应商信息表连接起来,查询其中的商品名称,产地,供应商名称。
02
但此时结果显示该查询语句共显示了200行记录,这显然是错误的。因为仅仅通过select和from子句连接那么查询结果将是一个通过笛卡儿积生成的表,包含大量无意义的信息。而where语句可以有效避免笛卡儿积的出现。只有当两个表具有相同匹配的列时才返回结果集。例如下面语句通过在where子句中使用连接条件,实现了每件商品名称,产地,供应商名称信息。
03
但也要注意一个问题如果想要查询“供应商编号”应该怎么处理,因为两个表中都有“供应商编号”,所以应该查询的时候限定一下,说明究竟是哪一个表中的。
04
join连接查询
join用于连接两个不同的表,on用于给出这两个表之间的连接条件。如果进一步限制查询范围,可以在后面添加where语句,下面示例使用从商品信息表和供应商信息表查询单价大于1200元的商品信息。
05
并且join连接也可以实现两个以上的表查询,写语句的时候一个join对应一个on,看下面的例子。
06
自然连接查询
其实自然连接查询(natural join)就是更加方便的join连接查询,自然连接不必指定任何同等连接条件,系统将自动判断出具有相同名称的列然后形成匹配,但注意自然连接是根据两个表中同名的列而进行连接的,当列不同名时,自然连接将失去意义。
07
集合操作查询
集合操作就是将两个或多个SQL查询结合构成符合查询,集合操作符有union(并集)、intersect(交集)、minus(差集),现在以union为例,union查询必须从每个表中读取相同的列。
08
子查询
子查询和连接查询一样提供了使用单个查询访问多个表中的数据的方法,使用in关键字,意思是在in后面的集合中查询我们需要的,即in后面是限定条件。
特别提示
注意在Oracle 10g中的标点符号是英文状态下的
一般一个oracle只有一个数据库,你要查看可以这样,我的电脑——右键管理
---服务和应用程序----打开服务--找到oracle服务oracleServer后面加的就是数据库名。
如果是oracle9i版本,可以考虑如下两步实现:(10g直接执行第二步就可以了)统计一个用户下所有表的行数:1.execdbms_stats.gather_schema_stats(owner='用户名');2.selectsum(num_rows)fromuser_tables;统计全库所有表的行数:1.execdbms_stats.gather_database_stats(ESTIMATE_PERCENT='30');2.selectsum(num_rows)fromdba_tables;生产环境中需谨慎考虑收集新的统计信息后对应用产生的影响。
打开命令行:输入CMD,回车,输入sqlplus,回车。
这样可以看到本地安装的ORACLE的版本。
要看某个映射的ORACLE版本,
输入:sqlplus sys/sys@orcl as sysdba,回车,
则在显示的内容后边有一个连接到:之后的内容是映射的ORACLE版本信息;
看你怎么登陆的,是用PLSQL客户端还是命令登录。
命令登录:
sqlplus /nolog
conn username/password@数据库名 as sysdba(这里用户名为sys、system,) 或
conn 用户名/密码@数据库名 (这里用户为新建的普通用户并且已有权限,)
按Enter后提示"已连接"就连接成功了,就可以像sql语句一样增删改查数据了
查询语句:select * from 表
PLSQL客户端登录:PLSQL Developer
登录的时候空密码的话为"as" ,sys用户需最后一行选择sysdba,普通用户选择normal
进去之后下拉中间AllObject框,选择MyObject,左边菜单点击tables ,表就出来了,
点击表右键就可以query data
或者点击上面菜单filenewcommand window
这里面就可以像cmd命令一样拼sql语句