写在文章前:本系列文章用于博主自己归纳复习一些基础知识,同时也分享给可能需要的人,因为水平有限,肯定存在诸多不足以及技术性错误,请大佬们及时指正。
存储过程 是事先经过编译并存储在数据库中的一段SQL语句的集合。想要实现相应的功能时,只需要调用这个存储过程就行了(类似于函数,输入具有输出参数)。
优点 :
缺点 :
Delete用来删除表的全部或者部分数据,执行delete之后,用户需要提交之后才会执行,会触发表上的DELETE触发器(包含一个OLD的虚拟表,可以只读访问被删除的数据),DELETE之后表结构还在,删除很慢,一行一行地删,因为会记录日志,可以利用日志还原数据;
Truncate删除表中的所有数据,这个 *** 作不能回滚,也不会触发这个表上的触发器。 *** 作比DELETE快很多(直接把表drop掉,再创建一个新表,删除的数据不能找回)。如果表中有自增(AUTO_INCREMENT)列,则重置为1。
Drop命令从数据库中删除表,所有的数据行,索引和约束都会被删除。不能回滚,不会触发触发器。
触发器(TRIGGER)是由事件(比如INSERT/UPDATE/DELETE)来触发运行的 *** 作(不能被直接调用,不能接收参数)。在数据库里以独立的对象存储,用于保证数据完整性(比如可以检验或转换数据)。
约束(Constraint)类型:
从数据库的基本表中通过查询选取出来的数据组成的虚拟表(数据库中只存放视图的定义,而不存放视图的数据)。可以对其进行增/删/改/查等 *** 作。视图是对若干张基本表的引用,一张虚表,查询语句执行的结果,不存储具体的数据(基本表数据发生了改变,视图也会跟着改变)。
可以跟基本表一样,进行增删改查 *** 作( 增删改 *** 作有条件限制,一般视图只允许查询 *** 作 ),对视图的增删改也会影响原表的数据。 它就像一个窗口,透过它可以看到数据库中自己感兴趣的数据并且 *** 作它们。 好处:
用于定位在查询返回的结果集的特定行,以对特定行进行 *** 作。使用游标可以方便地对结果集进行移动遍历,根据需要滚动或对浏览/修改任意行中的数据。主要用于交互式应用。它是一段私有的SQL工作区,也就是一段内存区域,用于暂时存放受SQL语句影响的数据,简单来说,就是将受影响的数据暂时放到了一个内存区域的虚表当中,这个虚表就是游标。
游标是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。即游标用来逐行读取结果集。游标充当指针的作用。尽管游标能遍历结果中的所有行,但他一次只指向一行。
游标的一个常见用途就是保存查询结果,以便以后使用。游标的结果集是由SELECT语句产生,如果处理过程需要重复使用一个记录集,那么创建一次游标而重复使用若干次,比重复查询数据库要快的多。通俗来说,游标就是能在sql的查询结果中,显示某一行(或某多行)数据,其查询的结果不是数据表,而是已经查询出来的结果集。
简单来说:游标就是在查询出的结果集中进行选择性 *** 作的工具。
让缓存更高效。对于连接查询,如果其中一个表发生变化,那么整个查询缓存就无法使用。而分解后的多个查询,即使其中一个表发生变化,对其它表的查询缓存依然可以使用。分解成多个单表查询,这些单表查询的缓存结果更可能被其它查询使用到,从而减少冗余的查询。减少锁竞争。
索引是对数据库表中一列或多列的值进行排序的一种结构(说明是在列上建立的),使用索引可快速访问数据库表中的特定信息。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。索引的一个主要目的就是加快检索表中数据,亦即能协助信息搜索者尽快的找到符合限制条件的记录ID的辅助数据结构。
当表中有大量记录时,若要对表进行查询,第一种搜索信息方式是全表搜索,是将所有记录一一取出,和查询条件进行一一对比,然后返回满足条件的记录,这样做会消耗大量数据库系统时间,并造成大量磁盘I/O *** 作。第二种就是在表中建立索引,然后在索引中找到符合查询条件的索引值,最后通过保存在索引中的ROWID(相当于页码)快速找到表中对应的记录。
例如这样一个查询:select from table1 where id=10000。如果没有索引,必须遍历整个表,直到ID等于10000的这一行被找到为止。有了索引之后(必须是在ID这一列上建立的索引),即可在索引中查找。由于索引是经过某种算法优化过的,因而查找次数要少的多。可见,索引是用来定位的。
从应用上分, 主键索引(聚集) , 唯一索引(聚集/非聚集) , 普通索引 , 组合索引 , 单列索引和全文索引
简单来说,游标就是一个临时存储器。SQL处理数据时,总是对整个数据集打包给你,而不会逐条给你,而游标就是将SQL打包的数据集进行二次处理,使得你能够逐条对数据修改和处理。就是将机器的死脑经变的更人性化一点,满足人们的日常需要(哈哈哈,皮一下!)
在数据库系统中,主码是用来保证数据安全性和完整性的一种关键技术手段。主码是一列或多列数据值的组合,唯一地标识一行数据。通过将主码作为表的索引,可以方便快速地访问和更新表中的数据,并且保证不会出现重复数据,提高数据安全性。
游标主要用于遍历并访问数据库中的数据,可以逐行读取数据,但并不具备保证数据安全性的能力。游标是对数据库表进行 *** 作的一种手段,与主码并不是同一层次的概念。当然,在实际 *** 作过程中,游标可以结合主码使用,提高数据库的安全性和性能。
在数据库中,游标提供了一种对从表中检索出的数据进行 *** 作的灵活手段。就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。
游标总是与一条SQL
选择语句相关联因为游标由结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成。
游标关于数据库中的 *** 作会对整个行集产生影响。由 SELECT 语句返回的行集包括所有满足该语句 WHERE 子句中条件的行。由语句所返回的这一完整的行集被称为结果集。
应用程序,特别是交互式联机应用程序,并不总能将整个结果集作为一个单元来有效地处理。这些应用程序需要一种机制以便每次处理一行或一部分行。游标就是提供这种机制的结果集扩展。
扩展资料:
游标通过以下方式扩展结果处理:
1允许定位在结果集的特定行。
2从结果集的当前位置检索一行或多行。
3支持对结果集中当前位置的行进行数据修改。
4为由其他用户对显示在结果集中的数据库数据所做的更改提供不同级别的可见性支持。
5提供脚本、存储过程和触发器中使用的访问结果集中的数据的 Transact-SQL 语句。
参考资料来源:搜狗百科—游标
以上就是关于数据库基础详解:存储过程、视图、游标、SQL语句优化以及索引全部的内容,包括:数据库基础详解:存储过程、视图、游标、SQL语句优化以及索引、SQL数据库中的游标指的是什么,有什么作用(数据库中游标是干什么用的)、在数据库系统中,可以提供数据安全性的是游标还是主码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)