SQL server 数据库的索引和视图、存储过程和触发器
1、索引:数据排序的方法,快速查询数据
分类:
唯一索引:不允许有相同值
主键索引:自动创建的主键对应的索引,命令方式不可删
聚集索引:物理顺序与索引顺序一致,只能创建一个
非聚集索引:物理顺序与索引顺序不一致,可创建多个
复合索引:多列组成
全文索引:特殊功能索引
命令:
创建索引:create [clustered|unique] index 索引名 on 表名(列名 desc)
使用索引:select * from 表名 with (index(索引名))
注意事项:①尽量在频繁使用、经常查询、排序的列上建索引
②不要再列值很少或行数很少的表中建索引
2、视图:虚拟表,来自一个或多个表
作用:①筛选表中数据
②屏蔽敏感数据
③将多个表抽象为一个表,减少了操作难度
命令:create view 视图名 as SQL语句
注意事项:①不能有order by子句,除非有top子句
②不能有into
③不能引用临时表
3、存储过程:SQL语句和控制句的预编译集合,保存在数据库(resource),可由应用程序调用执行
优点:①模块化:一次创建,多次调用
②速度快、效率高
③减少网络流量
④安全性好
分类:①系统存储过程:以sp_ 开头
sp_databases :数据库信息
sp_tables :表和视图
sp_helptext :存储过程、触发器、视图的信息
扩展存储过程,可以执行SQL外的命令,比如操作系统命令,以xp_ 开头
②用户自定义存储过程:
命令:create procedure 存储过程名 as SQL语句
执行:exec 存储过程名
可以添加、输入、输出的参数值
4、触发器:对表进行插入、更新、删除时自动执行的存储过程
可以实现比check约束更复杂的约束,通过事件而触发
分类:①insert触发器:插入数据触发
②update触发器:更新数据触发
③delete触发器:删除数据触发
触发器的表:存储在内存中,触发器完成则删除
inserted表:保存新增的和更新的信息
deleted表:存放被删除和更新前的记录
命令:create trigger 触发器名 on 表名 for [update,insert,delete] as SQL命令
SQL server 数据库的索引和视图、存储过程和触发器的更多相关文章
- SQL Server 数据库的维护(一)__存储过程(procedure)
--维护数据库-- --存储过程(procedure)-- --概述: SQl Serve的存储过程是由一个或多个T-SQL语句组成的一个集合.常用的程序代码段通常被创建成存储过程,一次创建多次调用, ...
- sql:sql server,MySQL,PostgreSQL的表,视图,存储过程结构查询
sql server 2005: --SQL SERVER 2005 生成代码需要知道的SQL语句 use LibrarySystem --查询当前数据库所有表和其的主键字段,字段类型,长度,是否为空 ...
- SQL Server数据库存储过程中拼接字符串注意的问题
在SQL Server数据库中书写复杂的存储过程时,一般的做法是拼接字符串,最后使用EXEC sp_executesql '拼接的字符串' 查询出结果. 先看一段代码: -- ============ ...
- 数据库表设计时一对一关系存在的必要性 数据库一对一、一对多、多对多设计 面试逻辑题3.31 sql server 查询某个表被哪些存储过程调用 DataTable根据字段去重 .Net Core Cors中间件解析 分析MySQL中哪些情况下数据库索引会失效
数据库表设计时一对一关系存在的必要性 2017年07月24日 10:01:07 阅读数:694 在表设计过程中,我无意中觉得一对一关系觉得好没道理,直接放到一张表中不就可以了吗?真是说,网上信息什么都 ...
- Sql Server数据库性能优化之索引
最近在做SQL Server数据库性能优化,因此复习下一索引.视图.存储过程等知识点.本篇为索引篇,知识整理来源于互联网. 索引加快检索表中数据的方法,它对数据表中一个或者多个列的值进行结构排序,是数 ...
- 转!!sql server 数据库 索引的原理与应用
索引的概念 索引的用途:我们对数据查询及处理速度已成为衡量应用系统成败的标准,而采用索引来加快数据处理速度通常是最普遍采用的优化方法. 索引是什么:数据库中的索引类似于一本书的目录,在一本书中使用目录 ...
- SQL Server 数据库索引
原文:SQL Server 数据库索引 一.什么是索引 减少磁盘I/O和逻辑读次数的最佳方法之一就是使用[索引] 索引允许SQL Server在表中查找数据而不需要扫描整个表. 1.1.索引的好处: ...
- Sql Server数据库之存储过程
阅读目录 一:存储过程概述 二:存储过程分类 三:创建存储过程 1.创建无参存储过程 2.修改存储过程 3.删除存储过程 4.重命名存储过程 5.创建带参数的存储过程 简单来说,存储过程就是一条或 ...
- 在易语言中调用MS SQL SERVER数据库存储过程方法总结
Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接返回(return)一个值,通过output ...
随机推荐
- Java并发(一)—— 使用多线程
Java的线程机制是抢占式的,所谓的抢占式指的是每一个线程都会被分配一个指定大小的时间片,一旦这个时间片用完,就会通过上下文切换到另一个线程上去. 并发是主要是为了提高单处理器的性能.创建一个线程会有 ...
- 网上看到一份详细sql游标说明 《转载 https://www.cnblogs.com/xiongzaiqiren/p/sql-cursor.html》
SQL游标(cursor)详细说明及内部循环使用示例 游标 游标(cursor)是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果.每个游标区都有一个名字,用户可以用SQL语句逐一从游标中获 ...
- 适用于WebApi的SQL注入过滤器
开发工具:Visual Studio 2017 C#版本:C#7.1 最有效的防止SQL注入的方式是调用数据库时使用参数化查询. 但是如果是接手一个旧的WebApi项目,不想改繁多的数据库访问层的代码 ...
- 第一册:lesson fifty three。
原文: An interesting climate. A:where do you come from? B:I come from England. A:What's the climate li ...
- 解码 id_token
简介 id_token是一个特殊的token,在Microsoft Graph的认证和授权过程中颁发,它包含了已认证用户的一些信息.本文将介绍如何通过实例理解id_token,并且演示了如何解码. 准 ...
- C-Linux_定时器示例使用
#include <stdlib.h> #include <signal.h> ; static struct itimerval oldtv; struct itimerva ...
- js 点击文本框,预览选择图片
点击文件选择框,选择图片文件,通过FileReader对象,读取图片文件中的内容,存放于result中,具体代码如下 <input type="file" onchange= ...
- python 实现微信自动回复(自动聊天)
原文地址(本人):https://blog.csdn.net/a5878989/article/details/54974249 介绍 微信自动回复其实主要就是登录,接收消息,回复消息三个功能,微信没 ...
- #WEB安全基础 : HTML/CSS | 0x4HTML模块化
想让你的网页变得整洁吗?找我就对了,当然你会认识几个新元素,和它们交朋友吧! 我帮你联系一下这几个新元素,这样交朋友就变得简单了 images里放着图片 以下是index.html的代码 < ...
- jQuery 练习:tab 切换
实现内容随菜单切换 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...