1.序列
- create sequence 序列名; --创建序列
- drop sequence 序列名; --删除序列
- select 序列名.nextval from dual; --访问序列的下一个值
- select 序列名.currval from dual; --访问序列的当前值
- insert into 表名(字段) values(序列名.nextval,执行语句); --添加数据时使用序列
- alter sequence 序列名 属性; --修改序列
注:修改限制条件:不能修改序列的初始值。最小值不能大于当前值。最大值不能小于当前值。
序列属性 | ||
序号 | 属性 | 说明 |
1 | start with 值 | 初始值,升序默认1,降序默认-1 |
2 | increment by 值 | 步长,每次增长数 |
3 | maxvalue 值 | 序列最大值 |
4 | nomaxvalue | 最大值的默认选项,升序:1027,降序默认:-1。 |
5 | minvalue 值 | 序列最小值 |
6 | nominvalue | 最小值的默认选项,升序:1,降序默认:-1026 |
7 | cycle | 升序达到最大值后,从最小值重新开始。降序序列,达到最小值后,从最大值重新开始 |
8 | nocycle | 不重新开始,序列达到最大值或最小值报错,默认创建主键序列时使用 |
9 | cache: 值 | 根据序列规则预生成一组序列号,预存在缓存中,当使用序列号时,可更快的响应,序列号用完时,生成进行预存,可提高生成序列号的效率,默认会生产20个序列号 |
10 | nocache | 不预先在内存中生成序列号 |
2.索引
- select * from dba_indexes --查询全部索引视图
- select * from user_indexes --选择性视图。 注:比较唯一键的数量和表中的行数,就可以判断索引的选择性。选择性越高,索引返回的数据就越少。
- 分区索引 ,常用视图:
- select * from user_part_tables;--查看用户分区表
- select * from user_part_indexes;--查看分用户区索引
- select * from 表名 partition(分区名);--查询分区下数据
- create 属性 index 索引名 on 表名(列);--创建索引
- 属性:①unique:唯一索引,值为唯一;②reverse --反转索引,在表名后面。
- create index 索引名 on 表名(函数(列));--函数索引
- create index 索引名 on 表名(字段)local;--本地索引
- partition by range(字段)( partition 分区名 values less than (进区条件)); --对数据进行范围分区
- 会限制索引的操作:
1)使用不等于操作符,查询语句会倔强的对全表进行扫描,索引不生效。
2)使用is null或is not null索引不生效,位图索引除外。在建表时,应把需要索引的列设成not null。
3)如不使用函数索引,那么where子句中对存在索引的列使用函数时,索引不生效。
4)使用不匹配的数据类型,索引不生效。
注:索引可以提高查询的效率,但会降低增删改的效率。数据多时使用,索引是以rowid物理地址进行快速定位,表的主键和包含唯一约束的列自动创建索引。在经常使用在where子句中的列上面创建索引,加快条件的判断速度。
3.表空间
- create tablespace 空间名称 datafile 文件名 size 内存M extent management local uniform size 统一内存大小M --创建表空间
- alter tablespace 分空间名 add datafile 文件名 size xG; --添加表空间分空间内容
- 系统表空间:存放系统数据,名称:system。
- 临时表空间:存放数据排序结果,名称:tmep。
- 自定义空间:通过 create tablespace命令创建表空间
注:数据都在数据文件中存储,而数据文件大小受操作系统限制,并且过大的数据文件对数据的存取性能影响非常大。一个数据文件只能属于一个表空间。一个表空间可以拥有多个数据文件。
4.同义词
- 同义词就是数据库对象可以是表,视图序列等;
- 用户.表名 ;--系统用户操作其他用户信息;
- create synonym 同义词名 for 用户.表名 --赋予私有同义词
- create or replace public synonym 同义词名 for用户.表名 --系统管理员可赋予公共同义词,一般不用public
- drop synonym 同义词名; --删除私有同义词
- drop public synonym同义词名; --删除共有同义词
- or replace;--如果名称存在,用新的名称代替旧的名称
注:当一个用户赋予同义词后,这个表可以被其他用户以这个表的同义词调用。想要访问一个用户的同义词,要么被系统管理员赋予权限,要么被被这个用户赋予权限。一个同义词是一个数据库对象。
如果一个用户有权限访问其他用户对象时,就可以使用全称来访问。