MLDN魔乐科技Oracle课堂笔记
oracle课程笔记.

1.触发器创建命令 Creat trigger <触发器名称>2.before insert or update of department_id on employees 意思是当表employees执行insert操作以及针对employees表中的department_id字段做update操作地时候,发起触发器;3.referencing old as old_value new as new_value for each row 定义了触发器关键动作(insert,update,delete)的修改临时变量(new,old) insert: 此时有一个new的修改临时变量可以被后续SQL操作当为insert时,只存在new变量,存放着insert的所有记录信息 update: 当为update时,update之前的数据存放在old中, update之后的数据存放在new中;注:如果update了一个字段,那么old和new里是保存着字段值还是一个完整的记录值 delete: 当为delete时,delete之前的数据存放在old中,并且只有old;4.定义触发器限制 when (new_value.department_id<>805.if...then elseif...then6. user当前登录用户7. Raise_application_error一个oracle定义的异常对象8. Create or replace 创建或者替换触发器9. sysdate当前系统时间 10.表修改关键字alter table 11.Declare 定义触发器中的变量 12.<字段>%type 表示字段的类型 13.定义触发器生效之后的SQL句操作 begin :new_mission_pct :=0; end; 14.before....for each row表示触发器对每一行生效 15.create sequence 建立字增长的序列号。
oracle课堂笔记

oracle课堂笔记星期⼀:Monday星期⼆:Tuesday星期三:Wednesday星期四:Thursday星期五:Friday星期六:Saturday星期天:Sunday数据库⽬录实例主⽬录:C:\oracle\product\10.1.0\admin实例⽬录⽂件:bdump:⽤于保存进程跟踪⽂件 cdump:⽤于保存内核放弃⽂件 create:o数据库创建⽂件 pfile:初始化参数⽂件 udump:⽤户SQL跟踪⽂件C:\oracle\product\10.1.0\oradata\orcl 数据库⽂件 .ctl 数据库控制⽂件 .log 重做⽇志⽂件 .dbf 数据⽂件Oracle注册表相关项[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\OracleCSService] Oracle服务相关项[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1] Oracle安装,运⾏环境,参数设置相关项[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Oracle in OraDb10g_home1] 与ODBC驱动相关的⼦键变量&select employee_id,last_name,salary,department_id from employees where employee_id=&请输⼊员⼯编号;select job_id, last_name, department_id, salary*12,salary from employees where job_id='&job' 中⽂字符要加单引号select employee_id,last_name,job_id,&column_name from employees;select employee_id,last_name,job_id,&column_name from employees order by &order_column;操作符优先级:(1)乘除的优先级⾼于加减。
Oracle超详细学习笔记

Oracle超详细学习笔记-----员⼯培训------1.最简单的查询--例SELECT *FROM employees;DESC employees;SET linesize 600;SET PAGESIZE 50;--例2SELECT table_name FROM user_tables;--查询数据库中所有表名--2.查询特定的列--例SELECT employee_id,fisrt_name,last_name.salaryFROM employees;--3.在SELECT⼦句中使⽤直接量--例SELECT 5FROM employees;-----------------------SELECT 5FROM dual;--这是Oracle提供的伪表--例2:SELECT 'Hello Oracle SQL'--在Oracle中如何表⽰字符串常量FROM employees;SELECT 'Hello Oracle SQL'--在Oracle中如何表⽰字符串常量FROM dual;--例3:SELECT 'Hello Oracle''s SQL'--⽤两个连续单引号进⾏单引号转义FROM employees;--4在SELECT⼦句中使⽤算术表达式--例1:查询员⼯的编号、姓名和年薪SELECT employee_id,fist_name,last_name,salry,salary*12FROM employees;--例2:SELECT 5/2FROM dual;--5.给例定义别名--例1:SELECT employee_id AS idFROM employees;--例2:SELECT employee_id AS "Id"--双引号中的字符原样显⽰FROM employees;--例3:SELECT employee_id,fist_name,last_name,salry,salary*12 AS annual_salary FROM employees;--例4:SELECT employee_id,fist_name,last_name,salry,salary*12 AS "annual salary" FROM employees;--如果别名有特殊字符必须使⽤双引号--6.字符串的链接运算符--例:SELECT employee_id||''||fist_name,last_name,salry,salary*12 AS annual_salary FROM employees;--7.过滤重复记录--例1:SELECT DISTINCT department_idFROM employees;--例2:SELECT DISTINCT department_id,job_idFROM employees;--第⼆章过滤查询和结果集排序--1.使⽤WHERE⼦句过滤记录--例1:SELECT *FROM employeesWHERE salary > 8000;--例2:SELECT employee_id,first_name,last_name,salary FROM employeesWHERE salary = 17000;--例3:SELECT employee_id,first_name,last_name,salary FROM employeesWHERE salary <> 17000;-- !=--⽐较运算符号:>,>=,<,<=,=,!=或<>--例4SELECT employee_id,first_name,last_name,salary FROM employeesWHERE salary >=2500 AND salary <= 17000;--逻辑运算符:AND,OR,NOT--2.在WHERE⼦句中使⽤字符串和⽇期--例1:查询职位ID为st_clerk的员⼯信息SELECT employee_id,job_id,first_name,FROM employeesWHERE job_id = 'ST_CLERK';--表中字段的值是区分⼤⼩写的--例2:查询1998年7⽉9⽇⼊职的员⼯信息SELECT employee_id,job_id,first_nameFROM employeesWHERE hire_date = '09-7⽉-1998';--⽇期直接量必须以字符串的形式来体现--Oracle的⽇期是格式敏感的--标准⽇期表⽰DD-MM-RR--3.其他⽐较运算符--1)BETWEEN AND--例1:查询⼯资在【2500,7000】上的员⼯信息SELECT employee_id,job_id,first_name,salaryFROM employeesWHERE salary BETWEEN 2500 AND 7000;--包含边界值--第⼀个值要⼩于第⼆个值--练习:查询1998年⼊职的员⼯信息SELECT employee_id,job_id,first_name,salary,hire_dateFROM employeesWHERE hire_date BETWEEN '01-1⽉-1998' AND '31-12⽉-1998';--2) IN--例1:查询职位ID是ST_CLERK或者ST_MAN的员⼯SELECT employee_id,job_id,first_name,salary,hire_dateFROM employeesWHERE job_id IN ('ST_CLERK','ST_MAN');--例2SELECT employee_id,job_id,first_name,salary,hire_dateFROM employeesWHERE NOT job_id IN ('ST_CLERK','ST_MAN');----------------------------------------------------------------------------SELECT employee_id,job_id,first_name,salary,hire_dateFROM employeesWHERE job_id NOT IN ('ST_CLERK','ST_MAN');--3)LIKE--例1:模糊查询SELECT employee_id,job_id,first_name,salary,hire_dateFROM employeesWHERE job_id LIKE 'ST%';--通配符:%任意多个字符,_⼀个字符。
oracle 笔记

