1.使用索引
在实际应用中,为了加快查询的效率,都会为数据表创建适当的索引。索引就是一个指向数据表中数据的指针。通过为数据表建立适当的索引可以提高SQL语句对数据表的访问速度。
索引的分类
索引主要可以分为唯一索引、主索引、单列索引、复合索引以及聚簇索引等,下面分别来介绍一下这几种索引。
唯一索引:在数据表中使用UNIQUE关键字可以为一个数据列定义一个唯一索引。唯一索引中每一个索引值只对应数据表中的一条记录,它保证了数据列中记录的唯一性。如果在向数据表中插入一条记录时,数据库会对要插入的这条记录进行检查,如果发现该条记录中的值在定义了唯一索引的列中出现过,那么数据库管理系统就不会将这条记录插入到数据表中。一般在为列创建唯一约束后,数据库会为该列建立一个唯一索引,其索引名与约束名是相同的。
主索引:在数据表中使用PRIMARY KEY关键字可以为一个数据列定义一个主索引。所谓主索引,就是在定义的主键列中创建的索引。主索引也保证了数据列中记录的唯一性。一般在为列创建主键约束后,数据库会为该列建立一个主索引,其索引名与约束名是相同的。
单列索引:定义在数据表中一个数据列上的索引就是单列索引。一般在数据查询时,如果WHERE子句中经常用到数据表中的某一列作为查询条件,为了提高查询的效率,可以为该列创建单列索引。
复合索引:索引可以定义在一个数据表的多个数据列上,像这样的索引被称为复合索引。一般在数据查询时,如果WHERE子句中经常用到数据表中的某几个列作为查询条件,为了提高查询的效率,可以为这多个列创建复合索引。
聚簇索引:为了提高SQL语句对数据表的查询效率,可以为数据表创建一个聚簇索引。聚簇索引中索引项的顺序与数据表中数据记录的物理顺序保持一致。聚簇索引在每一个数据表中只能创建一个。
对聚簇索引的解释是:聚簇索引的顺序就是数据的物理存储顺序,而对非聚簇索引的解释是:索引顺序与数据物理排列顺序无关。正式因为如此,所以一个表最多只能有一个聚簇索引。
创建与删除索引
在数据表中,创建和删除索引一般是由数据库管理员或者是数据表的创建者来完成的。如果想创建索引,可以使用CREATE INDEX语句完成。创建索引的语法格式如下:
CREATE [UNIQUE]|[CLUSTER]INDEX索引名 ON表名(列名 [排序方式]…) 排序方式表示指定指定建立索引的排序时升序还是降序排列,关键字ASC表示升序,关键字DESC表示降序排序,默认情况是升序排序。
DROP INDEX索引名 ON 表名
ALTER TABLE table_name ADD(column_name datatype [constraint_condition])
ALTER TABLE table_name ADD constraint_type (column_name)
ALTER TABLE table_name ADD INDEX(column_name1[, column_name2]….)
ALTER TABLE table_name MODIFY column_name datatype
ALTER TABLE table_name DROP column_name
ALTER TABLE table_name DROP constraint_type
DROP TABLE table_name[CASCADE CONSTRAINTS]
使用DROP TABLE执行数据表的删除操作时,该表中的记录以及由此表建立的相应视图都会被同时删除掉。如果数据表之间存在外键约束,删除主表时要使用CASCADE CONSTRAINTS级联删除从表中的外键约束。它是可选的。一般用户如果要删除数据表,需要具有删除数据表的权限。