oracle数据库学习总结(一)
- 格式:docx
- 大小:25.63 KB
- 文档页数:8
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数据库知识点总结一、概述Oracle是一种关系型数据库管理系统(RDBMS),它是由Oracle Corporation开发和维护的。
Oracle数据库具有高可用性、可扩展性、安全性和可靠性等优点,因此被广泛应用于企业级应用程序。
二、基础知识1. 数据库对象:表、视图、索引、序列等。
2. 数据类型:数值型、字符型、日期型等。
3. SQL语言:DDL(数据定义语言)、DML(数据操作语言)、DCL (数据控制语言)等。
4. 数据库事务和锁:ACID特性、并发控制、锁机制等。
三、高级特性1. 分区表:将大表分解为多个小表,提高查询效率。
2. 备份和恢复:使用RMAN进行备份和恢复,保证数据的完整性和可靠性。
3. 高可用性:使用Data Guard实现主备库切换,保证系统的连续性。
4. 性能优化:使用AWR报告进行系统调优,提高系统响应速度。
四、安全管理1. 用户管理:创建用户并分配权限,限制用户对数据库的访问权限。
2. 角色管理:创建角色并分配权限,方便对多个用户进行权限管理。
3. 数据加密:使用TDE对敏感数据进行加密,保证数据安全。
4. 审计管理:记录用户的操作行为,并进行审计分析,保证数据的安全性和完整性。
五、常见问题1. ORA错误:常见的ORA错误有ORA-00904、ORA-01017等。
2. 数据库性能问题:常见的数据库性能问题有慢查询、死锁等。
3. 数据库备份和恢复问题:常见的备份和恢复问题有备份失败、恢复失败等。
4. 安全管理问题:常见的安全管理问题有密码泄露、权限不当等。
六、总结Oracle数据库是企业级应用程序中最为流行的关系型数据库之一。
掌握Oracle数据库的基础知识和高级特性,以及安全管理和常见问题解决方法,对于保证系统稳定运行和数据安全具有重要意义。
oracle学习心得体会学习Oracle是我大学期间的一项重要任务,通过这一学习过程,我积累了许多知识和经验。
在这里,我想分享一些我的学习心得和体会。
首先,Oracle是一款强大的数据库管理系统。
学习Oracle,我发现它拥有很多功能和工具,可以满足各种各样的需求。
例如,它提供了数据存储和管理的能力,能够处理大量的数据,并保证数据的完整性和安全性。
此外,它还有丰富的查询语言和分析工具,可以帮助用户从数据中获取有价值的信息并进行决策分析。
其次,学习Oracle需要掌握一些基本概念和技巧。
比如,数据库的概念和结构、SQL语言的基础知识、数据库设计和规范等。
这些知识是学习Oracle的基础,也是深入理解和使用Oracle的前提。
在我的学习过程中,我从最基础的入门课程开始学习,逐渐扩展了我的知识面,并通过实践和项目来加深理解和运用。
然后,学习Oracle需要注重实践和实际应用。
理论知识只有通过实践才能更好地掌握和运用。
在我的学习过程中,我积极参与课程实验,通过实际操作来巩固理论知识。
同时,我也参与了一些实际项目,将所学的知识应用到实际场景中。
这种实践和应用的方式帮助我更好地理解和掌握Oracle,也提升了我的能力和经验。
此外,学习Oracle需要持续学习和更新知识。
数据库技术是一个不断发展和演变的领域,新的版本和功能不断推出。
对于一个学习者来说,跟上最新的发展和趋势是非常重要的。
在我的学习过程中,我通过阅读相关的书籍和文章、参加培训和研讨会等方式来获取最新的知识和信息。
这种持续学习的习惯和态度帮助我不断提升自己,保持对Oracle的兴趣和热情。
最后,学习Oracle是一个不断挑战和成长的过程。
在学习中,我遇到了许多困难和问题,但通过努力和坚持,我逐渐克服了这些困难,提升了自己的能力。
同时,学习Oracle也给我带来了很多机会和收获。
我参与了一些项目,为企业提供了数据库解决方案,积累了丰富的工作经验。
这些经历使我更加自信和成熟,也为我今后的发展奠定了基础。
oracle数据库知识总结Oracle数据库知识总结Oracle数据库是一种关系数据库管理系统(RDBMS),被广泛应用于企业级应用程序和数据管理中。
它提供了高度可靠、高性能和安全的数据存储和处理功能。
本文将对Oracle数据库的一些重要概念和特性进行总结,帮助读者更好地理解和应用Oracle数据库。
一、数据库概念与结构1. 数据库是一个有组织的数据集合,可以用来存储和管理各种类型的数据。
2. Oracle数据库采用了面向对象的逻辑结构,包括表空间、表、列、行等概念。
3. 表空间是数据库存储空间的逻辑单位,用于存储表和索引等对象。
4. 表是数据库中的基本数据存储单位,由若干列组成。
5. 列是表的属性,定义了表中每个数据项的数据类型。
6. 行是表中的一条记录,由多个列的值组成。
二、数据类型与约束1. Oracle数据库支持多种数据类型,包括数值型、字符型、日期型、二进制型等。
2. 数据约束用于保证数据的完整性和一致性,包括主键约束、外键约束、唯一约束、非空约束等。
3. 主键约束用于定义表中的唯一标识字段,确保每条记录的唯一性。
4. 外键约束用于建立表与表之间的关联关系,保证数据的一致性。
5. 唯一约束用于保证表中某个字段的值的唯一性。
6. 非空约束用于限制表中某个字段的值不能为空。
三、数据查询与操作1. 数据查询是数据库的核心功能之一,Oracle数据库使用结构化查询语言(SQL)进行数据查询。
2. SELECT语句用于从表中查询数据,可以使用WHERE子句进行条件过滤。
3. INSERT语句用于向表中插入新的数据记录。
4. UPDATE语句用于更新表中已有的数据记录。
5. DELETE语句用于删除表中的数据记录。
6. 数据操作还包括事务管理、并发控制、数据备份和恢复等功能。
四、索引与优化1. 索引是提高数据查询效率的重要手段,Oracle数据库支持多种类型的索引,如B树索引、位图索引等。
2. 索引可以加速数据的查找和匹配,但也会增加数据的插入、更新和删除的开销。
ORACLE数据库结课论文一个好的程序, 必然联系着一个庞大的数据库网路...今年我们学习了oracle数据库这门课程, 起初的我, 对这个字眼是要多陌生有多陌生, 后来上课的时候听一会老师讲课, 偶尔再跟上上机课, 渐渐的学会了不少东西, 但我感觉, 我学到的仍是一些皮毛而已, 怀着疑惑和求知的心态, 我在网上搜索了关于oracle数据库的一些知识。
1.ORACLE的特点:可移植性ORACLE采用C语言开发而成, 故产品与硬件和操作系统具有很强的独立性。
从大型机到微机上都可运行ORACLE的产品。
可在UNIX、DOS、Windows等操作系统上运行。
可兼容性由于采用了国际标准的数据查询语言SQL, 与IBM的SQL/DS、DB2等均兼容。
并提供读取其它数据库文件的间接方法。
可联结性对于不同通信协议, 不同机型与不同操作系统组成的网络也可以运行ORAˉCLE数据库产品。
2.ORACLE的总体结构(1)ORACLE的文件结构一个ORACLE数据库系统包括以下5类文件:ORACLE RDBMS的代码文件。
数据文件一个数据库可有一个或多个数据文件, 每个数据文件可以存有一个或多个表、视图、索引等信息。
日志文件须有两个或两个以上, 用来记录所有数据库的变化, 用于数据库的恢复。
控制文件可以有备份, 采用多个备份控制文件是为了防止控制文件的损坏。
参数文件含有数据库例程起时所需的配置参数。
(2)ORACLE的内存结构一个ORACLE例程拥有一个系统全程区(SGA)和一组程序全程区(PGA)。
SGA(System Global Area)包括数据库缓冲区、日志缓冲区与共享区域。
PGA(Program Global Area)是每一个Server进程有一个。
一个Server进程起动时, 就为其分配一个PGA区, 以存放数据与控制信息。
(3)ORACLE的进程结构ORACLE包括三类进程:①用户进程用来执行用户应用程序的。
Oracle数据库知识点总结第一篇:Oracle数据库知识点总结1.constraint约束:alter table [table_name] add constraint [pk_name] primary key(pkname);//添加主键alter table [table_name] drop constraint [pk_name];//删除主键alter table [table_name] add constraint [fk_name] foreign key(fkname)references [tablename](fkname);//添加外键alter table [table_name] drop constraint [fk_name];//删除外键2.union 关键字:A username,B usernamerodbrucerosemarinaselect username from Aunionselect username from B2、几个高级查询运算词A: UNION 运算符UNION 运算符通过组合其他两个结果表(例如TABLE1 和TABLE2)并消去表中任何重复行而派生出一个结果表。
当ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。
两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
B: EXCEPT 运算符EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。
当 ALL 随EXCEPT 一起使用时(EXCEPT ALL),不消除重复行。
C: INTERSECT 运算符INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。
当 ALL 随INTERSECT 一起使用时(INTERSECT ALL),不消除重复行。
oracle知识点的总结概述Oracle 数据库是一种关系型数据库管理系统 (RDBMS),由美国甲骨文公司 (Oracle Corporation) 开发并提供支持。
它是目前全球最为流行的数据库之一,被广泛应用于企业级应用和大型系统中。
本文将总结一些 Oracle 数据库的重要知识点,包括数据库基本概念、SQL 查询语言、数据库管理、性能优化等方面,帮助读者更好地理解和运用 Oracle 数据库。
数据库基本概念1. 数据库的概念数据库是一种存储、管理和维护数据的系统,它可以让用户方便地访问和处理数据。
数据库的基本概念包括数据表、数据行、数据列、主键、外键、索引等。
数据表是数据库中的基本组织单元,数据行是表中的一条记录,数据列是记录中的字段。
主键是表中用来唯一标识每条记录的字段,外键是表与表之间关联的字段,索引是用来提高数据检索效率的数据结构。
2. SQL 语言SQL (Structured Query Language) 是一种用于操作数据库的标准化语言,它包括数据查询(SELECT)、插入 (INSERT)、更新 (UPDATE)、删除 (DELETE) 等操作。
SQL 查询语言是数据库操作中最为重要的部分,它可以让用户从数据库中检索需要的数据,并对数据进行调整和更新。
SQL 查询语言1. 基本查询SELECT 语句是 SQL 中最基本的查询语句,它用于从数据库中检索数据。
SELECT 语句的基本结构为:SELECT 列名 FROM 表名 WHERE 条件。
用户可以在 WHERE 子句中使用比较符号、逻辑符号和通配符来筛选特定的数据。
2. 聚合函数SQL 中有一些聚合函数,用于对查询结果进行统计和计算。
常见的聚合函数包括 COUNT、SUM、AVG、MAX、MIN 等,它们可以对查询结果集中的数据进行统计和汇总。
3. 子查询子查询是一个嵌套在主查询中的查询语句,它通常用于在查询中引用其他查询的结果。
oracle的知识点总结Oracle是一种关系型数据库管理系统,它提供了一套完整的数据库管理和开发工具。
本文将总结一些Oracle的知识点,希望能够帮助读者更好地理解和应用Oracle。
1. 数据库基础知识在Oracle中,数据库是由表组成的,每个表由多个列组成。
表中的数据以行的形式存储。
在创建表时,需要指定列的名称和数据类型。
常见的数据类型包括整数、字符、日期等。
此外,还可以创建索引来加速数据检索。
2. SQL语言SQL(Structured Query Language)是一种用于管理和操作关系型数据库的语言。
Oracle支持标准的SQL语法,并提供了一些扩展功能。
通过SQL语句,可以实现数据的查询、插入、更新和删除等操作。
常见的SQL语句包括SELECT、INSERT、UPDATE和DELETE。
3. 数据库事务事务是一组数据库操作的逻辑单位,要么全部执行成功,要么全部回滚。
Oracle使用ACID(原子性、一致性、隔离性和持久性)特性来确保事务的正确执行。
可以使用BEGIN、COMMIT和ROLLBACK语句来管理事务。
4. 数据库连接与用户管理在Oracle中,可以通过用户名和密码来连接数据库。
每个用户都有自己的数据库对象(如表、视图、索引等),并且可以授予不同的权限。
可以使用CREATE USER语句创建用户,并使用GRANT语句授予权限。
5. 视图和存储过程视图是数据库中的虚拟表,可以从一个或多个表中检索数据。
视图可以简化数据的查询,隐藏底层表的细节。
存储过程是一段预先编译的代码,可以在数据库中执行。
存储过程可以接受输入参数,并返回结果。
6. 数据库安全性Oracle提供了多种安全功能,用于保护数据库的机密性和完整性。
可以使用角色和权限来限制对数据库对象的访问。
此外,还可以使用透明数据加密来加密敏感数据。
7. 数据库备份与恢复数据库备份是一种重要的数据保护手段,可以防止数据丢失。
Oracle提供了多种备份和恢复工具,如RMAN(Recovery Manager)和Data Pump。
学习Oracle数据库的心得体会
对于学习Oracle数据库,应该先要了解OracleSGA和PGA〕算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写,后台进程〔数据写进程、日志写进程、系统监控、进程监控、检查点进程、归档进程、效劳进程、用户进程〕,SCN(System Change Number)。
这些东西感觉都比拟专业,我对它们也就是个知道,想要真真去认识我还得努力去做。
虽然懂得还不是很多,起码会了根本的软件操作,老师说我们用的都是客户端,效劳端看不到,也不知道效劳端是什么样的,只知道客户端就挺多东西的,没有真正的去学习利用是很难掌握的。
Oracle数据库的学习使我对数据库的有了新的进步,以后再看到也就不至于什么也不懂,其实那么多数据库我觉得学好一门就行,只是他们的语言可能不大一样,学好一门后就可去认识其它的,这样应该有事半功倍的效果。
就像我学习C语言,当时不能说是学习的棒,但不算差。
所以我对以后的语言感觉都不是很困难,了解了、C++还有网页中用的Html语言、asp语言都能看懂,起码可以对别人的东西进行了一下修改。
因此,我感谢OracleOracle能给我更多帮助,让我在我熟悉的中运用上去,我以前的一个目标是要为学校的选课做一个选课助手来帮助大学。
不过因为种种原因一直没有完成,也包括我对数据库的不了解,因为学了Oracle以后知道第一项内容是通过SQL查询后得到的,如果去把它们联系起来还不是真正明白,不过我相信我的目标能在学习Oracle后得到进展。
oracle数据库———学习总结基础:一、ORACLE中字段的数据类型1、字符型1)char 范围最大2000个字节定长char(10) '张三' 后添空格6个把10个字节补满'张三'性别char(2) '男'2)varchar2 范围最大4000个字节变长varchar2(10) '张三' 在数据库中'张三'2、数字number 范围10的-38次方到10的38次方可以表示小数也可以表示整数number(4) 最大表示4位整数-9999 到9999number(5,2) 表示5位有效数字2位小数的一个小数-999.99 到999.993、日期date 包含年月日和时分秒7个字节4、图片blob 二进制大对象图像/声音4G二、如何建表学生表studentcreate table student( --学生表xh number(4), --学号xm varchar2(10), --姓名sex char(2), --性别birthday date, --日期sal number(7,2) --奖学金);三、字段的添加、删除、修改1、添加字段(学生所在班级classid)alter table student add (classid number(2));2、修改字段的长度alter table student modify (xm varchar2(12)) ;3、修改字段的类型(不能有记录的)alter table student modify (xh varchar2(5));4、删除一个字段alter table student drop column sal;5、删除表drop table student;6、表的名字修改rename student to stu;7、字段如何改名字--先删除a)alter table student drop column sal;--再添加b)alter table student add (salary number(7,2));四、插入字段(values是insert语句的一个关键词,后面跟要插入的一组字段值。
)1、所有字段都插入insert into student values ('A001','张三','男','01-5月-05',10);2、部分字段插入insert into student(xh,xm,sex) values ('A003','JOHN','女');3、插入空值insert into student(xh,xm,sex,birthday) values ('A004','MARTIN','男',null);五、删除语句1、删除deletedelete from student; 删除所有记录,表结构还在,写日志,可以恢复的,速度慢drop table student; 删除表的结构和数据delete from student where xh='A001'; 删除一条记录truncate table student; 删除表中的所有记录,表结构还在,不写日志,无法找回删除的记录,速度快六、查询语句1、查询selectselect * from student;select xh,xm,sex from student;select * from student where xh like 'A%1'; %任意多个字符select * from student where xh like 'A__1'; _1个字符七、混合函数1、求最大值select greatest(100,90,80,101,01,19) from dual;2、求最小值select least(100,0,-9,10) from dual;八、空值转换函数nvl(comm,0) 字段为空值那么就返回0 否则返回本身select comm,nvl(comm,0) from emp;comm 类型和值的类型是一致的九、复杂的函数1、decode 选择结构(if ... elseif .... elesif ... else结构)例、要求:sal=800 显示低工资sal=3000 正常工资sal=5000 高工资只能做等值比较解决:select sal,decode(sal,800,'低工资',3000,'正常工资',5000,'高工资','没判断')from emp;表示如下的if else 结构if sal=800 then'低工资'else if sal =3000 then'正常工资'else if sal = 5000 then'高工资'else'没判断'end ifsal > 800 sal -800 > 0十、分组函数分组函数返回值是多条记录或计算后的结果group by、sum、avg1、计算记录的条数countselect count(comm) from emp; 字段上count 会忽略空值comm不为空值的记录的条数2、group by 分组统计--有分组函数的时候--分组统计的功能统计每种工作的工资总额是多少??select job,sum(sal) from empgroup by job; --行之间的数据相加select sum(sal) from emp; --公司的工资总额3、显示平均工资>2000的工作???<1>统计每种工作的平均工资是多少<2>塞选出平均工资>2000的工作从分组的结果中筛选havingselect job,avg(sal) from empgroup by jobhaving avg(sal) > 2000;group by 经常和having搭配来筛选十一、约束主键约束--每个表要有主键,唯一的标识一行数据非空约束唯一性外键约束检查约束1、建立表的同时使用约束create table student( --学生表xh number(4) primary key, --学号主键xm varchar2(10) not null, --姓名不能为空sex char(2) check (sex in ('男','女')), --性别birthday date unique, --日期sal number(7,2) check (sal between 500 and 1000),--奖学金sal >=500 and sal <=1000classid number(2) references cla(id)); --必须要先有cla表才对--一定先建立班级cla表1)主键约束primary keynot nullcheckunique 唯一约束create table student( --学生表xh number(4) constraint pk_stu primary key, --学号主键xm varchar2(10) constraint nn_stu not null, --姓名不能为空sex char(2) constraint ck_stu_sex check (sex in ('男','女')), --性别birthday date constraint uq_bir unique, --日期sal number(7,2) constraint ck_sal check (sal between 500 and 1000)--奖学金sal >=500 and sal <=1000);2、建立约束的同时给约束指定名字,便于删除create table cla( --班级表id number(2) constraint pk_cla primary key, --班级编号cname varchar2(20) constraint nn_cla not null --班级名字);3、建完表后加约束学生表studentcreate table student( --学生表xh number(4), --学号xm varchar2(10), --姓名sex char(2), --性别birthday date, --日期sal number(7,2) --奖学金);加约束加主键alter table student add constraint pk_stuprimary key (xh);加非空alter table student modify (xm not null);检查约束alter table student add check(sex in ('男','女'));alter table student add constraint ck_sal check(sal between 500 and 1000));给student加班级字段alter table student add (classid number(2));4、如何查看约束?? 约束一定加在表上一个表上到底有哪些约束select constraint_name,constraint_typefrom user_constraintswhere table_name = 'STUDENT'--查看表上有什么约束select * from user_constraints;--查看约束作用在什么字段上select * from user_cons_columnswhere CONSTRAINT_NAME='PK_STU';user_constraints数据字典表十二、实例《1》子查询和关联查询建立表如下:学生基本信息表CREATE Student([Studentid][Int]IDENTITY(1,1)NOT NULL primary key,--主键[StudentName][char]NOT NULL)课程信息表CREATE Subject([SubjectID][char]NOT NULL primary key,--主键[SubjectName][char]NOT NULL)成绩表CREATE Grade([Studentid][Int]NOT NULL,--联合主键[SubjectID][char]NOT NULL,--联合主键[Grade] [INT]NOT NULL,primary key (studentid,subjectid))1.将建表命令改为ORACLE语句在ORACLE中建表create table student( --学生表studentid number(3) primary key, --学生编号studentname varchar2(20) --学生的姓名);create table subject( --课程表subjectid char(3) primary key, --课程编号subjectname varchar2(20) --课程的名字);create table grade( --分数表studentid number(3) references student(studentid), --学生id subjectid char(3) references subject(subjectid), --课程idmark number(3), --分数primary key (studentid,subjectid) --联合主键);insert into student values (101,'张三');insert into student values (102,'李云');insert into student values (103,'未');insert into subject values ('A01','C++');insert into subject values ('A02','ASP');insert into subject values ('A03','JA V A');insert into grade values (101,'A01',59);insert into grade values (101,'A02',72);insert into grade values (101,'A03',90);insert into grade values (102,'A01',75);insert into grade values (102,'A02',91);insert into grade values (103,'A01',71);2.作如下4题第一问:查询出以下信息学号学生姓名课程名称成绩(要全部学生信息)关联查询(多张表的)别名select a.studentid as "学号",studentname "学生姓名", subjectname "课程名称",mark "成绩"from student a , subject b , grade cwhere a.studentid = c.studentidand b.subjectid = c.subjectid;[select a.studentid "学号",studentname "学生姓名", subjectname "课程名称",mark "成绩"from student a , subject b , grade c] 笛卡尔积3 * 3 * 6 = 54;第二问:查询出以下信息学号学生姓名课程名称成绩(只显示每科最高分)select a.studentid "学号",studentname "学生姓名", subjectname "课程名称",mark "成绩"from student a,subject b,grade cwhere a.studentid = c.studentidand b.subjectid = c.subjectidand (subjectname,mark)in (select subjectname "课程名称",max(mark) "成绩" from student a,subject b,grade cwhere a.studentid = c.studentidand b.subjectid = c.subjectidgroup by subjectname)(最高分---分数比我高的学生的人数=0)select a.studentid "学号",studentname "学生姓名",subjectname "课程名称",mark "成绩"from student a,subject b,grade cwhere a.studentid = c.studentidand b.subjectid = c.subjectidand (select count(*) from gradewhere subjectid = b.subjectid andmark > c.mark) = 0第三问:查询出以下信息学号学生姓名课程名称成绩(成绩大于60时的显示及格,小于60时的显示不及格)select a.studentid "学号",studentname "学生姓名",subjectname "课程名称",decode(sign(mark-60),-1,'不及格','及格') "成绩"from student a,subject b,grade cwhere a.studentid = c.studentidand b.subjectid = c.subjectid第四问:查询出以下信息学号学生姓名(查询出课程超过1门以上学生的信息)select a.studentid "学号",studentname "学生姓名",count(subjectname)from student a , subject b , grade cwhere a.studentid = c.studentidand b.subjectid = c.subjectidgroup by a.studentid,studentnamehavingcount(subjectname) >= 2拓展:一、复制一张表的结构--数据一起复制create table mydept as select * from dept;--只复制结构create table mydept1 as select * from dept where 1=2;--把数据从一个表复制到另一个结构相同的表insert into mydept1 select * from dept;--只复制部分数据insert into mydept1 select * from dept where deptno>20;insert into mydept1(deptno,loc) select deptno,locfrom dept;a.没有主键的表如何消重复记录create table test(id number(2),name varchar2(10));insert into test values (1,'aa');insert into test values (1,'aa');insert into test values (1,'aa');insert into test values (2,'bb');insert into test values (3,'cc');create table test1 as select distinct * fromtest;二、ORACLE中建立数据库对象约束序列sequence ---自动编号---- IDENTITY (SQLSERVER)<1>建立序列create sequence seq1; 从1开始每次自动增加1 没有最大值<2>怎么使用select seq1.nextval from dual;nextval 伪列下一个值select seq1.currval from dual;currval 伪列当前值create sequence seq2start with 1000 --起始值1000 1000开始increment by 2 --步长2 每次增加2maxvalue 9000 --最大值9000 一直到9000minvalue 900 --最小值900 回到900 重新开始cycle --循环序列。