数据库七-序列 索引 约束

序列:

序列也是数据库对象之一,作用是生成一系列数字。系列常用于为某张表的主键字段提供值使用。

创建序列

CREATE SEQUENCE seq_emp_id 

    START WITH 1

    INCREMENT BY 1;

序列支持两个伪列:

NEXTVAL:获取序列下一个值。

若是新创建的序列,那么第一次调用返回的是START WITH指定的值,以后每次调用都会得到当前序列值加上步长后的数字。

NEXTVAL会导致序列发生步进,且序列不能回退。


CURRVAL:获取序列当前值,即:最后一次调用NEXTVAL后得到的值,CURRVAL不会导致步进。但是新创建的序列至少调用一次NEXTVAL后才可以使用CURRVAL;


删除序列:

DROP SEQUENCE seq_emp_id;



索引:

索引是数据库对象之一。索引是为了提高查询效率。

索引的统计与应用是数据库自动完成的,只要数据库认为可以使用某个已创建的索引时就会自动应用。


创建索引:

在EMP表的ENAME列上建立索引?

CREATE INDEX idx_emp_ename ON emp(ename);

----复合索引---

复合索引也叫多列索引,是基于多个列的索引

-如果经常在ORDER BY 子句中使用job和sal作为排序依据,可以建立复合索引:

CREATE INDEX idx_emp_jon_sal ON emp(job,sal);

-当做下面的查询时,会自动应用索引idx_emp_job_sal?

SELECT empno, ename, sal, job FROM emp ORDER BY job,sal;


创建基于函数的索引:

-如果需要在emp表的ename列上执行大小写无关搜索,可以在此列上建立一个基于UPPER函数的索引;

CREATE INDEX emp_ename_upper_idx ON emp(UPPER(ename));

-当做下面的查询时,会自动应用刚刚建立的索引:

SELECT *FROM emp WHERE UPPER(ename) = 'KING';


修改和删除索引:

--如果经常在索引列上执行DML操作,需要定期重建索引,提高索引的空间利用率:

 ALTER INDEX index_name REBUILD;

--重建索引idx_emp_ename

 ALTER INDEX idx_emp_ename REBUILD;


--当一个表上有不合理的索引,会导致操作性能下降,删除索引的语法:

 DROP INDEX index_name;

--删除索引idx_emp_ename

 DROP INDEX idx_emp_ename;


合理使用索引提升查询效率:

-为经常出现在WHERE子句中的列创建索引。

-为经常出现在ORDER BY、DESTINCT后面的字段建立索引。如果建立的是复合索引,索引的字段顺序要和这些关键字后面的字段顺序一致。

-为经常作为表的连接条件的列上创建索引。

-不要在经常做DML操作的表上建立索引。

-不要在小表上建立索引。

-限制表上的索引数目,索引并不是越多越好。

-删除很少被使用的、不合理的索引。


约束的类型:

--约束条件包括:

    -非空约束 NOT NULL

     -唯一性约束  UNIQUE

              可以保证表中的该字段的值,任何一条记录都不可以重复,NULL除外。

添加唯一性约束??

-在建表之后增加唯一性约束条件:

ALTER TABLE employee ADD CONSTRAINT employee_name_uk UNIQUE(name);

    -主键约束:

            主键约束条件从功能上看相当于非空且唯一的组合。

            主键字段可以是单字段或多字段组合,即:在主键约束下的单字段或者多字段组合上不允许有空值,也不允许有重复值。

             主键可以用来在表中唯一的确定一行数据

             一个表上只允许建立一个主键,而其他约束条件则没有明确的个数限制。

-主键选取的原则:

       主键应是对系统无意义的数据。

       永远不要更新主键,让主键除了唯一标识一行之外,再无其他用途。

     主键不应包含动态变化的数据,如时间戳。

       主键应自动生成,不要人为干预,以免使它带有除了唯一标识一行以外的意义。

       主键尽量建立在单列上。

     -外键约束:

                外键约束条件定义在两个表的字段或一个表的两个字段上,用于保证相关两个字段的关系。

      -检查约束:

        







猜你喜欢

转载自blog.csdn.net/nishino_shou/article/details/79936139