oracle总结
- 格式:docx
- 大小:31.86 KB
- 文档页数:11
ORACLE数据库基础知识总结1、RMAN全备备份⽂件的顺序备份归档⽇志、所有的数据⽂件、控制⽂件、spfile、再次备份归档⽇志2、redo⽇志丢失恢复redo⽇志的三种状态是current、active、inactiveinactive,可以重建 clear logactive、current不能变成inactive,只能通过不完全恢复进⾏恢复,然后重建⽇志⽂件3、⼝令⽂件丢失恢复丢失可重建 orapwd file= password= enfries=重建完成之后ORACLE正常使⽤4、控制⽂件丢失恢复a> rman 可以备份控制⽂件b> 控制⽂件可以cp⼀份备⽤c> 控制⽂件可以重建⼿写5、体系结构物理:ORACLE数据库包括instance、database两部分。
instance包括SGA(系统全局区)跟⼀些后台进程组成的。
SGA包括:share pool、db buffer cache、redo log buffer、流池、⼤型池、JAVA POOL、share pool(共享池) :库缓存:缓存最近执⾏的代码,同样的sql多次执⾏不需要频繁读取数据字典中得数据数据字典缓存:存储oracle中得对象定义PL/SQL区:缓存存储过程、函数触发器等数据库对象。
db buffer cache(数据库缓存区)redo log buffercache(⽇志缓存区)常见的后台进程:DBWn:⽤于数据库缓存写⼊磁盘LGWn:⽤于log⽇志写⼊磁盘CKPT:检查点进程SMON:实例维护进程,系统监视器MMON:AWR主要进程PMON:维护⽤户进程,进程监视器ARCN:归档进程database包括数据⽂件、控制⽂件、⽇志⽂件等。
逻辑:oracle数据块-区-段-表空间-数据库-⽅案多个oracle数据块组成⼀个区,多个区组成⼀个段,多个段组成⼀个表空间,多个表空间组成⼀个数据库表空间和数据⽂件的关系:表空间是由⼀个或多个数据⽂件组成的,⼀个数据⽂件只属于⼀个表空间,表空间的⼤⼩是所有数据⽂件⼤⼩的总和。
ORACLE学习实例总结笔名:北⽅天空<1>成功导⼊数据库1impuserdb/missrain@testfile=userdb.dmpfull=ylog=userdb_imp.logimpdictdb/missrain@testfile=dictdb.dmpfull=ylog=dictdb_imp.logimpappdb/missrain@testfile=appdb.dmpfull=ylog=appdb_imp.logimptmmsdict/missrain@testfile=tmmsdict.dmpfull=ylog=tmmsdict_imp.logimptmmsapp/missrain@testfile=tmmsapp.dmpfull=ylog=tmmsapp_imp.logimpuserdb/missrain@testfile=userdb.dmpfull=ylog=userdb_imp.log中imp:导⼊命令userdb:⽤户名missrain:密码test:服务命名userdb.dmp:数据库⽂件userdb_imp.log:数据库⽇志full=y:全部导⼊<2>成功创建表1createtabletest(avarchar(128)default''wu'',bintdefault0)<3>成功创建存储过程1CREATEORREPLACEprocedurepro1asbegininsertintotestvalues(''afa'',3);end;<4>成功创建存储过程2CREATEORREPLACEprocedurepro1asbegindeclareavarchar2(128);bint;beginselectintoa,bfromtestwherea=''afa'';end;end;<5>成功创建存储过程3createorreplaceprocedurepro2asbeginexecuteimmediate''selectfromtest'';end;<6>成功创建存储过程4createorreplaceprocedurepro2asbeginexecuteimmediate''insertintotest(a,b)values(3,2)'';end;<7>成功创建触发器11、建⽴试验表createtableemployees_copyasselectfromtt;2、建⽴⽇志表createtableemployees_log(whovarchar2(30),whendate);3、在employees_copy表上建⽴语句触发器,在触发器中填充employees_log表。
千里之行,始于足下。
oracle优化方法总结Oracle优化是提高数据库性能和响应能力的重要步骤。
本文总结了一些常见的Oracle优化方法。
1. 使用索引:索引是提高查询性能的主要方法。
通过在表中创建适当的索引,可以加快查询速度,并减少数据访问的开销。
但是要注意不要过度使用索引,因为过多的索引会增加写操作的开销。
2. 优化查询语句:查询语句的效率直接影响数据库的性能。
可以通过合理地编写查询语句来提高性能。
例如,使用JOIN来替代子查询,尽量避免使用通配符查询,使用LIMIT来限制结果集的大小等。
3. 优化表结构:表的设计和结构对数据库的性能也有很大的影响。
合理的表设计可以减少数据冗余和不必要的数据存储,提高查询速度。
例如,适当地使用主键、外键和约束,避免过多的数据类型和字段等。
4. 优化数据库参数设置:Oracle有很多参数可以用来调整数据库的性能。
根据具体的应用场景和需求,可以根据情况调整参数的值。
例如,调整SGA和PGA的大小,设置合适的缓冲区大小,调整日志写入方式等。
5. 使用分区表:当表的数据量很大时,可以考虑将表分成多个分区。
分区表可以加速查询和维护操作,提高数据库的性能。
可以按照时间、地域、业务等来进行分区。
6. 优化存储管理:Oracle提供了多种存储管理选项,如表空间和数据文件管理。
合理地分配存储空间和管理数据文件可以提高数据库的性能。
例如,定期清理无用的数据文件,使用自动扩展表空间等。
第1页/共2页锲而不舍,金石可镂。
7. 数据压缩:对于大量重复数据或者冷数据,可以考虑使用Oracle的数据压缩功能。
数据压缩可以减少磁盘空间的使用,提高IO性能。
8. 使用并行处理:对于大型计算或者批处理任务,可以考虑使用Oracle的并行处理功能。
并行处理可以将任务分成多个子任务,并行执行,提高处理能力和效率。
9. 数据库分区:对于大型数据库,可以考虑将数据库分成多个独立的分区。
数据库分区可以提高数据的并行处理能力,减少锁竞争和冲突,提高数据库的性能。
oracle 工作总结
《Oracle 工作总结》。
在过去的一段时间里,我一直在公司的Oracle团队工作。
在这段时间里,我学到了很多关于Oracle数据库管理和优化的知识,也积累了丰富的工作经验。
在这篇文章中,我将对我的工作进行总结,并分享一些我在Oracle工作中的收获和体会。
首先,我要谈谈我在Oracle数据库管理方面的工作。
在这个岗位上,我负责监控数据库的运行状态,确保数据库的稳定性和安全性。
我学会了如何定期备份数据库,以防止数据丢失。
我还学会了如何优化数据库的性能,通过调整参数和索引来提高数据库的查询效率。
在这个过程中,我遇到了很多问题,但通过不断学习和实践,我逐渐掌握了数据库管理的技巧和方法。
其次,我还要谈谈我在Oracle数据库优化方面的工作。
在这个岗位上,我负责分析数据库的性能问题,并提出优化建议。
我学会了如何通过SQL调优来提高数据库的查询速度,如何通过合理的索引设计来减少数据库的IO负载。
我还学会了如何通过分区表和分区索引来提高数据库的并发处理能力。
通过这些工作,我深入了解了Oracle数据库的优化原理和方法,也提高了自己的技术水平。
总的来说,我的Oracle工作经历让我受益良多。
我不仅学会了数据库管理和优化的技术,也锻炼了自己的分析和解决问题的能力。
我相信,在未来的工作中,我会继续努力学习,不断提高自己的技术水平,为公司的发展贡献自己的力量。
感谢公司给予我这次宝贵的工作机会,我会继续努力,不辜负公司的期望。
oracle日常运维操作总结一、硬件维护1.确保服务器硬件运行正常,定期检查硬件设备,如服务器、存储设备、网络设备等。
2.根据需要及时更新硬件设备,包括升级内存、硬盘等。
3.确保服务器周边设备运行正常,如UPS电源、空调等。
二、软件维护1.确保Oracle数据库软件运行正常,定期检查软件版本、补丁等。
2.更新Oracle数据库软件,包括升级Oracle版本、打补丁等。
3.定期清理无用文件,包括日志文件、临时文件等。
4.定期备份数据库,确保数据安全。
三、性能优化1.定期检查数据库性能,包括CPU使用率、内存使用率等。
2.根据性能检查结果,进行性能优化,如调整数据库参数、优化SQL语句等。
3.定期对数据库进行优化,包括重建索引、优化表空间等。
四、安全加固1.配置Oracle数据库的安全设置,如用户密码、权限管理等。
2.确保数据库账户的安全性,如定期修改密码、禁用无效账户等。
3.防止SQL注入等攻击行为,如使用参数化查询、限制用户输入等。
4.定期检查数据库的安全日志,包括登录日志、操作日志等。
五、数据备份1.制定数据备份计划,并按照计划执行备份操作。
2.采用多种备份方式,如全备份、增量备份等。
3.确保备份数据的可用性和完整性,如定期测试备份数据的恢复能力。
4.对备份数据进行存储和管理,确保数据安全。
六、故障处理1.建立故障处理流程,明确故障处理责任人和流程步骤。
2.对发生的故障进行及时处理,如系统崩溃、网络故障等。
3.对故障进行分类和总结,建立故障处理知识库。
4.定期对系统进行健康检查和性能测试,预防故障发生。
七、监控管理1.建立监控管理体系,包括监控指标、监控周期等。
2.使用监控工具,如OracleEnterpriseManager、Nagios等,对系统进行实时监控。
3.对监控数据进行分析和处理,及时发现和处理潜在问题。
4.定期对监控数据进行存储和管理,方便后续查询和分析。
八、应急预案1.制定应急预案,明确应急响应流程和责任人。
Oracle数据库管理与应用实训总结
在这一周Oracle数据库管理与应用的实训的时间里,实训老师针对我们本学期的学习,有针对性地对我们进行了很有价值的实训工作,从最基础的字段类型,到一般的Oracle语句,如创建数据表、视图、存储过程、触发器等,给我们细心讲解,虽然Oracle数据库管理与应用的课已经学习了将近一学期,但对其简单的知识点运用的都不是很熟练,没能真正去融会贯通。
不过,经过为期一周的针对性实训,我学到了很多知识,把以前学的所有知识点都贯穿到一起,又温习了一遍,让我们能从真正意义上了解到Oracle数据库的用处。
不论再用到什么软件编写网站,都会用到数据库连接,都要从那个数据库中调用数据,这说明了数据库的重要性,认识到学习数据库的必要性。
Oracle数据库是很重要的数据库系统。
在数据库实训过程中,难免会出现小错误,但经过我们的讨论研究,加上老师认真的辅导,我们会解决这些错误,从而更加熟练掌握Oracle 数据库。
这一周不仅学到了Oracle数据库的知识,还培养了我们的团队合作精神,互相帮助,讨论研究,解决问题。
实训一周,收获颇多,更是受益匪浅。
Oracle数据库语法总结一、DDL(数据定义语言)1、创建、删除表(1)CREATE TABLE 语句用于在Oracle数据库中创建新表:CREATETABLE表名(列1数据类型(大小/长度)[NOTNULL][CONSTRAINT约束名]列2数据类型(大小/长度)[NOTNULL][CONSTRAINT约束名]……(2)DROP TABLE 语句用于从Oracle数据库中删除表:DROPTABLE表名2、更改表(1)ALTERTABLE语句用于更改现有的表:ALTERTABLE表名ADD(添加新的列),MODIFY(修改现有的列),DROP(删除现有的列)(2)RENAME语句用于更改表名:RENAME表名1TO表名23、创建索引(1)CREATEINDEX语句用于在表中创建索引:CREATEINDEX索引名ON表名(列1,列2,...)(2)DROPINDEX语句用于从表中删除索引:DROPINDEX索引名4、创建约束(1)Primary Key 约束:ALTERTABLE表名ADDCONSTRAINT主键名PRIMARYKEY(列名)(2)Foreign Key约束:ALTERTABLE表名ADDCONSTRAINT外键名FOREIGNKEY(列名)REFERENCES参照表名(参照列);(3)Unique 约束:ALTERTABLE表名ADDCONSTRAINT唯一约束名UNIQUE(列1,列2,...);(4)NOTNULL约束:ALTERTABLE表名ADDCONSTRAINT非空约束名NOTNULL(列1,列2,...);5、删除约束(1)Primary Key 约束:ALTERTABLE表名DROPCONSTRAINT主键名PRIMARYKEY;(2)Foreign Key约束:ALTERTABLE表名DROPCONSTRAINT外键名FOREIGNKEY;(3)Unique 约束:。
表空间含义:表空间是数据库的逻辑组成部分。
从物理上讲,数据库数据存放在数据文件中;从逻辑上讲,数据库则是存放在表空间中,表空间由一个或多个数据文件组成1,oracle 中逻辑结构包括表空间、段、区和块。
说明一下数据库由表空间构成,而表空间又是由段构成,而段又是由区构成,而区又是由oracle 块构成的这样的一种结构,可以提高数据库的效率。
表空间用于从逻辑上组织数据库的数据。
数据库逻辑上是由一个或是多个表空间组成的2,创建表空间:create tablespace data01 datafile 'd:\test\dada01.dbf' size 20m uniform size 128k;或SQL> create tablespace lqb datefile 'e:\lqb.dbf' size 50M autoextend on next 50M maxsize unlimited extend mangement local;-------------extend mangement local;本地管理表空间。
autoextend on next 50M maxsize unlimited 在50M后最大的扩展时没有限制的3,第3步:创建用户并指定表空间*/ create user USERNAME identified by PASSWORD default tablespace USER_DATE temporary tablespace user_temp;-------------temporary 临时的,暂时的4,如何将表移动到指定表空间alter table TABLE_NAME move tablespace TABLESPACE_NAME;如何将索引移动到指定的表空间alter index INDEX_NAME REBUILD tablespace TABLESPACE_NAME;5,改变表空间的状态a,使表空间脱机alter tablespace 表空间名offline; b,使表空间联机alter tablespace 表空间名online; c,只读表空间alter tablespace 表空间名read only; (修改为可写是alter tablespace 表空间名read write;)6, 知道表空间名,显示该表空间包括的所有表select * from all_tables where tablespace_name='表空间名';7,知道表名,查看该表属于那个表空间select tablespace_name, table_name from user_tables where table_name='emp';8,扩展该表空间,为其增加更多的存储空间。
oracle总结Oracle是一种关系型数据库管理系统(RDBMS),由Oracle公司开发和发布。
它具有强大的功能和广泛的应用领域,在企业数据管理中有着重要的地位。
本文将总结Oracle的主要特点、优点和应用场景,并对其未来发展进行展望。
首先,Oracle具有以下主要特点:1.可靠性高:Oracle具有事务管理、崩溃恢复和故障转移等功能,能够保证数据的完整性和可靠性。
2.性能优秀:Oracle采用先进的查询优化和缓存技术,可以处理大量的数据并快速响应用户请求。
3.可扩展性强:Oracle支持集群和分布式数据库,可以根据需要扩展服务器和存储资源。
4.安全性好:Oracle具有高级的安全控制功能,包括用户认证、权限管理和数据加密等,可以保护数据不受非法访问和损坏。
其次,Oracle有许多优点使其在企业中得到广泛应用。
首先,Oracle具有良好的数据一致性和完整性,可以保证数据的准确性和可靠性。
其次,Oracle具有强大的查询和分析能力,可以快速地检索和处理大量的数据。
此外,Oracle还具有较低的维护成本和良好的兼容性,可以与多种操作系统和应用程序集成使用。
最重要的是,Oracle有着庞大的用户群体和广泛的生态系统,可以获得丰富的技术支持和在线资源。
Oracle在各个行业和领域都有广泛的应用。
首先,在金融领域,Oracle被广泛用于银行、保险和证券等机构的核心业务系统和风险管理系统中,可以处理大量的交易数据并提供实时的分析报告。
其次,在制造业领域,Oracle可以用于企业资源规划(ERP)、供应链管理(SCM)和客户关系管理(CRM)等系统,协助企业管理生产流程和提高运营效率。
再次,在电信和互联网行业,Oracle可以用于大数据分析、用户行为分析和网络性能管理等关键业务系统中,可以帮助企业实现智能化决策和个性化服务。
此外,Oracle还在政府、医疗、教育等领域得到广泛应用,可以支持大规模的数据管理和业务处理。
oracle面试知识点总结1. 数据库基础在Oracle面试中,首先要掌握数据库的基础知识,包括关系型数据库的概念、数据库管理系统(DBMS)的作用以及Oracle数据库的特点和优势。
此外,还需要了解数据库的体系结构、数据库管理的基本原则以及数据库设计和规范等相关概念。
2. SQL语言SQL(结构化查询语言)是关系型数据库管理系统中的一门标准查询语言,Oracle的面试中通常会涉及到SQL语言的相关知识。
包括SQL语法、基本查询、条件查询、排序和分组、连接查询、子查询、聚合函数、数据操作语句等内容。
3. 数据库设计数据库设计是数据库管理员的重要工作之一,也是Oracle面试中的重点知识点。
数据库设计包括实体关系模型(ER模型)、范式化、表设计、索引设计、视图设计等内容,面试官通常会问到数据库设计的相关问题以考察应聘者的设计能力。
4. 数据库管理数据库管理是数据库管理员的核心职责,也是Oracle面试的重要内容之一。
数据库管理涉及到数据库安装、配置、备份和恢复、性能优化、安全管理、存储管理、事务管理等方面的知识,应聘者需要熟悉Oracle数据库的管理工具和相关技术。
5. 数据库性能优化数据库性能优化是数据库管理员的重要工作之一,也是Oracle面试中关注的重点。
应聘者需要了解如何通过索引优化、查询优化、存储优化、缓存优化等手段来提升数据库的性能,以及如何识别和解决数据库性能问题。
6. PL/SQL编程PL/SQL是Oracle数据库中的一种过程化编程语言,面试中通常会涉及到PL/SQL的相关知识。
包括PL/SQL的基本语法、存储过程和函数的编写、异常处理、游标和触发器等内容,应聘者需要熟悉PL/SQL编程的相关技术。
7. 数据库安全数据库安全是数据库管理中的重要内容之一,也是Oracle面试中的考察点。
应聘者需要了解数据库安全的基本原则,包括用户管理、权限管理、加密和认证、审计和监控等方面的内容,以及相关的安全技术和工具。
ORACLE总结数据库口令:tiger用户名密码:scott/tigersys/tigersystem/tiger登陆命令:sqlplus scott/tiger解锁账户(管理员身份:sqlplus sys/tiger as sysdba)alter user hr identified by tiger account unlock解锁并提供一个密码tiger查询方式:select * from dept;第一种方式:开始---->运行(输入CMD)----> sqlplus 用户名/密码第二种方式:sqlplusw开始---->程序---->Oracle - OraDb10g_home1---->ApplicationDevelopment---->SQL*Plus---->输入用户名密码连接标识符第三种方式: isqlplus(浏览器的方式)打开IE---->输入URL http://localhost:5560/isqlplus-->用户名密码连接标识符(不指定的情况下,可不写)---->成功登陆进入工作区进行操作查看数据库的表格数量:select * form all_tables;显示用户表结构:desc user_tables;找出table_name字段,在根据table_name查找用户表显示用户:select table_name from user_tables;DML数据操纵语言DDL数据定义语言DCL数据控制语言select * from dept;//*查询所有记录select deptno,dname from dept;select deptno,dname,loc from dept;更换用户:之前sqlplus scott/tiger 转换:conn sys/tiger as sysdba.奖金(comm)第一种奖金显示:select ename as name,sal as salary,comm co from emp;(别名便于显示)第二种奖金显示:select ename "name",sal "salary",comm "employee comm" from emp;连接符的应用:select ename,job,ename || ' is a ' || job as "employee detail" from emp;select deptno from emp;select distinct deptno from emp;//删除重复的DOM 下用spool(启动)spool off(来结束)来保存之后的内容。
日期select ename,hiredate from emp;获得编号:select empno,ename,job,deptno from empwhere deptno = 20;where deptno>10;值在两者之间的(between...and...):select ename,job,sal from empwhere sal between 2500 and 3000;IN(运算符):select ename,sal,deptno from empwhere deptno in(10,20);LIKE:select ename,sal,job from empwhere ename like'_A%';and(可多个条件连用):select ename,sal,deptno from empwhere sal>2000and deptno = 20and ename = 'FORD';or(可多个条件连用):select ename,sal,deptno from empwhere sal>2000or deptno = 20or ename = 'FORD';not:select deptno from empwhere deptno not in(10,20);升序排列:select ename,deptno,sal,hiredate from emporder by hiredate;降序排列:select ename,sal,hiredate,job from emporder by sal desc ;(名字排序按照字母先后)单行函数:function_name字符改变大小:全部变小:select lower('SAJLJSDF csljOJFJOSFDJ') from dual;全部变大: select upper('LKDJSLFlkjlsdkjflkjsdflkj') from dual;首字母变大:select initcap('SFJLSlklsdkfjlskjdfl sdlfjlas') from dual;字符连接:select concat('sdfjsldjkfsdf') from dual;取字符串长度:select length('dfdofjdf') from dual;判断第一次遇见字符的位置:select instr('djaljdlfkjsdf','l') from dual;答案为:4只能去掉两边的字符:select trim('h' from 'ehlloworldh') from dual;未指定是为空格(去掉两边的空格)不足的位在左边补*:select lpad(sal,10,'*') from emp;不足的位在右边补*:select rpad(sal,10,'*') from emp;获取字符段:select substr('HelloWorld',1,5) from emp;取中间字符所在位置:select instr('HelloWorld','W') from emp;数组函数:四舍五入函数:select round(45.926,2) from dual;//保留小数点后两位,进行四舍五入进位截断:select trunc(45.926,2) from dual;//从小数点后两位开始截断select trunc(45.926,-2) from dual;//从小数点前两位开始截断答案为0select trunc(45.926) from dual;//保留整数取模函数:select mod(6565,2) from dual;查询系统时间:select sysdate from dual;select sysdate+3 from dual;select sysdate+10 from dual;//加的天数超过本月月份自动加select sysdate-3 from dual;求入职天数:select ename,sysdate-hiredate hiredate from emp;//当前时间减去入职时间求入职年数: select ename,hiredate,round(sysdate-hiredate)/365 hiredate from emp;select to_char(sysdate+2/24,'yyyy-dd-mm hh24:mi:ss') from emp;//sysdate+2/24在日期上加12小时。
select next_day(sysdate,'星期五') from dual;select last_day(sysdate) from dual;trunc(sysdate,'D'); 截取到本周的第一天(0:00)trunc(sysdate,'MM'); 截取到本月的第一天(0:00)trunc(sysdate,'DD'); 截取到本日的0:00trunc(sysdate,'yyyy'); 得到今年的第一天的0:00select to_char(sysdate,'year month dd day dy') from emp;select to_char(123456.78,'L999G999D99') from emp;通用函数:单行函数:使用函数对数据进行计算使用函数修改数据使用函数控制一组数据的输出格式使用函数改变日期的显示格式使用函数改变数据类型使用NVL 函数使用IF-THEN-ELSE 逻辑分组函数:select avg(sal),sum(sal),max(sal),min(sal) from emp;select max(hiredate),min(hiredate) from emp;select count(*) from emp;select count(comm) from emp;select sum(comm) from emp;select count(*) from empwhere deptno = 10;select deptno,count(*) a from emp 2 group by deptno;select deptno,min(sal) as a from emp 2 group by detpno;select avg(nvl(comm,100)) from emp;select avg(comm) from emp;select ename,comm from emp where comm is not null;select count(distinct deptno) from emp;select deptno,job,sum(sal) 2 from emp 3 group by deptno,job;select avg(sal) from empselect avg(sal) from emp 2 group by deptno;select ename,comm from emp where comm is not null;select deptno,avg(sal) from emp 2 group by deptno 3 having avg(sal) >2000; 每个部门的平均工资:select max(avg(sal)) from emp 2 group by deptno; select ename,d.deptno from emp,dept d;select ename,dname from emp,dept where emp.deptno = dept.deptno;创建表:create table departmentsdid number primary key,dname varchar2(20),lid number);插入数据:insert into departments values(10,'accounting',1);select * from locations;select * from departments;查询多张表中的相同字段:select e.ename,d.dname,l.city fromemp e,departments d,locations lwhere e.deptno = d.did and d.lid = l.locid;连接N个表至少需要N-1个条件select tabel_name from user_tables;等级:select * from salgrade;薪水在最低和最高之间:select e.ename,e.sal,s.grade fromemp e,salgrade swhere e.sal between s.losal and s.hisal;加号行为匹配令一行为全部:select e.ename,d.dname from emp e,dept d第一种情况: where e.deptno = d.deptno(+);select e.ename,m.ename fromemp e,emp mwhere e.mgr = m.empno;select empno,ename from emp;select e.ename,d.dname from emp e natural join dept d;select e.ename,d.dname from emp ejoin dept dusing(deptno);select e.ename,d.dname from emp e,dept d where e.deptno = d.deptno;join...on..实现外连接e.deptno = d.deptno : select e.ename,d.dname from emp e2 join dept d on e.deptno =d.deptno;按等值的连接:select e.ename,d.dname,l.city fromemp e,departments d,locations lwhere e.deptno = d.did and d.did = l.locid;//d.did和l.locid无关连和上面等值关系的join...on...方法:select e.ename,d.dname,l.city fromemp ejoin departments d on(e.deptno = d.did)join locations l on(d.did = l.locid);和上面结果相同,两条件没有关联性。