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;

实例

创建视图

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

更新视图

查询视图

更新后的信息

删除视图

再次查询一遍发现无效

相关推荐
wei_shuo2 小时前
全场景自动化 Replay 技术:金仓 KReplay 如何攻克数据库迁移 “难验证“ 难题
数据库·自动化·king base
葡萄城技术团队2 小时前
打破误解!MongoDB 事务隔离级别深度实测:快照隔离竟能防住 8 种异常?
数据库
Gold Steps.2 小时前
数据库正常运行但是端口变成了0?
数据库·mysql
SHolmes18542 小时前
INSERT INTO … SELECT … 常见问答(含样例)
sql
杂亿稿2 小时前
增删改查操作
数据库
Code_Geo2 小时前
在postgres数据库中Postgres FDW 全面详解
数据库·fdw
QT 小鲜肉2 小时前
【个人成长笔记】将Try Ubuntu里面配置好的文件系统克隆在U盘上(创建一个带有持久化功能的Ubuntu Live USB系统)
linux·开发语言·数据库·笔记·ubuntu
LWy6104262 小时前
数据库库、表的创建及处理
数据库
Jay_Franklin3 小时前
Python中使用sqlite3模块和panel完成SQLite数据库中PDF的写入和读取
数据库·笔记·python·pycharm·sqlite·pdf·py
小锅巴1233 小时前
百度测开面经(分类版)
数据库·分类·数据挖掘