oracle 笔记摘要:一、Oracle 简介1.Oracle 的发展历程2.Oracle 的产品和服务二、Oracle 数据库的基本概念1.数据库管理系统2.关系型数据库3.Oracle 数据库的结构三、Oracle 数据库的安装与配置1.安装Oracle 数据库的前提条件2.安装过程及注意事项3.配置Oracle 数据库四、Oracle 数据库的管理1.数据库的启动与关闭2.数据库的备份与恢复3.用户与权限管理五、SQL 语言基础1.SQL 简介2.SELECT 查询语句3.INSERT、UPDATE 和DELETE 操作语句六、PL/SQL 编程1.PL/SQL简介2.存储过程与函数3.触发器与异常处理七、Oracle 数据库的应用1.Oracle 数据库在企业级应用中的优势2.Oracle 数据库在典型行业的应用案例正文:一、Oracle 简介Oracle(甲骨文)公司成立于1977 年,总部位于美国加州,是全球著名的数据库软件及解决方案供应商。
Oracle 的产品和服务涵盖了数据库、应用软件、中间件、云计算等领域,广泛应用于企业、政府、金融、医疗等各个行业。
二、Oracle 数据库的基本概念1.数据库管理系统:数据库管理系统(DBMS)是一种用于存储、检索和管理数据的计算机软件。
它提供了对数据的高效组织、存储、检索、更新和维护功能。
2.关系型数据库:关系型数据库是基于关系模型的数据库,采用表格形式存储数据,并通过SQL(结构化查询语言)进行操作。
Oracle 数据库是一种关系型数据库,具有强大的数据管理功能和高度的数据安全性。
3.Oracle 数据库的结构:Oracle 数据库由物理结构和逻辑结构组成。
物理结构包括数据库文件、数据块、表空间等;逻辑结构包括表、视图、索引等。
三、Oracle 数据库的安装与配置1.安装Oracle 数据库的前提条件:首先,需要确保计算机硬件满足Oracle 数据库的最低要求;其次,需要获取Oracle 数据库的安装文件,这些文件通常可以从Oracle 官网下载。
Oracle学习笔记

