游标:
在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)在实际应用中也并一定要严格按照三大范式来规范数据库设计,必须根据客户的要求和实际的需要以及系统的性能问题等各方面来 考虑。
分享到:
相关推荐
游标循环数据库,游标循环数据库游标循环数据库游标循环数据库
SQL利用游标替换数据库中某个字段的某个字符
使用游标更新数据库
此资料可以帮助没有用过数据库游标和函数的朋友学会去用它,只要跟着做一遍就会使用啦,这样就在设计数据库时可以充分灵活运用游标和函数
SQL Server遍历表一般都要用到游标,SQL Server中可以很容易的用游标实现循环,实现SQL Server遍历表中记录。本文将介绍利用使用表变量和游标实现数据库中表的遍历。 表变量来实现表的遍历 以下代码中,代码块之间的...
sqlserver 游标循环结果集,统计
Ø 事务 在数据库中有时候需要把多个步骤的... 事务有若干条T-SQL指令组成,并且所有的指令昨晚一个整体提交给数据库系统,执行时,这组指令要么全部执行完成,要么全部取消。因此,事务是一个不可分割的逻辑单元。
SQL Server2000游标例子 SQL Server2000游标例子
SQL SERVER游标在社保审计中的作用.pdf
sqlserver中关于游标的使用,很经典的教程
游标是邪恶的!...从游标对数据库的读取方式来说,不难看出游标为什么占用更多的资源,打个比方: 当你从ATM取钱的时候,是一次取1000效率更高呢,还是取10次100? 既然游标这么“邪恶”,为什么还
游标概念 数据库操作中我们常常会遇到这样情况,即从某一结果集中逐一地读取一...游标总是与一条SQL 查询语句相关联因为游标由结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的
SQL Server 2005数据库视图、游标和自定义函数
游标(cursor)是一个存储在DBMS服务器上的数据库查询,它不是一条SELECT语句,而是被该语句检索出来的结果集。在存储了游标之后,应用程序可以根据需要滚动或浏览其中的数据。 使用游标 使用游标的步骤: 在使用...
通过50个翔实丰富、图文并茂的练习,着重讲述了管理SQL Server 2000数据库所涉及的基本知识和技巧 ,从而展示新增功能和使用方法. 本书由浅入深、切合实际,特别适合SQL SERVER初级和中级用户 。
SQL语句实现跨Sql server数据库操作实例 - 查询远程SQL,本地SQL数据库与远程SQL的数据传递,利用游标逐条数据添加,方便快捷!
第三部分,讲解SQL 语言基础、数据库和表、查询与视图、 设计数据的完整性、索引与优化;第四部分,讲解自定义函数、存储过程和触发器,游标 及事务,数据库访问的安全性;第五部分,讲解数据库管理的备份恢复、导入...
Sqlsever2012以上的课程设计,只有数据库,设计了一个简单的选课系统,含有数据库、文档、学习资料等。使用到了存储过程和触发器、试图、游标等知识点。参考
浅谈SQL Server数据库中游标的使用.pdf
第4~7章,讲解了SQL语言基础、数据库和数据表、数据查询与视图、设计数据的完整性与索引;第8~10章,讲解自定义函数、存储过程和触发器,游标及事务,数据库的安全性;第11、12章,给出[教学成绩管理系统(VB+ASP)]...