Oracle 11g SQL基础:缓存序列值与查询操作

需积分: 10 16 下载量 17 浏览量 更新于2024-08-15 收藏 1.96MB PPT 举报
"缓存序列值-boobooke 小布11g sql基础 ppt" 在Oracle 11g数据库中,缓存序列值是一个优化策略,旨在提高数据库操作的性能。序列是数据库用来生成唯一标识符(如主键)的有序数值流。当设置为缓存模式时,数据库会一次性预先生成并存储一定数量的序列值,而不是每次需要时才生成,从而减少了对数据库系统的I/O操作,提升了性能。 然而,缓存序列值可能导致序列值间的间隙(gap)。这可能发生在以下几种情况: 1. 发生rollback:如果事务中使用了序列值但随后被回滚,这些已分配但未使用的值将不会被重新利用,导致间隙。 2. 系统异常关闭:在非正常关闭后,未写入数据库的序列值可能会丢失,再次启动时,序列将继续从上次已知的最高值开始,产生间隙。 3. 序列值被用于另一个表:如果一个序列值被分配给一个表,但之后该操作被取消或事务失败,这个值也不会返回到序列的可用池中,同样会产生间隙。 SQL语言是用于管理关系数据库的标准语言,它包括五种主要类型: 1. 查询(QUERY) - 使用SELECT语句,用于检索数据。 2. 数据处理(DML) - INSERT, UPDATE, DELETE操作,分别用于插入新数据、更新现有数据和删除数据。 3. 数据定义(DDL) - CREATE, ALTER, DROP, RENAME, TRUNCATE,用于创建、修改和删除数据库对象。 4. 事务控制(TC) - COMMIT, ROLLBACK, SAVEPOINT,管理数据库事务的提交、回滚和保存点。 5. 数据控制(DCL) - GRANT, REVOKE,用于权限的授予和撤销。 在SELECT语句中,你可以选择查询特定的列或所有列,通过FROM子句指定源表。例如,`SELECT * FROM departments` 查询`departments`表的所有列,而`SELECT department_id, location_id FROM departments`仅查询指定的两列。还可以通过JOIN操作联合不同表的数据。 在SQL中,可以对数值进行四则运算,如在SELECT语句中计算员工薪水的12倍加100。同时,NULL值是特殊的,表示未知或未定义的值,它不等于0或空字符串,并且与NULL值的任何运算结果都是NULL。 定义列别名(Column Alias)可以简化列名或使其更具描述性,如`SELECT last_name AS "Employee Name"`。别名可以通过空格或"AS"关键字指定,注意在某些情况下,如果别名包含特殊字符或区分大小写,需要用双引号括起。