目录Oracle学习路线 (1)在windows XP之后的版本中安装Oracle10g的注意事项 (2)创建和删除临时表空间 (3)创建数据表空间 (4)3、创建用户并指定表空间 (4)4、给用户授予权限 (4)Oracle学习路线1、sql、pl/sql(网上有很多的视频,可以做一个简单的入手,然后看几本书,多做实验)作为oracle的基本功,需要大家对sql和plsql非常的熟悉。
特别是sql 里面的多表连接、子查询、各种新版本的函数,以及plsql里面的所有语法。
建议大家拿出足够的时间来研究这两块。
不要认为这是开发人员的工作,他也是DBA的重要工作,而且对DBA的要求更高,你不但能看懂,还要能够找出问题。
学些这方面知识的要点就是:多练、多思考。
2、Oracle管理(体系结构)(这一块一定要听课,而且是要听“大师”的课、多讨论)这是Oracle的难点,Orcle技术博大精深,主要的难点就集中在这里面。
包括Oracle的存储管理、对象管理、内存和进程、undo管理、初始化参数、数据字典视图、安全、latch和lock、权限和角色、资源调度、闪回、日志原理等。
学习这一块知识的时候,一个重点是:要知道原理和“根”,知道表面的东西没有任何意义。
知道原理以后,通过实验去证明,将原理总结出来。
这一块学习的好还是不好,直接决定了以后的一个备份恢复、优化、排错。
这一块虽然是研究管理,但是更加注重原理和体系结构的分析和解剖。
应该叫做“深入剖析Oracle体系结构”,多深都需要。
在这一部分的学习中,已经学习了很多优化的内容,在学习任何一个知识点的时候,我们都离不开对性能的分析。
3、备份恢复(听听课、看几本书,多做做实验、多讨论)有了第二部分的铺垫,这一章的学习相对有意思,前提是我们对Oracle的日志原理研究得较深,对oracle的内存和进程研究得较深。
策划一个完美和正确的备份计划和实施方案(具体要分析出原理),实施备份;对各种损坏进行恢复(还是要能够够分析出原理);另外可以做一些高难度的恢复实验(还是老话、要能够分析出原理)。
oracle 笔记

关于Oracle的学习笔记,可能包括以下几个重要部分:数据库创建和管理:创建用户和表空间。
以超级管理员的身份登录,创建表空间,创建用户,给用户授权,使用新用户进行查询测试。
数据定义语言(DDL)用于建立、修改、删除数据库对象,包括创建语句(CREATE)、修改语句(ALTER)、删除语句(DROP)。
例如,使用CREATE TABLE创建表,使用ALTER TABLE修改表,使用DROP TABLE删除表等。
数据库查询:数据查询语言(DQL)用于查询所需要的数据。
排序查询结果。
例如,使用SELECT语句查询员工信息,并按升序排序。
排序可使用NULLS FIRST和NULLS LAST来选择空的信息的位置。
字符串拼接。
通过“||”实现字符串的拼接。
例如,查询所有员工姓名并在后面加一个“a”。
当字符串拼接遇到空的时候,空会自动变成一个空字符串。
数据库数据操作:数据操作语言(DML)用于改变数据库数据,包括INSERT、UPDATE、DELETE三条语句。
使用DISTINCT去重。
例如,SELECT DISTINCT name, id FROM A,作用于多列。
数据库高级特性:使用PARTITION BY在保留全部数据的基础上,只对其中某些字段做分组排序。
虚拟表DUAL是一个虚表,虚拟表,是用来构成SELECT的语法规则,Oracle保证DUAL里面永远只有一条记录。
数据库控制和管理:数据控制语言(DCL)用于数据库的控制和管理。
事务控制语言(TCL)用于数据库事务的控制。
以上内容只是Oracle学习笔记的一部分,实际上Oracle数据库系统的学习还包括很多其他的内容,如索引管理、视图、存储过程、触发器等高级数据库对象的管理和使用,以及数据库性能优化、安全性管理等内容。
【通用文档】oracle学习笔记.doc

