CSDN 成就一亿技术人!
难度指数:* * *
CSDN 成就一亿技术人!
目录
1.索引
什么是索引?
索引的作用?
索引的分类
1. 唯一索引
2. 主键索引
3. 聚集索引
4.非聚集索引
5.复合索引
6.全文搜索
索引的创建(命令+图形)
2. 视图
创建视图
查询视图
更新视图
删除视图
实例
1.索引
什么是索引?
索引(Index)是数据库中一种用于加速对表中数据的检索速度的数据结构。索引类似于书籍的目录,它提供了一种快速查找数据行的方法,避免了全表扫描的开销。通过使用索引,数据库系统可以直接定位到符合特定搜索条件的数据,而不必逐行遍历整个表。
索引的作用?
- 减少数据库搜索引擎需要扫描的数据量。
- 帮助数据库搜索引擎更快地找到与查询条件匹配的数据行。
- 允许数据库搜索引擎使用更有效的算法来查找数据行。
索引的分类
1. 唯一索引
确保索引列的所有值都是唯一的,用于实现唯一性约束
CREATE UNIQUE INDEX index_name on 表名 (列1,列2.....);
2. 主键索引
主键索引是表中唯一的索引,它用于指定表的主键。主键索引可以提高查询的效率,但会增加数据库的空间占用
创建主键索引的注意事项
- 主键索引的列必须是唯一的。
- 主键索引的列不能为 NULL。
- 主键索引的列不能包含重复值。
ALTER TABLE table_name
ADD CONSTRAINT pk_constraint_name PRIMARY KEY (column1, column2, ...);
table_name
是表的名称。pk_constraint_name
是你为主键约束指定的名称。(column1, column2, ...)
是主键包含的列的列表。
3. 聚集索引
数据库表行中数据的物理顺序与键值的逻辑(索引)顺序相同
一个表中只能包含一个聚集索引
CREATE CLUSTERED INDEX index_name
ON table_name (column1, column2, ...);
index_name
是你为索引指定的名称。table_name
是要在其上创建索引的表的名称。(column1, column2, ...)
是用于聚集索引的列的列表。
4.非聚集索引
与聚集索引不同,非聚集索引的叶子节点并不包含实际的数据行,而是包含指向实际数据行的指针。一个表可以有多个非聚集索引。
CREATE NONCLUSTERED INDEX index_name
ON table_name (column1, column2, ...);
index_name
是你为索引指定的名称。table_name
是要在其上创建索引的表的名称。(column1, column2, ...)
是用于非聚集索引的列的列表。
5.复合索引
包含多个列的索引,以提高特定查询的性能,复合索引的顺序通常取决于查询中使用的列的顺序。
CREATE INDEX index_name
ON table_name (column1, column2, ...);
index_name
是你为索引指定的名称。table_name
是要在其上创建索引的表的名称。(column1, column2, ...)
是用于复合索引的列的列表。
6.全文搜索
一种用于在文本数据中进行高效搜索的技术,允许用户以自然语言的方式查询文本数据。在 SQL Server 中,可以使用全文搜索功能进行这样的操作。
这个自行了解
索引的创建(命令+图形)
命令
这边创建一个唯一索引 当做实例
图形
右击表 点击设计
右击列 点击 索引即可
此刻我们发现命令创建的索引成功
2. 视图
- 可以简化查询。 视图可以将复杂的查询转换为简单的查询,使查询更加容易理解和使用
- 简化查询
创建视图
CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table1
WHERE condition;
view_name
是视图的名称。column1, column2, ...
是视图中包含的列。table1
是表。WHERE condition
是可选的筛选条件。
查询视图
SELECT * FROM youView;
更新视图
UPDATE youView
SET FirstName = 'NewName'
WHERE 条件;
删除视图
DROP VIEW view_name;
实例
创建视图
这里红色(错误语法) 但是可以执行
更新视图
查询视图
更新后的信息
删除视图
再次查询一遍发现无效