SQL 知识量:22 - 44 - 129
索引用于排序数据以加快搜索和排序操作的速度。给数据添加索引就像制作字典,字典中的单词按照首字母进行了排序,因此查找速度会快很多。给一个或多个列定义索引,就可以保存其内容的一个排过序的列表,DBMS以查找字典的方式使用它,检索十分高效。
创建索引前,需要了解以下内容:
索引虽然改善了查询的效率,但会降低数据插入、修改和删除的性能,因为这些操作发生时,DBMS需要额外的资源维护索引表。
索引数据可能要占用大量的存储空间。
并非所有数据都适合建立索引。差异越大的数据越适合建立索引,反之,索引的作用越小。
索引用于数据过滤和数据排序。通常用于排序的数据适合建立索引。
可以在索引中定义多个列。
使用create index语句创建索引,例如:给people表的name列建立索引。
create index name_index on people(name);
以上SQL语句中,name_index是索引的名称,on用于指定被索引的表。
注意:索引的效率会随表数据的增减、更新而变化,最好定期对索引进行检查和调整。
触发器是特殊的存储过程,它在特定的数据库活动发生时自动执行,就像一个守夜人一样,发生预想的事情时,就按预案办。
触发器可以与特定表上的insert、update和delete操作(或组合)相关联。根据DBMS不同,触发器可在特定操作执行之前或之后执行。但是,触发器只与单个表相关联。
触发器内的代码具有以下数据访问权:
insert操作中的所有新数据。
update操作中的所有新数据和旧数据。
delete操作中删除的数据。
触发器的主要用途包括:
保证数据一致。
基于某个表的变动在其他表上执行动作。
进行额外的验证并根据需要回退数据。
计算需要进行计算的列的值或更新时间戳。
注意:
不同的DBMS的触发器语法差异很大,使用时应当参考有关文档。
一般情况下,约束的处理速度比触发器更快,因此,应当尽可能使用约束。
任何安全系统的基础都是用户授权和身份确认。通过这种方法保证有权用户执行他可以执行的操作。
为实现这种能力,有的DBMS结合使用了操作系统的安全措施;有的维护自己的用户及密码列表;有的结合使用提供外部目录服务的服务器。
通常需要保护的操作有:
对数据库管理功能(创建、更改、删除表等)的访问。
对特定数据库或表的访问。
访问的类型(只读、对特定列的访问等)。
仅通过视图或存储过程对表进行访问。
创建多层次的安全措施,从而允许多种基于登录的访问和控制。
限制管理用户账号的能力。
数据库的安全性使用SQL的grant和revoke语句来管理。DBMS提供的交互式管理实用程序,在内部也是使用grant和revoke语句。
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6