1、s qlload导入数据1.1、sql loader 的特点oracle自己带了很多的工具可以用来进行数据的迁移、备份和恢复等工作。
但是每个工具都有自己的特点。
比如说exp和imp可以对数据库中的数据进行导出和导出的工作,是一种很好的数据库备份和恢复的工具,因此主要用在数据库的热备份和恢复方面。
有着速度快,使用简单,快捷的优点;同时也有一些缺点,比如在不同版本数据库之间的导出、导入的过程之中,总会出现这样或者那样的问题,这个也许是oracle公司自己产品的兼容性的问题吧。
sql loader 工具却没有这方面的问题,它可以把一些以文本格式存放的数据顺利的导入到oracle数据库中,是一种在不同数据库之间进行数据迁移的非常方便而且通用的工具。
缺点就速度比较慢,另外对blob等类型的数据就有点麻烦了。
1.2、sql loader使用例子创建一个假日表a、insert,为缺省方式,在数据装载开始时要求表为空b、append,在表中追加新记录c、replace,删除旧记录,替换成新装载的记录d、truncate,同上1.4、执行命令将jrb.ctl文件和jrb0.dat文件放在e:\tem目录下arms/arms@armsdb这里数据库用户名:arms;密码:arms;数据库:armsdb;2、oracle对应用程序性能分析有的时候我们发现一个应用系统运行很慢,运行很慢主要是由于跟数据库有关,致使数据很长时间没有返回数据,这个时候我们可能去查oracle到底哪里有问题,是什么原因导致他运行非常慢。
其实很多时间都是由于程序人员写的sql执行效率非常低或者某个时间段访问量忽然猛增或者其他原因,那么我们如何定位到是哪一个SQL或是哪一个时间段有问题呢?因为如果我们定位到某个时间段比其他时间段cpu,内存都相当耗时,我们就可以查看我们应用系统在这个时间段做什么,从而分析出系统运行慢的原因;我们也可以分析某个sql的运行时间,有时一段sql跑上几个小时都没跑出来。
Oracle数据库学习笔记

