SQL基础学习笔记(五)—序列、索引、同义词

常见的数据库对象

表:基本的数据存储集合,由行和列组成

视图:从表中抽出逻辑上相关的数据集合

序列:提供有规律的数值

索引:提高查询效率

同义词:给对象起别名

(索引和同义词了解即可)

序列sequences

可供多个用户用来产生唯一数值的数据库对象

自动提供唯一的数值

共享对象

主要用于提供主键值

将序列值装入内存可以提高访问效率

如何和创建序列

CREATE SEQUENCE sequence
[INCREMENT BY n]  --每次增长的数值
[START WITH n]    --从哪个值开始
[{MAXVALUE n | NOMAXVALUE}]
[{MINVALUE n | NOMINVALUE}]
[{CYCLE | NOCYCLE}]     --是否需要循环
[{CACHE n | NOCACHE}];  --是否缓存登录

序列的应用:

比如在校大学生每个人都会有唯一且不重复的学号,既然每个人都有,那么就没有必要每个人的信息都insert填写,这时就可以使用序列来实现

所以用序列来充当主键值

创建序列

create sequence empseq
increment by 1
start with 1
maxvalue 10
cycle --循环
nocache--不需要缓存登陆

查看序列

select empseq.nextval from dual;
select empseq.currval from dual;

注意要先使用nextval

创建一个空表

create table emp01
as
select employee_id , last_name , salary
from employees
where 1 = 2

添加数据

insert into emp01
values(1,'a',2000)

使用序列

insert into emp01
values(empseq.nextval,'a',2000)

每次就不需要再填写employee_id的值了

修改序列

alter sequence empseq
increment by 2
nocycle

序列的修改除了初始值都可以用alter,初始值只能通过删除序列后重建序列的方法实现

将序列值装入内存可提高访问效率

序列在下列情况下出现裂缝:

回滚

系统异常

多个表同时使用同一序列   ->emp1使用empseq序列得到的主键值是3,emp2也使用empseq序列得到的主键值是4,那emp1再使用empseq得到的值就是5,这就出现裂缝

如果不将序列的值装入内存(NOCACHE), 可使用表 USER_SEQUENCES 查看序列当前的有效值

删除序列

drop sequence empseq;

索引:

一种独立于表的模式对象, 可以存储在与表不同的磁盘或表空间

索引被删除或损坏, 不会对表产生影响, 其影响的只是查询的速度

索引一旦建立, Oracle 管理系统会对其进行自动维护, 而且由 Oracle 管理系统决定何时使用索引。用户不用在查询语句中指定使用哪个索引

在删除一个表时,所有基于该表的索引会自动被删除

通过指针加速 Oracle 服务器的查询速度

通过快速定位数据的方法,减少磁盘 I/O

自动创建: 在定义 PRIMARY KEY 或 UNIQUE 约束后系统自动在相应的列上创建唯一性索引

手动创建: 用户可以在其它列上创建非唯一的索引,以加速查询

create index emp01_id_ix
on emp01(employee_id)

删除索引:

drop index emp01_id_ix

什么时候创建索引?

以下情况可以创建索引:

列中数据值分布范围很广

列经常在 WHERE 子句或连接条件中出现

表经常被访问而且数据量很大 ,访问的数据大概占数据总量的2%到4%

什么时候不要创建索引?

下列情况不要创建索引:

表很小

列不经常作为连接条件或出现在WHERE子句中

查询的数据大于2%到4%

表经常更新

同义词-synonym

使用同义词访问相同的对象:

方便访问其它用户的对象

缩短对象名字的长度

CREATE SYNONYM e FOR employees;
select * from e;
时间: 2024-10-20 11:16:55

SQL基础学习笔记(五)—序列、索引、同义词的相关文章

SQL基础学习笔记(一)

感觉SQL,学的云里雾里的,整理一下笔记吧. SQL语言分为三种: DML: Data Manipulation Language 数据操纵语言 DDL:  Data Definition Language 数据定义语言 DCL:  Data Control Language 数据控制语言 select * (表示查询表中所有的列 ) from employees; select employee_id , last_name,email from employees;(查询指定) SELECT

