数据库存储过程,视图,索引,会话,事务
2017-12-09 11:03
459 查看
全部摘抄自baidu,如有雷同不是巧合。只是希望给自己记录,避免忘了又要search
1.什么是存储过程:
存储过程可以说是一个记录集吧,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了。
存储过程的好处:
1.由于数据库执行动作时,是先编译后执行的。然而存储过程是一个编译过的代码块,所以执行效率要比T-SQL语句高。
2.一个存储过程在程序在网络中交互时可以替代大堆的T-SQL语句,所以也能降低网络的通信量,提高通信速率。
3.通过存储过程能够使没有权限的用户在控制之下间接地存取数据库,从而确保数据的安全。
存储过程代码格式:
create prpc procedure_name
AS sql_statement
调用存储过程:EXECUTE Procedure_name '' --存储过程如果有参数,后面加参数格式为:@参数没那个=value,也可直接为参数值value
删除存储过程:drop procedure procedure_name --在存储过程中能调用另外一个存储过程,而不能删除另外一个存储过程
2.存储过程和视图的区别:
存储过程的作用范围要广很多 其实都相当于执行一段已经编译好的sql脚本
而区别在与存储过程可以提供参数、输入参数 以及每次返回多个表数据
而视图一次只能返回一个二维表的数据 且不能接受 任何参数
视图就是张虚拟表,你可以像对真实表一样对其进行操作,而存储过程是一组sql语句的批处理,这样它们的区别就很显然了
3.索引:
有三列内容的数据库,分别是Employee_Name,Employee_Age和Employee_Address在Employee_Name列上创建索引的SQL如下:
CREATE INDEX name_index
ON Employee (Employee_Name)
一个索引是存储的表中一个特定列的值数据结构(最常见的是B-Tree)。索引是在表的列上创建。所以,要记住的关键点是索引包含一个表中列的值,并且这些值存储在一个数据结构中。请记住记住这一点:索引是一种数据结构 。
因为索引已经按照按字母顺序排序。索引已经排序意味着查询一个名字会快很多,因为名字少字母为‘J’的员工都是排列在一起的
需要理解的重点是数据库索引并不存储这个表中其他列(字段)的值。举例来说,如果我们在Employee_Name列创建索引,那么列Employee_Age和Employee_Address上的值并不会存储在这个索引当中。如果我们确实把其他所有字段也存储在个这个索引中,那就成了拷贝一整张表做为索引-这样会占用太大的空间而且会十分低效。
使用数据库索引有什么缺点呢?
其一,索引会占用空间 - 你的表越大,索引占用的空间越大。
其二,性能损失(主要值更新操作),当你在表中添加、删除或者更新行数据的时候, 在索引中也会有相同的操作。
记住:建立在某列(或多列)索引需要保存该列最新的数据。
基本原则是只如果表中某列在查询过程中使用的非常频繁,那就在该列上创建索引。
4.会话和事务的区别:
会话,即session,当你使用工具如sqlplus或者toad执行连接,连接到某个数据库的时候,就开启了一个会话,直到你关闭这次连接,这个会话才算结束。
事务,即transaction,是一个由多条SQL语句组成的工作逻辑单元,这些语句要么全部执行成功,要么全部不执行。只有commit,rollback,或者关闭工具的情况下,事务才会结束。当一个事务结束之后,下一个可执行的SQL语句自动开启一个新的事务。事务具有4个属性:原子性,一致性,隔离性,持久性。这里不具体说。
以上解释了什么是会话和事务,接下来用一个生动的例子来进一步说明它们俩的区别,相信大家就都能明白了。
比如你去银行办理业务,当你坐在柜台前跟工作人员面对面,开始办理业务的时候,这个时候‘会话’就开启了,那么这个‘会话’结束自然就是你办理好了所有的业务离开柜台的时候。
在办理业务的时候,比如你要先办一张银行卡,然后再往里面存一万块钱,那么这就相当于两个事务,一个是办理银行卡,一个是存钱。当你拿到银行卡的时候,相当于这个事务已经commit了,事务结束。当你开始存钱的时候,一个新的事务开启,存进去之后,第二个事务结束。
综上,一个会话可以包含很多个事务,会话是一次对数据库的连接,事务是一个工作单元。
1.什么是存储过程:
存储过程可以说是一个记录集吧,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了。
存储过程的好处:
1.由于数据库执行动作时,是先编译后执行的。然而存储过程是一个编译过的代码块,所以执行效率要比T-SQL语句高。
2.一个存储过程在程序在网络中交互时可以替代大堆的T-SQL语句,所以也能降低网络的通信量,提高通信速率。
3.通过存储过程能够使没有权限的用户在控制之下间接地存取数据库,从而确保数据的安全。
存储过程代码格式:
create prpc procedure_name
AS sql_statement
调用存储过程:EXECUTE Procedure_name '' --存储过程如果有参数,后面加参数格式为:@参数没那个=value,也可直接为参数值value
删除存储过程:drop procedure procedure_name --在存储过程中能调用另外一个存储过程,而不能删除另外一个存储过程
2.存储过程和视图的区别:
存储过程的作用范围要广很多 其实都相当于执行一段已经编译好的sql脚本
而区别在与存储过程可以提供参数、输入参数 以及每次返回多个表数据
而视图一次只能返回一个二维表的数据 且不能接受 任何参数
视图就是张虚拟表,你可以像对真实表一样对其进行操作,而存储过程是一组sql语句的批处理,这样它们的区别就很显然了
3.索引:
有三列内容的数据库,分别是Employee_Name,Employee_Age和Employee_Address在Employee_Name列上创建索引的SQL如下:
CREATE INDEX name_index
ON Employee (Employee_Name)
一个索引是存储的表中一个特定列的值数据结构(最常见的是B-Tree)。索引是在表的列上创建。所以,要记住的关键点是索引包含一个表中列的值,并且这些值存储在一个数据结构中。请记住记住这一点:索引是一种数据结构 。
因为索引已经按照按字母顺序排序。索引已经排序意味着查询一个名字会快很多,因为名字少字母为‘J’的员工都是排列在一起的
需要理解的重点是数据库索引并不存储这个表中其他列(字段)的值。举例来说,如果我们在Employee_Name列创建索引,那么列Employee_Age和Employee_Address上的值并不会存储在这个索引当中。如果我们确实把其他所有字段也存储在个这个索引中,那就成了拷贝一整张表做为索引-这样会占用太大的空间而且会十分低效。
使用数据库索引有什么缺点呢?
其一,索引会占用空间 - 你的表越大,索引占用的空间越大。
其二,性能损失(主要值更新操作),当你在表中添加、删除或者更新行数据的时候, 在索引中也会有相同的操作。
记住:建立在某列(或多列)索引需要保存该列最新的数据。
基本原则是只如果表中某列在查询过程中使用的非常频繁,那就在该列上创建索引。
4.会话和事务的区别:
会话,即session,当你使用工具如sqlplus或者toad执行连接,连接到某个数据库的时候,就开启了一个会话,直到你关闭这次连接,这个会话才算结束。
事务,即transaction,是一个由多条SQL语句组成的工作逻辑单元,这些语句要么全部执行成功,要么全部不执行。只有commit,rollback,或者关闭工具的情况下,事务才会结束。当一个事务结束之后,下一个可执行的SQL语句自动开启一个新的事务。事务具有4个属性:原子性,一致性,隔离性,持久性。这里不具体说。
以上解释了什么是会话和事务,接下来用一个生动的例子来进一步说明它们俩的区别,相信大家就都能明白了。
比如你去银行办理业务,当你坐在柜台前跟工作人员面对面,开始办理业务的时候,这个时候‘会话’就开启了,那么这个‘会话’结束自然就是你办理好了所有的业务离开柜台的时候。
在办理业务的时候,比如你要先办一张银行卡,然后再往里面存一万块钱,那么这就相当于两个事务,一个是办理银行卡,一个是存钱。当你拿到银行卡的时候,相当于这个事务已经commit了,事务结束。当你开始存钱的时候,一个新的事务开启,存进去之后,第二个事务结束。
综上,一个会话可以包含很多个事务,会话是一次对数据库的连接,事务是一个工作单元。
相关文章推荐
- 数据库存储过程,视图,索引,会话,事务
- Java程序员从笨鸟到菜鸟之(九)——数据库有关知识补充(事务、视图、索引、存储过程)
- Java程序员从笨鸟到菜鸟之(九)——数据库有关知识补充(事务、视图、索引、存储过程)
- Java程序员从笨鸟到菜鸟之(九)——数据库有关知识补充(事务、视图、索引、存储过程)
- Java程序员从笨鸟到菜鸟之(九)——数据库有关知识补充(事务、视图、索引、存储过程)
- Java程序员从笨鸟到菜鸟之(九)——数据库有关知识补充(事务、视图、索引、存储过程)
- 数据库中的事务、视图、序列 、同义词、索引、数据字典、PL/SQL块 、异常处理、存储过程
- Java程序员从笨鸟到菜鸟之(九)――数据库有关知识补充(事务、视图、索引、存储过程)
- Java程序员从笨鸟到菜鸟之(九)——数据库有关知识补充(事务、视图、索引、存储过程)
- 创建数据库、表、主外键、各种约束、存储过程、视图、索引、事务使用、触发器、创建登录账号、数据库用户 Sql语句示例
- Java程序员从笨鸟到菜鸟之(九)——数据库有关知识补充(事务、视图、索引、存储过程)
- Java程序员从笨鸟到菜鸟之(九)——数据库有关知识补充(事务、视图、索引、存储过程)
- 3.22 学数据库 视图 存储过程 触发器 事务 函数 索引
- 开窗函数,视图,事务,存储过程,索引,触发器,游标
- 转帖杂和数据库------- SQL-server 数据库相关知识 事务、索引、视图
- 黑马程序员_学习日记50_619数据库开发及ADO.Net(临时表、表变量、视图、变量、if…else…和while、事务、存储过程、触发器)
- 数据库的索引、视图、触发器、存储过程、游标等概念的理解
- 视图、索引、存储过程 、触发器、游标及事务
- mssql:t-sql;创建表;给表添加约束;使用变量;事务,索引,视图;存储过程;触发器trigger
- sql server - (存储过程、视图、函数、索引、锁、事务...)