Oracle数据库学习笔记1.oracle的特点?(选择记忆,理解)✓ORACLE7.X以来引入了共享SQL和多线索服务器体系结构。
这减少了ORACL E的资源占用,并增强了ORACLE的能力,使之在低档软硬件平台上用较少的资源就可以支持更多的用户,而在高档平台上可以支持成百上千个用户。
✓提供了基于角色(ROLE)分工的安全保密管理。
在数据库管理功能、完整性检查、安全性、一致性方面都有良好的表现。
✓支持大量多媒体数据,如二进制图形、声音、动画以及多维数据结构等。
✓提供了与第三代高级语言的接口软件PRO*系列,能在C,C++等主语言中嵌入S QL语句及过程化(PL/SQL)语句,对数据库中的数据进行操纵。
加上它有许多优秀的前台开发工具如POWER BUILD、SQL*FORMS、VISIA BASIC 等,可以快速开发生成基于客户端PC 平台的应用程序,并具有良好的移植性。
✓提供了新的分布式数据库能力。
可通过网络较方便地读写远端数据库里的数据,并有对称复制的技术。
支持各种分布式功能,特别是支持Internet应用。
✓功能强大,层次清晰,安全机制好,跨平台,数据操作,系统管理,安全性,集群技术,分布式应用,商业智能✓具有完整的数据管理功能。
✓作为一个应用开发环境,Oracle提供了一套界面友好、功能齐全的数据库开发工具。
✓Oracle使用PL/SQL语言执行各种操作,具有可开放性、可移植性、可伸缩性等功能。
✓可用性强✓可扩展性强✓数据安全性强✓稳定性强✓无范式要求,可根据实际系统需求构造数据库。
✓采用标准的SQL结构化查询语言。
✓具有丰富的开发工具,覆盖开发周期的各阶段。
✓支持大型数据库,数据类型支持数字、字符、大至4GB的二进制数据,为数据库的面向存储提供数据支持。
✓具有第四代语言的开发工具(SQL*formS、SQL*REPORTS、SQL*MENU等)。
✓具有字符界面和图形界面,易于开发。
✓通过SQL*DBA控制用户权限,提供数据保护功能,监控数据库的运行状态,调整数据缓冲区的大小。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MLDN魔乐科技_Oracle课堂笔记1.sqlplusw命令(窗口形式),sqlplusw不支持编辑,一般在编辑器(记事本)中编辑好了后拷贝进去执行,或用ed命令;2.descdesc [tablename];查看表结构3.show user查看当前用户4.select table_name from tabs显示当前用户下的表名;5.set linesizeset linesize [number];6.set pagesizeset pagesize [number];7.eded命令用来从sqlplusw中打开编辑器来编辑文件(文本文件);8.@执行sql文件@D:\a.txt;@d:\a;(a文件的扩展名为.sql)9.connconn username/pwd@实例名;10.sql标准,其功能:DML(数据操作语言),DDL(数据定义语言),DCL(数据控制语言)11.别名Oracle中指定列别名;(不要指定为中文);12.distinct去除重复记录;13.||字符串连接符;select "我的名字是:" || name from t_user;14.NOT NULL/IS NULL选择列值不为空的记录where collumname IS NOT NULL;相反IS NULL;15.BETWEEN…AND…WHERE COLUMENAME BETWEEN...AND...; 等价于>=,<=,如果是在时间之前,则需将时间''起来;16.大小写oracle中查询值是大小写区分的,但关键字不区分;17.InFieldName in (值1,值2,值3,...值n);NOT IN;18.Like在使用Like时常用的通配符:%,匹配任意长度内容,_,匹配一个长度内容;例:select * from emp where ENAME Like '_M%';表示第二个字母为M的名字.19.>,<,>=,<=,<>,!=用法20.order byOrder by语句,放在SQL语句最后;desc(从大到小)/asc(从小到大)(默认)21.单行函数字符/数值/日期/转换/通用函数;(1).字符:UPPER()变大写,LOWER()变小写,INITCAP()将单词第一个字母大写;字符长度LENGTH(),字符串截取SUBSTR(),字符串替换REPLACE()其中substr()的第二个参数即起始位置索引为0或1效果都是从第一个字符开始,负数是从右边开始;(2).数值:四舍五入ROUND(),截取TRUNC(),求模MOD();ROUND(23.45,2),TRUNC(23.45,-1),MOD(10,3);(3).日期:MONTHS_BETWEEN(),两个日期之间的月数;MONTHS_BETWEEN(DATE1,DATE2)ADD_MONTHS(),下月的今天;NEXT_DAY(),下一个的今天日期;LAST_DAY(), 给定日期的最后一天日期;(4).转换:TO_CHAR(),TO_NUMBER(),TO_DA TE();fm去除前导0,例如:to_char(sysdate,'fmyyyy-mm-dd') 得出结果2009-1-2(本应为2009-01-02).千位分隔符(格式字符用9表示),货币前缀($美元,L本地币种)to_char(123456,'$99,999')美元to_char(123456,'L99,999')本地币种(5).通用:如果有NULL类型数据参与运算,必需用NVL()转换成特定值再计算;如:NVL(filed1,'0')DECODE()函数,用于替换;DECODE(field/expression,1,"one",2,"two")表示如果field/expression如果是1的话,则替换为one,是2的话替换为two;22.ORACLE用户(1)超级管理员:sys/change_on_install;(2)管理员:system/manager;(3)普通用户:scott/tiger;23.左、右(外)连接默认左连接where a.field1(+) = b.field2"+"在左边表示右连接,在右边表示左连接cross join产生笛卡尔积;标准语法:select table1.*,table2.* from table1,table2 where table1.no=table2.no;24.sql1999select table1.*,table2.* from table1[cross join table2][natural join table2][join table2 using collumname][left|right|full outer join table2]on table1.collum1 = table2.collum2where 1=1group by 分组条件having 分组条件order by...注:where子句中不能带组函数;25.组函数(1).count();(2).max();(3).min();(4).sum();(5).avg();26.分组统计group by27.子查询示例:select * from emp where sal > (select sal from emp where empno = 7654)使用分类:单列(用得最多),单行,多行;子查询的三种操作:(1) in 在结果集之中;(2) any=any即=,>any 比最小值的要大的结果集,<any比值最大的要小的结果集;(3) all>all,比最大的值要大,<all,比最小的值要小;格式:where field1 > all(子查询)28.事务一个窗口一个会话,如没有提交互不影响;commit;提交;rollback;回滚;死锁,等待,一个session没有提交,其它session不能处理,要等待前一个session提交了再进行处理;29.子查询、外连接练习select e.job,count(e.empno)from emp e right outer join (select job from emp group by job having min(sal) > 1500) emon e.job = em.jobgroup by e.job;select e.job,count(e.empno)from emp e ,(select job from emp group by job having min(sal) > 1500) emwhere e.job(+) = em.jobgroup by e.job;select e.job,count(e.empno)from emp ewhere e.job in (select job from emp group by job having min(sal) > 1500)group by e.job;29.表的建立与删除Oracle中的主要数据类型;varchar,varchar2为255字符;number(m,n),---float,number(n)----intdateclob,blog 4G(1)复制表create table tablename as select * from emp;(2)复制表结构(加永不成立的where条件)create table tablename as select * from emp where 1==2;(3)创建表create table tablename (字段1 类型1 default '默认值',字段2 类型2,...字段n 类型n)(4)修改表删除表: drop table tablename;增加列:alter table tablename add(columnname 类型default '默认值',columnname 类型default '默认值')修改列:alter table tablename modify(columnname 类型default '默认值')修改列名:alter table rename column columnname to newcolumnname重命名表:rename tablename1 to tablename2;只能用于oracle截断表:truncate table tablename;与delete类似,但直接释放,不能回滚;30.约束的分类与使用作用:保证数据库中数据的完整性;分类:主键(PRIMARY KEY),唯一(UNIQUE),检查(CHECK),非空(NOT NULL),外键约束(FOREIGN KEY);其中,前四种约束为单表约束,外键约束为多表约束;通过constraint指定约束:constraint person_pid_pk PRIMARY KEY(pid)constraint person_sex_ck CHECK(sex in ('男','女'))外键:强制删除父表:一般是先删除子表,再删除父表,但技术上可以实现强制先删除父表(同时删除从表相关约束):DROP TABLE tablename CASCADE CONSTRAINT;(一般不使用)强制删除从表数据:删除父表数据时,从表相应有约束的记录也删除, 需在创建表约束时这样处理:CONSTRAINT person_book_pid_fk FOREIGN KEY(pid) REFERENCES persion(pid) ON DELETE CASCADE示例:CREATE TABLE T_PARENT(ID NUMBER(10) PRIMARY KEY NOT NULL,NAME V ARCHAR2(10));CREATE TABLE T_CHIRLD(ID NUMBER(10) PRIMARY KEY NOT NULL,NAME V ARCHAR2(10),PARENT_ID NUMBER(10),CONSTRAINT CHIRLD_PARENT_FK FOREIGN KEY(PARENT_ID) REFERENCES T_PARENT ON DELETE CASCADE);增加约束:ALTER TABLE tablename ADD CONSTRAINT 约束名PRIMARY KEY(pid);示例:alter table T_CHIRLDadd constraint CHIRLD_PARENT_FK foreign key (PARENT_ID)references T_PARENT (ID) on delete cascade;修改约束:ALTER TABLE tablename MODIFY CONSTRAINT 约束名PRIMARY KEY(pid);字段名_PK,字段名_UK,字段名_CK,字段名_NK,从表字段名_父表字段名_FK删除约束:ALTER TABLE tablename DROP CONSTRAINT 约束名;31.表的关联查询:并(UNION),交(INTERSECT),差(MINUS)UNION:将多个查询的结果组合到一个查询结果中,没有重复;UNION ALL:将多个查询的结果组合到一个查询结果中,可以有重复;INTERSECT:返回两个结果集的公共部分;MINUS:返回两个结果集的差值;(左边表减右边表)示例:select * from emp UNION select * from emp2;32.ROWNUM伪列的作用自动编号,存在于每一个查询中,使用情境:只想显示前五条记录,则只需加条件:ROWNUM <= 5;常用于分页操作如果想取得中间记录的数据,不能用ROWNUM(BETWEEN AND),只能用子查询:例:查出第五条到第十条记录;SELECT * FROM (SELECT ROWNUM rn,empno,ename,job FROM emp WHERE ROWNUM<=10) tempWHERE temp.rn>=5;33.序列的使用用途:用于自动增长;创建序列:CREATE SEQUENCE seqname[INCREMENT BY n][START WITH n] --START WITH默认从1开始;[{MAXV ALUE n|NOMAXV ALUE}][{MINV ALUE n|NOMINV ALUE}][{CYCLE|NOCYCEL}][{CACHE|NOCACHE}]示例:create sequence myseq;使用序列:insert into tablename (next,curr) values (myseq.nextval,myseq.currval);删除序列:DROP SEQUENCE seqname;34.视图创建语法:CREATE OR REPLACE VIEW 视图名称AS 子查询其中子查询是一个复杂的select语句视图创建好后,可以作为一张表来查询使用;以上创建的视图可以执行UPDA TE,且可将原表进行修改;但实际应用用,视图是只读的,可以需要在创建视图的时候加上以下参数:WITH CHECK OPTION 不能更新视图条件字段,但能更新其它非条件字段;WITH READ ONL Y 表示只读,不能更新;删除语法:DROP VIEW 视图名称;35.同义词,用户管理,权限分配与撤销,数据库的备份同义词(只适用于oracle):作用:通过同义词可访问不同用户下的表,例如,scott用户可以访问sys用户下的dual表;创建同义词:CREATE SYNONYM 同义词名称FOR 用户名.表名称;示例:create synonym emp for scott.emp;删除同义词:DROP SYNONYM 同义词名称;用户管理创建用户:CREATE USER 用户名IDENTIFIED BY 密码;为用户授权:GRANT 权限1,权限2,... TO 用户;示例将创建session的权限赋给testuser,以使得其可以连接到数据库:GRANT CREATE SESSION TO testuser;赋予角色给用户testuser:GRANT CONNECT,RESOURCE TO testuser;修改用户密码:ALTER USER 用户名IDENTIFIED BY 密码;使用户密码失效:ALTER USER 用户名PASSWORD EXPIRE;锁住用户:ALTER USER 用户名ACCOUNT LOCK;解锁用户:ALTER USER 用户名ACCOUNT UNLOCK;将某张表的读取,删除权限赋给用户testuser:GRANT SELECT,DELETE ON scott.emp TO testuser;回收权限:REVOKEREVOKE 权限ON 用户.表名称FROM 用户;示例:REVOKE SELECT,DELETE ON scott.emp FROM testuser;数据库的备份:导入导出命令EXP,IMP36.可变数组类似于嵌套表,一般开始过程中不用37.数据库设计范式第一范式:每一个字段不可再分;第二范式:实现多对多的关联;第三范式:实现一对多的关联;(用得最多90%以上的项目)注:以上三范式在设计数据库时仅作参考,数据库设计的维一原则是:表关联尽可能少,SQL 尽可能简单;37.嵌套表(ORACLE特有,使用复杂,一般实际开发中不使用)在一个表中还包含另一个子表; 先定义类型.。