SQL Server 索引和视图

CSDN 成就一亿技术人!

难度指数:* * *

CSDN 成就一亿技术人!


目录

1.索引

什么是索引?

索引的作用?

索引的分类

[1. 唯一索引](#1. 唯一索引)

[2. 主键索引](#2. 主键索引)

[3. 聚集索引](#3. 聚集索引)

4.非聚集索引

5.复合索引

6.全文搜索

索引的创建(命令+图形)

[2. 视图](#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;

实例

创建视图

这里红色(错误语法) 但是可以执行

更新视图

查询视图

更新后的信息

删除视图

再次查询一遍发现无效

相关推荐
生命几十年3万天16 分钟前
redis时间优化
数据库·redis·缓存
Elastic 中国社区官方博客17 分钟前
释放专利力量:Patently 如何利用向量搜索和 NLP 简化协作
大数据·数据库·人工智能·elasticsearch·搜索引擎·自然语言处理
力姆泰克21 分钟前
看电动缸是如何提高农机的自动化水平
大数据·运维·服务器·数据库·人工智能·自动化·1024程序员节
力姆泰克21 分钟前
力姆泰克电动缸助力农业机械装备,提高农机的自动化水平
大数据·服务器·数据库·人工智能·1024程序员节
Lionhacker21 分钟前
网络工程师这个行业可以一直干到退休吗?
网络·数据库·网络安全·黑客·黑客技术
eternal__day35 分钟前
MySQL_聚合函数&分组查询
数据库·mysql
WZF-Sang2 小时前
Linux—进程学习-01
linux·服务器·数据库·学习·操作系统·vim·进程
菜鸡且互啄692 小时前
云岚到家购物车迁移思路
数据库
cooldream20092 小时前
Spring Boot中集成MyBatis操作数据库详细教程
java·数据库·spring boot·mybatis
棱角~~2 小时前
盘点和嗨格式一样好用的10款数据恢复!!
数据库·经验分享·安全·电脑·学习方法