游标:
在java里面返回的ResultSet是一个游标,next()方法实质上是用java循环访问结果集。不能叫悲观锁定。游标实质上可以理解成一种资源。
1.游标分类:
fetch first:提取游标第一行
fetch next:提取游标下一行
fetch prior:提取上次提取行之前的行
fetch last:提取游标最后一行
fetch absolute n:如果n为正整数,则提取游标中从第一行开始到第n行,如果为负整数则提取倒数第n行,为0则不提取任何行。
fetch relative n:如果n为正整数,则提取上次所提取行之后的第n行,为负整数则提取上次所提取行之前的第n行,为0则同一行被提取
2.使用游标的步骤:
1).定义:declare 游标名 cursor for select语法 for()
2).打开游标:open 游标名
3).提取、滚动游标:
fetch first from 游标名
while @@fetch_status=0
begin
操作语句
end
4).关闭游标:close 游标名
5).如果不需要则释放资源:deallocate 游标名
使用游标分页,这里暂时还没实现,下面给出实现的思路:
思路:定义游标,循环使用fetch语句跳过n行。此方法效率不是最好。如果在Oracle数据库里面效率会高些。
数据库设计:
1. 常见的数据库设计错误:
1).数据冗余,依赖(比如姓名依赖于ID),用户不能接受的冗余必须改正。
2).更新异常
3).插入异常
4).删除异常
2. 数据库的分析设计:
1).收集信息
2).抽象出概念,也即实体对象,一般都是名词。每个对象的详细信息转换为属性,一般也为名次。
3).标识对象之间的关系,即映射基数(一对多和多对多)。
3. 数据库设计基本原则:
1).正确反映数据与数据之间的层析逻辑关系。
2).对进入数据库表中的数据有一个有效性检查。
3).对数据库中数据进行非逻辑操作进行相应的错误处理
4).满足系统对性能上的要求
4. 数据库设计三大范式,即数据库设计的规范做法,类似于设计模式(一些面向对象的设计方法和经验)。
第一范式:数据表中的字段都是单一属性,不可再分(但也并非绝对)。比如有一个叫联系方式的字段,它还可以分为传真、电话、 手机,所以不满足第一范式。缺点:对此字段的某一个具体属性(例如手机)进行操作非常麻烦。解决方法:拆分列
第二范式:数据表中的一些非主键字段必须依赖于主键字段,但不是部分依赖于主键字段。解决方法:拆分表。
第三范式:数据库中的一些非主键字段不能依赖于其他非主键字段,也不能传递依赖于主键字段。解决方法:拆分表。
5. 数据库设计基本方法:实体关系模型(E-R建模)
将实体转换成表,属性转换成字段(列),标识每个表的主键列,与各种约束(外键等)。
6. 数据库分析阶段是和数据库语言平台无关的,在设计阶段才和具体语言平台有关。逻辑模型:与数据库平台无关,物理模型:与数据库平台有关
7. 一些设计的小经验:
1) 当两张表有多对多关系时,必须要拿出第三张表出来以这两个表的主键为组合主键,或者在第三张表中建一个主键,以另两张表的 主键为普通键,但应该在这两个键上建一个唯一索引。
2)垂直分区:我们以一个小例子来说明这个概念,假如有一张人才网用户的个人简历表,里面有用户名、密码和大量的简历信息,因 为在用户登录时,用户名和密码用的特别频繁,所以我们可以把此两个字段抽出来单独建一张表,其他的字段作为一张表,把用户名 作为此表的主键,和前面的表形成一对一的关系。这就是所谓的垂直分区。
3)在实际应用中也并一定要严格按照三大范式来规范数据库设计,必须根据客户的要求和实际的需要以及系统的性能问题等各方面来 考虑。
分享到:
相关推荐
在MS SQL SERVER中,游标和锁是数据库管理中的重要概念,它们在处理复杂数据操作和确保数据一致性方面发挥着关键作用。 **游标** 游标,顾名思义,就像指针一样在结果集上移动,允许程序员逐行处理查询结果。它提供...
在SQL Server中,游标是一种数据库对象,允许我们逐行处理查询结果集中的数据。这与普通的SQL查询不同,在普通的查询中,结果集通常是作为一个整体来处理的。游标常用于需要对数据进行迭代处理的情况,例如更新或...
在SQL Server中,数据库游标和函数是两个非常重要的概念,它们在数据处理和数据库操作中扮演着不可或缺的角色。游标允许我们逐行处理查询结果,而函数则提供了丰富的计算和逻辑处理能力。 首先,让我们深入理解SQL ...
在SQL Server中,游标是一种重要的工具,它允许我们逐行处理查询结果集,而不仅仅是一次性获取所有数据。游标提供了在结果集中向前或向后移动的能力,这在某些复杂的数据处理任务中非常有用。本篇文章将深入探讨SQL ...
游标循环数据库,游标循环数据库游标循环数据库游标循环数据库
在使用游标更新数据库时,需要在声明游标的时候使用 FOR UPDATE 选项,以便在打开游标时锁定游标结果集与表中对应数据行的所有列和部分列。这样可以保证正在进行操作的数据不被另外的用户修改。 2. FOR UPDATE 选项...
游标和事务是 SQL Server 中两个非常重要的概念。合理地使用游标可以帮助开发者更灵活地处理数据,而事务则能确保数据的完整性和一致性。在实际应用中,根据具体的业务需求选择合适的使用方式非常重要。
在SQL Server中,游标是一种数据处理工具,它允许我们逐行处理查询结果集,而不仅仅是一次性返回所有数据。游标对于那些需要按顺序处理数据、分步操作或逐条检查结果的应用场景非常有用。本篇文章将深入探讨SQL ...
### SQL利用游标替换数据库中某个字段的某个字符 在SQL Server中,游标是一种用于处理数据行集合的强大工具,特别是在需要逐行处理记录时。本文将详细介绍如何使用游标来遍历表中的数据,并替换指定字段内的特定...
游标是SqlServer中一种非常重要的数据库对象,它的作用是允许逐行访问由SQL Server返回的结果集。结果集通常包括多行数据,而游标则能够让用户以程序的方式逐行处理这些数据。在实际应用中,游标能够提供很多有用的...
在SQL Server数据库管理系统中,事务和游标是两个非常重要的概念,它们对于数据操作和处理具有深远的影响。本文将深入探讨这两个主题,并解释如何利用它们解决日常数据库管理中遇到的复杂问题。 首先,我们来谈谈...
在SQL Server中,游标(Cursor)是一种数据库查询机制,它允许我们一次处理查询结果集中的单行数据,而不是一次性获取整个结果集。游标在处理大量数据时特别有用,尤其是当我们需要逐行进行操作或者根据当前行的值来...
sqlserver 游标循环结果集,统计
Ø 事务 在数据库中有时候需要把多个步骤的... 事务有若干条T-SQL指令组成,并且所有的指令昨晚一个整体提交给数据库系统,执行时,这组指令要么全部执行完成,要么全部取消。因此,事务是一个不可分割的逻辑单元。
String url = "jdbc:sqlserver://localhost:1433;databaseName=myDatabase"; String username = "myUsername"; String password = "myPassword"; try { Connection conn = DriverManager.getConnection(url, ...
在给定的代码示例中,作者通过创建一个存储过程`proc_cursor`来实现基于游标的分页功能,这种方法虽然在某些场景下可能不如其他方法高效,但在理解SQL Server游标和分页原理方面提供了很好的学习材料。 ### 数据库...
SQL Server游标有五种类型:快照、静态、动态、键集驱动和可滚动,每种类型都有不同的性能特征和数据更新行为。 对比Sybase与MSSQL的不同,《Sybase与MSSQL的不同.txt》文件可能详细阐述了两者的游标实现差异。例如...
总结来说,虽然SQL Server游标在很多方面不如集合操作高效,但在特定场景下,它们提供了灵活性和处理复杂任务的能力。了解和掌握游标,可以帮助我们在必要时有效地解决问题,同时避免不必要的性能损失。因此,即使...
在数据库应用开发中,针对一些特定的数据操作需求,传统的SQL语句可能无法直接实现...本文档提供的基于SQL Server 2012的实践验证,为游标的使用提供了具体的应用参考和性能评估,对数据库开发人员具有较高的指导价值。