SQL基础学习笔记(三)—约束

约束: 一.创建表时,定义约束 create table emp2( id number(10) constraint emp2_id_nn not null, name varchar2(20) not null, salary number(10,2) ) constraint emp2_id_nn 给约束起个名增加阅读性,不写也行,会自动加上sys_XXXX 作用范围: ①列级约束只能作用在一个列上 ②表级约束可以作用在多个列上(当然表级约束也可以作用在一个列上) 定义方式:列约束必须跟在

SQL基础学习笔记(二)

向表中插入一条数据 <span style="font-family:KaiTi_GB2312;font-size:18px;"><strong>create table emp1 as select employee_id , last_name , hire_date , salary from employees where 1 = 2</strong></span> 需要注意的是,插入的数据,必须和表中数据种类,一一对应 <

Java基础学习笔记五 Java基础语法之面向对象

面向对象 理解什么是面向过程.面向对象 面向过程与面向对象都是我们编程中,编写程序的一种思维方式.面向过程的程序设计方式,是遇到一件事时,思考“我该怎么做”,然后一步步实现的过程.例如:公司打扫卫生(擦玻璃.扫地.拖地.倒垃圾等),按照面向过程的程序设计方式会思考“打扫卫生我该怎么做,然后一件件的完成”,最后把公司卫生打扫干净了.面向对象的程序设计方式,是遇到一件事时,思考“我该让谁来做”,然后那个“谁”就是对象,他要怎么做这件事是他自己的事,反正最后一群对象合力能把事就好就行了.例如,公司打扫

SQL基础学习笔记(四)—视图

视图 (view): 视图的作用就是当一个表中的数据并不想对成员全部开放,只针对不同权限的用户开放不同的数据部分,同子图一样,但是子图的修改,父图并 不受影响,而视图,解决了这一问题 依赖于某表创建一个视图 create view empview as select employee_id id, last_name name, salary sal from employees where department_id = 80 更改数据 update empview set salary =

JSP的范围-作用域(web基础学习笔记五)

JSP的范围(作用域) 在JSP页面中的对象,包括用户创建的对象如JavaBean,都有一个范围属性,这个范围也被叫做“作用域”.范围定义了在什么时间内,在哪一个JSP页面中可以访问这些对象.例如,session对象在会话期间内,可以在多个页面被访问.Application对象在整个Web应用的整个生命周期范围内都可以被访问.在JSP中,有4种范围.那就是page范围.request范围.session范围和application范围 page范围 具有page范围的对象被绑定到javax.se

python基础教程_学习笔记:序列-1

序列 数据结构:通过某种方式组织在一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其他数据结构. python中,最基本的数据结构是序列. 序列中的每个元素被分配一个序号--即元素的位置,也称为索引.第一个索引是0,第二个是1,以此类推. 序列概览 python包含6种内建的序列:列表.元组.字符串.Unicode字符串.buffer对象和xrange对象. 列表和元组的主要区别在于,列表可以修改,元组不能. 使用后者的理由通常是技术性的,它与python内部的运作方式有关.这也

计算机网络基础学习笔记——理论

历史:第一代:50年代:(多台)终端(terminal)-->计算机(host) 缺点:1.主机负荷重,效率低.  2.终端速率低,线路利用低,费用高. 60年代:通信控制处理机CCP(communication control processer)或FET(front end processor)    集中器.第二代:60年代末:计算机--计算机   1969年,美国国防部国防高级研究计划署(简称ARPA Advanced Research Project Agency)试验.   1972

数据结构与算法基础学习笔记

*********************************************            ---算法与数据机结构--- 数据结构:由于计算机技术的发展,需要处理的对象不再是纯粹的数值,还有像字符,表,图像等具有一定结构的数据,需要用好的算法来处理这些数据. 我们把现实中大量而又复杂的问题以特定的数据类型的特定的存储结构保存到主存储器中,以及在此基础上为实现某个功能而执行的相应操作(查找排序),这个相应的操作也叫算法. 数据结构 = 个体 +个体的关系算法 =对存储数据的操