- 浏览: 890129 次
- 性别:
- 来自: 深圳
-
文章分类
- 全部博客 (509)
- android (55)
- CSS (23)
- eclipse (25)
- Data Structes and Algorithms (53)
- J2SE (87)
- Java_面试学习_j2se (26)
- java_面试学习_非技术 (13)
- java_gui (2)
- java_设计模式 (27)
- JDBC (10)
- java_web (15)
- hibernate (5)
- Oracle (37)
- Struts2 (7)
- Word-----dos (24)
- Jbpm (3)
- java小技巧 (8)
- math (1)
- flex (12)
- WebService (4)
- 生活 (9)
- 小框架或小语言 (27)
- spring (1)
- 面试~~~软实力 (7)
- jstat的用法 (1)
- jmap (1)
- 数据链路层和传输层的流量控制区别 (1)
- shell (0)
- 财商 (1)
- javascript (0)
- js研究 (1)
- 代码收集 (0)
最新评论
-
海尔群:
http://jingyan.baidu.com/articl ...
android加密 -
完美天龙:
------------------------- ...
asm----字节码操纵 -
houniao1990:
大神,请问 string 类型 定义为 oracle的 cha ...
hibernate注解 -
JamesQian:
Line:103
f.doFilter(msg);
是否需 ...
责任链模式_过滤器模式 -
sacoole:
好评
interview--- 如何从N个数中选出最大(小)的n个数?
如果要使用多表查询的时候,最好指定别名 inner join 是默认的连接方式,可缩写为join left outter join可用left join代替。在有些数据库中,如HSqlDb, 只能使用left join而不能使用left outter join。所以用缩写更好 emp{empno,ename,job,mgr(雇员的领导的编号),hiredate,sal,comm,deptno} dept{deptno,dname,loc} salgrade{grade,losal,hisal} bonus{ename,job,sal,comm} 查询出每个雇员的姓名,工资,部门名称,工资等级(salgrade),及领导的姓名以及领导工资所在公司等级 思路:分解,查出每个雇员的姓名,工资,部门名称,工资在公司的等级 select e.ename,e.sal,d.ename,s.grade from emp e,dept d,salgrade s where e.deptno = d.deptno and e.sal between losal and hisal 分解:领导的姓名以及领导工资所在公司等级 select e.ename,e.sal,d.ename,s.grade,m.ename,m.sal,ms.grade from emp e,dept d,salgrade s,emp m,salgrade ms where e.deptno = d.deptno and e.sal between losal and hisal and e.mgr = m.empno and m.sal between ms.losal and ms.hisal; 查询雇员名称以及每一个雇员的领导(注意,最高级的雇员肯定没有领导,那么最高级的雇员的领导需要用空来填充) select e.ename,m.ename from emp e,emp m where e.mgr = m.empno(+); //这是左连接,也就是左边连过来的,如果碰到了右边没有,那么他只好连接一个空 //下面的只要了解 select * from emp,dept; //这个笛卡尔积的另一种写法是: select * from emp CROSS JOIN dept;就是把","换成了CROSS JOIN 自然连接: select a.ad_ph_telePhone,e.email_account,m.menber_name from addressandphone as a, email as e, menber as m where a.menber_Id=e.menber_Id and a.menber_Id=m.menber_Id; 也可以通过natural join 联合查询: select a.ad_ph_telePhone,e.email_account,m.menber_name from addressandphone as a natural join email as e natural join menber as m ; 如果用natural join 你写的东西会少很多,不过使用natural join 有两点是要注意: 1. natural join 的原理是根据两个表之间相同字段名的列表把两个表联合起来,同时去掉这个字段中不同值的部分,如果两个表都有一个password列,而这两个password记录的内容是不一样的话,那么联合起来就不符合你的意思,所以表中的字段名最好在前面加上表名,这样就不会搞乱。 2.通过natural join出来的字段必定是不空的,比如a.ad_ph_telePhone,e.email_account,m.menber_name 中有一个列没有值的话就会得不到结果,所以如果你想查找出来的结果允许有空值的话,就不适合用natrual join 来实现 USING子句 select * from emp e JOIN dept d USRING(deptno) where deptno = 30; ON子句: 表示自己编写条件 select * from emp e JOIN dept d ON(e.deptno = d.deptno) where e.deptno = 30; 左连接又叫左外连接(所谓外连接,就是可以允许值是不匹配的,也就是可以匹配空值) select * from emp e RIGHT OUTER JOIN dept d ON(e.deptno = d.deptno) ------------------------------------------------------------------------------------- emp{empno,ename,job,mgr(雇员的领导的编号),hiredate,sal,comm,deptno} dept{deptno,dname,loc} salgrade{grade,losal,hisal} bonus{ename,job,sal,comm} 列出最低薪金大于1500的各种工作以及从事此工作的全部雇员人数 select j.job , count(e.empno) from emp e, (select job from bonus group by job having min(sal) > 1500) j where e.job = j.job group by j.job 方法二: select e.job count(e.empno) from emp e where job in (select job from bonus group by job having min(sal) > 1500) group by e.job 学习: 字表可以作为连接表,也可以作为过滤条件,因为在emp表中有题目中的两个字段,所以用第二种方法更加优秀。。。 列出薪金高于公司平均薪金的所有员工,所在部门,上级领导(的名称),公司的工资等级 select e.ename,d.dname , m.ename,s.grade from emp e,dept d ,salgrade s,emp m where e.deptnp = d.deptno and sal >( select AVG(sal) from emp) and e.mgr = m.empno(+) and e.sal between losal and hisal 我们在连接表的时候一定要问问,可以为空吗。。 列出与'SCOTT'从事相同工作的所有员工及部门名称 ,注意:这句话的意思是scott的同事,所以不包括scott select e.ename ,e.empno ,d.dname from emp e,dept d where emp.deptno = d.deptno and job = (select job from emp where ename = 'SCOTT' ) and ename <>'SCOTT'
发表评论
-
函数---merge
2011-06-25 10:37 3340/*Merge into 详细介绍 MERGE语句是Or ... -
函数---keep
2011-06-23 08:07 1138KEEP 看到很多人对于keep不理解,这里解释一下 ... -
函数---GROUPING
2011-06-23 07:35 1008GROUPING GROUPING函数可以接受一列,返回 ... -
函数---trunc,LEAST,COALESCE ,TRANSLATE,convert,REPLACE
2011-06-16 09:44 1173select trunc(sysdate,'DD') AA ... -
函数---to_char,RANK()和dense_rank(),rollup,cube
2011-06-16 07:53 1362TO_CHAR(<x> [,<fmt & ... -
oracle-----list,array
2011-06-12 18:47 1152定义 type idList_type is table ... -
oracle----触发器
2011-06-12 15:14 1017这个触发器的作用是在插入role_info表的时候把rol ... -
oracle---包,游标
2011-06-11 20:40 1495游标就是一个指向内 ... -
函数---instr
2011-05-29 10:29 21551.instr 在Oracle/PLSQL中,instr函 ... -
oracle经典博文
2011-04-18 13:05 1019http://www.itpub.net/viewthread ... -
oracle-----转换函数
2011-04-17 14:45 1234Oracle 中的 TO_DATE 和 TO_CHAR 函 ... -
sql-------not in 与not exists效率
2011-01-19 09:28 2177总结: not exists总比not in好, in在内 ... -
oracle----globle temp table
2010-12-01 17:56 1233在sybase中的存储过程可以写临时表,但是oracle不 ... -
oracle----函数收集
2010-11-30 16:38 1664日期函数 1.ADD_MONTHS( ... -
sybase----函数收集
2010-11-30 16:36 1190长度和语法分析 datalength(char_expr ... -
sybase----oracle ---函数转换
2010-11-30 16:31 1392比如: 1.select user_id,convert ... -
oracle----块编程
2010-11-30 15:17 17441.块的构成:---这里不 ... -
sybase---oracle2sybase procedure
2010-11-03 19:35 1111Oracle的存储过程 create or repl ... -
sybase---bcp
2010-11-03 19:31 2028bcp 数据库名..表名 in ... -
oracle---用户管理
2010-10-06 19:37 1533sys是超级管理员,他比s ...
相关推荐
一旦连接建立,就可以执行SQL查询,处理结果集,甚至进行事务控制。cx_Oracle库提供了丰富的数据类型映射,使得Python对象可以直接与Oracle数据库的列类型对应,如将Python的字符串映射到Oracle的VARCHAR2,将整数...
- **性能优化:** 虽然限制了资源使用,但可以通过调整 SQL 查询和索引来提高性能。 Oracle XE 11.2.0 是一个强大且易于入门的数据库解决方案,尤其适合学习 Oracle 数据库基础、开发小型项目或进行测试环境搭建。...
相比于常见的 `cx_Oracle-5.1.2` 版本,7.3.0 版本可能包含了更多的更新、修复和优化,以适应不断发展的 Python 和 Oracle 技术生态。 1. **cx_Oracle 模块介绍**: - `cx_Oracle` 是 Python 开发者用来访问 ...
在Linux环境中,Oracle Instant Client的一个关键优势是它不需要完整的Oracle数据库实例即可运行,因此它降低了资源需求,特别适合于那些只需要连接和查询数据库的轻量级应用。同时,由于其跨平台性,它也便于在不同...
在这个例子中,'hostname'、'port'、'service_name'、'username'和'password'需要替换为实际的Oracle数据库信息,'table_name'是你要查询的表名。 总结来说,这个压缩包提供了在Jupyter Notebook中使用Python 3.6...
- **查询**: `rpm -q`命令可以查询已安装的RPM包。 - **升级和卸载**: `rpm -Uvh`用于升级,`rpm -e`用于卸载RPM包。 4. **CDH (Cloudera Distribution Including Apache Hadoop)**: CDH是Cloudera提供的一个开源...
之后,可以执行SQL查询、事务处理等数据库操作。 6. **性能与优化**:cx_Oracle支持批量操作和绑定变量,这在处理大量数据时能显著提高性能。此外,使用游标缓存可以减少网络往返,提高整体效率。 7. **异常处理**...
总结来说,“oracle-instantclient-12.2.0.1.0-1.x86_64.rpm”的安装和使用涉及到Oracle数据库连接技术、Linux软件包管理、64位架构支持以及系统环境变量配置等多个方面,对于需要与Oracle数据库交互的应用程序或...
Oracle Instant Client是Oracle公司提供的一款轻量级的数据库连接组件,用于在Linux、Windows等操作系统上与Oracle数据库进行通信。这个“oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm”文件是Oracle ...
Oracle Instant Client是Oracle公司提供的一款轻量级的数据库连接组件,用于在客户端计算机上实现对Oracle数据库的连接和数据操作。这个"oracle-instantclient.11.2.zip"压缩包包含了版本11.2的Instant Client,适用...
它提供了基本的数据库连接功能,如OCI(Oracle Call Interface)和NLS(National Language Support),使得应用程序能够连接到远程Oracle数据库服务器,并处理多语言数据。 安装"oracle-instantclient11.2-basic-...
1. **SQL*Plus**:SQL*Plus是Oracle数据库的一个命令行接口,它允许用户输入SQL和PL/SQL语句来查询、操作和管理数据库。通过SQL*Plus,你可以执行脚本、创建报告、进行数据操作以及管理数据库对象,如表、视图、存储...
cx_Oracle是Python连接Oracle数据库的官方驱动程序,它提供了全面的功能,包括数据查询、事务处理、游标操作等。本文将详细介绍cx_Oracle模块的使用方法以及如何安装"cx_Oracle-5.1.2-11g.win32-py2.7.msi"这个特定...
cx_Oracle是一个Python接口,它使得Python开发者能够方便地与Oracle数据库进行交互,执行SQL查询、事务管理等操作。此版本号为5.1.2,适用于64位Windows操作系统,并且是针对Python 2.7版本编译的。 Oracle数据库是...
DBD-Oracle支持Oracle数据库的各种特性,包括复杂查询、存储过程、事务处理、游标、绑定变量等。在使用DBD-Oracle时,我们需要先安装Oracle客户端或Instant Client,因为DBD-Oracle需要这些库来建立连接。 在安装...
- 数据库连接:提供oci(Oracle Call Interface)库,使得应用程序能够直接连接到Oracle数据库,进行数据查询、插入、更新和删除操作。 - SQL*Plus:一个命令行工具,用于执行SQL语句和PL/SQL块,进行数据库管理和...
3. 完成后,图层即可在Web地图中被访问和查询。 通过这种方式,GeoServer 2.20.4的Oracle插件使得用户可以充分利用Oracle的强大性能和稳定性来存储地理空间数据,并通过GeoServer对外提供服务,实现地理信息的高效...
cx_Oracle模块支持各种数据库操作,包括但不限于插入数据、查询数据、更新数据和删除数据。例如,执行一个简单的SELECT语句: ```python cursor.execute("SELECT * FROM table_name") rows = cursor.fetchall() for ...