Oracle数据库学习笔记.doc

上传人:飞****2 文档编号:51934652 上传时间:2022-10-20 格式:DOC 页数:33 大小:82KB
返回 下载 相关 举报
Oracle数据库学习笔记.doc_第1页
第1页 / 共33页
Oracle数据库学习笔记.doc_第2页
第2页 / 共33页
点击查看更多>>
资源描述

《Oracle数据库学习笔记.doc》由会员分享,可在线阅读,更多相关《Oracle数据库学习笔记.doc(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第一章 使用SQL select语句检索数据功能:1、 选择2、 映射3、 连接语法:SELECT *|DISTINCT column|expression alias,.FROM table;算数表达式运算符:加减乘除,优先级和算数运算一致定义空值:它是一个没有意义的值,我们称为NULL注意:1、不等同于0或者空格2、包含空值的运算结果还是空值别名:作用:1、 重命名列标题2、 有助于计算3、 紧跟在列名后(可以加AS关键字)4、 如果别名需要包含特殊字符或区分大小写,那么需要加上双引号连接运算符:|用于连接字符串用的引号运算符:q去除重复行:Distinct关键字Describe命令显示表

2、结构语法:describe 第二章 对数据进行限制和排序对所选的行进行限制:使用where子句,语法:SELECT *|DISTINCT column|expression alias,.FROM tableWHERE condition(s);注:where子句跟在from子句之后Where子句中的字符串和日期常量,使用注意事项:1、 必须加上单引号;2、 字符区分大小写,日期区分格式;3、 日期的默认格式DD-MON-RR比较运算符:=!between.and.inlikeis null逻辑运算符:notandor使用order by子句进行排序:升序:asc 默认的,可以不写降序:des

3、c注:order by子句位于select语句最后替代变量:使用&或&临时存储值到一个变量中。使用define命令:1、用于创建变量,并赋值;2、undefine删除define定义的变量;使用verify命令:用于是否显示替代变量前后值得一个开关。启用:set verify on关闭:set verify off显示:show verify第三章 使用单行函数定制输出Sql函数:通过向SQL函数中输入变量,然后经过SQL函数处理,得出输出常量两种类型:1、 单行函数(数字函数、字符函数、日期函数)2、 多行函数字符函数:英文字母大小写转换:lowerupperinitcap字符处理:conc

4、at -|substrlengthinstrlpad|rpadtrimreplace数字函数:roundtruncmod处理日期:RR日期格式,可以表示前一个世纪、当前世纪、下一个世纪的时间。注意RR和YY的区别。日期函数:Months_betweenAdd_monthsNext_dayLast_day第4章 使用转换函数和条件表达式数据类型转换:显式(to_char to_number to_date)隐式(字符-数字 字符 SELECT MAX(AVG(salary) 2 FROM employees 3 GROUP BY department_id;MAX(AVG(SALARY)- 19

5、333.3333第6章 使用联接显示多个表中的数据联接的类型:1、 自然联接Natural join子句Using子句On子句2、 外连接左连接又连接全连接3、 交叉连接连接的语法:SELECT table1.column, table2.columnFROM table1NATURAL JOIN table2 |JOIN table2 USING (column_name) |JOIN table2ON (table1.column_name = table2.column_name)|LEFT|RIGHT|FULL OUTER JOIN table2ON (table1.column_na

6、me = table2.column_name)|CROSS JOIN table2;限定不确定的列名:1、 使用表前缀限定在多个表中都存在的列名;2、 使用表前缀可以提高查询的性能;3、 表前缀可以使用表的别名;4、 使用列别名可以区分不同表中相同名称的列;自然连接:注:使用AND 子句或WHERE 子句可应用附加条件自连接:SQL select e.LAST_NAME emp_name,e.MANAGER_ID,m.LAST_NAME mgr_name 2 from employees e,employees m 3 where e.MANAGER_ID=m.EMPLOYEE_ID 4 a

7、nd e.department_id=20;EMP_NAME MANAGER_ID MGR_NAME- - -Hartstein 100 KingFay 201 Hartstein非等值连接:SQL select ename,sal,grade 2 from emp,salgrade 3 where emp.sal between salgrade.LOSAL and salgrade.HISAL;外连接:左连接:右连接:全连接:笛卡尔积:(交叉连接) 注:如果要避免生成笛卡尔积,请始终包括有效的联接条件第7章 使用子查询来解决查询子查询的语法:SELECT select_listFROM t

8、ableWHERE expr operator(SELECT select_listFROM table);注:1、 先执行子查询,再执行主查询;2、 主查询使用子查询的结果;使用子查询的准则:1、 子查询必须要放在括号中;2、 一般子查询放在比较操作符的右侧;3、 单行子查询使用单行比较操作符,多行子查询使用多行比较操作符;子查询类型:1、 单行子查询;2、 多行子查询;单行比较操作符:=多行比较操作符:InAnyAll注:any和all需要和单行比较操作符一起使用1、any 大于列表中的最小值3、all 大于列表中的最大值使用exists运算符:可以用in替代子查询中的空值:如果not i

9、n(子查询)中的子查询包含空值,那么主查询查询不出任何行。第8章 使用集合运算符集合运算符:Union all:并集(包含重复的行)Union:并集(去除重复的行)Intersect:交集Minus:差集准则:1、 每个子集的select语句列表达式的数量必须一致;2、 每个子集的select语句列表达式的类型必须一致;3、 可以使用括号改变执行的顺序;4、 Order by子集只能出现在集合运算语句的末尾;5、 除union all外,重复的行会被去除;6、 第一个查询子集的列名将显示在结果中;7、 除union all外,查询出的结果按第一列升序排列;匹配select语句:主要是为了确保所

10、有子集查询的列个数和列类型保持一致,否则不能进行集合运算。集合运算中使用order by子句:注:1、 order by子句只能在集合运算的末尾出现一次;2、 不能有多个order by子句;3、 Order by子句只识别第一个查询中的列名或列别名;4、 除union all以外,默认是按第一个查询中的第一列进行升序排列;第9章 处理数据DML语句:对表进行增、删、改的操作。事务:由构成一个逻辑操作单元的DML语句组成。Insert语句:语法:INSERT INTO table (column , column.) VALUES (value , value.);注:该语法一次只能插入一行数

11、据。插入带有空值的行:可以采用两种方式:1、 在insert into子句中定义只插入值得列名;2、 在values子句中输入null值,确保列数和表一致;插入特殊值:1、Sysdate返回数据库服务器当前的日期和时间的内部函数。2、或者使用转换函数3、使用替代变量从其它表中复制行数据:使用带有select子查询的insert语句进行复制。语法:insert into select .from where ;注:1、 没有values关键字;2、 Insert子句中的列数必须和select子句中的列数匹配,数据类型也需要一致;3、 select子查询的行将都被插入到insert子句中的表里面;

12、更改表中的数据:(update)语法:UPDATE tableSET column = value , column = value, . WHERE condition;可以使用子查询更新表中的列:注:子查询是一个单行子查询。从表中删除已经存在的行数据:(delete和truncate)语法:(delete)DELETE FROM tableWHERE condition;语法:(truncate)TRUNCATE TABLE table_name;注:1、 truncate是删除表中所有的行,并保留表的结构;2、 truncate是DDL,而不是一个DML语句;数据库事务处理:事务处理由以

13、下语句之一组成:1、 DML语句;insert 、update 、delete 、merge2、 DDL语句;create 、drop、 alter、 truncate3、 DCL语句;grant 、revoke事务的开始和结束:开始:事务从执行第一条DML语句开始。结束:1、 commit和rollback2、 执行DDL或DCL语句,隐式提交3、 用户退出SQLPLUS,自动提交4、 系统崩溃,自动回滚Commit和rollback语句的优点:1、 确保数据的一致性;2、 在使改变变为永久改变之前预览数据;3、 按逻辑关系对相关操作进行分组;显示的事务控制:CommitRollbackSa

14、vepoint:保留一个还原点,从而可以使事务回退到指定的还原点,而不是全部回退。回退到指定的标记:rollback to savepoint ;执行commit和rollback之前的数据状态:1、 可以将数据还原到原来的状态;2、 当前用户可以查到DML操作的结果;3、 其它用户不能查看到DML操作的结果;4、 手影响的行数据被锁定,其它会话不能修改;执行commit之后的数据状态:1、 数据更改永久保存到数据库中;2、 已改写以前的数据状态;3、 所有会话都能看到DML操作的结果;4、 受影响行的锁被释放,其它会话可以对改行进行DML操作;5、 所有savepoint保存点都被清除;执行

15、rollback之后的数据状态:1、 数据更改被取消;2、 数据回退到事务开始以前的状态;3、 受影响行的锁也会被释放;读一致性:1、读一致性可以确保用户所看到的数据始终是一致的。2、一个用户进行更改不会与另一个用户更改相冲突;3、读写不冲突,写写是冲突的;Select语句中的for update操作1、 可以手动锁定表中查询出来的数据行;2、 仅在发出rollback和commit才释放锁;3、 如果select出来的某些行已经被其它会话锁定,那么selectfor update需要等待其它会话释放锁;可以对多个表连接的select语句使用for update:1、 它会锁定连接的所有表的所

16、有行;2、 可以使用for update of 来限定修改的具体列,这是该会话只是锁定了存在该列的表中所有的数据。第10章 使用DDL语句创建和管理表数据库对象:1、 表table2、 视图view3、 序列sequence4、 索引index5、 同义词synonym表名和列名的命名规则:1、 必须以字母开头;2、 长度是1-30个字符;3、 只能包含A-Z,a-z,0-9,_,$,#;4、 不能和本用户下的其它对象重名;5、 不能使Oracle数据库的保留关键字;创建表:create table用户必须具有以下权限:1、 create table2、 拥有存储权限语法:CREATE TAB

17、LE schema.table(column datatype DEFAULT expr, .);引用另一个用户下的表:Select * from schema.;1、 在本用户方案中没有其它用户创建的表;2、 应该使用表所有者的名称作为前缀来查询;Default选项:指定表中列的默认值;1、 文字、表达式、函数都是合法的;2、 其它列名或伪列是非法的;3、 默认值的数据类型必须和列的定义一致;Desc 显示表结构字段的数据类型:Varchar2(size)Char(size)Number(p,s)datelong-2Gclob4Graw、long raw-二进制的数据,2Gblob-二进制数

18、据4Gbfile-存储外部文件中的二进制数据rowed-表中行数据唯一的物理地址,16进制编码日期时间数据类型:timestampinterval year to monthinterval day to second约束条件:常见的约束类型:Not nulluniqueprimary keyforeign keycheck注:1、 约束可以手工命名,也可以由oracle自动命名,自动命名的格式SYS_Cnnnnnn2、 约束可以在创建表时或创建表后去定义3、 如果约束在创建表时定义,那么可以在列级别或表级别去定义4、 约束定义以后,我们可以在数据库数据字典中查询约束定义约束语法:CREATE

19、 TABLE schema.table(column datatype DEFAULT expr column_constraint,-列级别定义. table_constraint,.);-表级别定义Not null约束:确保列不为空值。Unique约束:唯一键,确保列值不重复Primary key约束:主键,确保主键值唯一、且不为空Foreign key约束:外键,键值是引用的另一个表的主键值ON DELETE CASCADE:删除父表中的行时还删除子表中的相关行ON DELETE SET NULL:将相关外键值转换为空值Check约束:定义列每行数据值都必须满足的一个条件。使用子查询创建

20、表:Create table AsSelect子查询;Alter table语句:1、 添加新列2、 修改列3、 定义列的默认值4、 删除列5、 重命名列6、 将表修改为只读删除表:Drop table purge;第11章 创建其它方案对象视图的优点:简单视图和复杂视图创建视图的语法:CREATE OR REPLACE FORCE|NOFORCE VIEW view(alias, alias.)AS subqueryWITH CHECK OPTION CONSTRAINT constraintWITH READ ONLY CONSTRAINT constraint;视图DML操作的规则:1、

21、 删除行的规则2、 更新行的规则3、 插入行的规则使用with check option子句:定义了一个约束,视图做DML操作时,不能违反select子查询中where条件的定义。With read only左右:使视图变为只读,不能对视图做任何的DML操作。删除视图:Drop view ;注:删除视图,不会删除视图基表上的数据。序列:sequence创建的语法:CREATE SEQUENCE sequenceINCREMENT BY nSTART WITH nMAXVALUE n | NOMAXVALUEMINVALUE n | NOMINVALUECYCLE | NOCYCLECACHE

22、n | NOCACHE;Nextval和currval两个伪列,分别表示序列的下一个值和当前值。修改序列:Alter sequence更改增量值、最大值、最小值、循环选项或高速缓存选项。删除序列:Drop sequence索引index:1、 是一个对象;2、 通过索引加快select查询数据的速度;3、 可以减少磁盘的I/O;4、 与建立的索引表无关;5、 索引是由oracle自动使用和维护的;创建的方式:1、 自动创建;(primary key和unique key)2、 手动创建;手动创建索引的语法:CREATE UNIQUEBITMAPINDEX indexON table (column, column.);删除索引:Drop index ;注:删除索引,需要时索引的拥有者或者具有drop any index权限。同义词synonmy:1、 方便的引用其他用户的对象;2、 给名称冗长的对象一个别名;语法:CREATE PUBLIC SYNONYM synonymFOR object;删除:Drop public synonym ;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