有关数据库最基本最基础知识
一 事务处理介绍
事务是这样一种机制,它确保多个SQL语句被当作单个工作单
元来处理。
事务具有以下的作用:
* 一致性:同时进行的查询和更新彼此不会发生冲突,其他
用户不会看到发生了变化但尚未提交的数据。
* 可恢复性:一旦系统故障,数据库会自动地完全恢复未完
成的事务。
二 事务与一致性
事务是完整性的单位,一个事务的执行是把数据库从一个一
致的状态转换成另一个一致的状态。
因此,如果事务孤立执行时
是正确的,但如果多个事务并发交错地执行,就可能相互干扰,
造成数据库状态的不一致。
在多用户环境中,数据库必须避免同
时进行的查询和更新发生冲突。
这一点是很重要的,如果正在被
处理的数据能够在该处理正在运行时被另一用户的修改所改变,
那么该处理结果是不明确的。
不加控制的并发存取会产生以下几种错误:
1 丢失修改(lost updates)
当多个事务并发修改一个数据时,不加控制会得出错误的结
果,一个修改会覆盖掉另一个修改。
2 读的不可重复性
当多个事务按某种时间顺序存取若干数据时,如果对并发存
取不加控制,也会产生错误。
3 脏读(DIRDY DATA),读的不一致性
4 光标带来的当前值的混乱
事务在执行过程中它在某个表上的当前查找位置是由光标表
示的。
光标指向当前正处理的记录。
当处理完该条记录后,则指
向下一条记录。
在多个事务并发执行时,某一事务的修改可能产
生负作用,使与这些光标有关的事务出错。
5 未释放修改造成连锁退出
一个事务在进行修改操作的过程中可能会发生故障,这时需
要将已做的修改回退(Rollback)。
如果在已进行过或已发现错
误尚未复原之前允许其它事务读已做过修改(脏读),则会导致
连锁退出。
6 一事务在对一表更新时,另外的事务却修改或删除此表的
定义。
数据库会为每个事务自动地设置适当级别的锁定。
对于前面
讲述的问题:脏读、未释放修改造成的连锁退出、一事务在对一
表更新时另外的事务却修改或删除此表的定义,数据库都会自动
解决。
而另外的三个问题则需要在编程过程中人为地定义事务或
加锁来解决。
三 事务和恢复
数据库本身肩负着管理事务的责任。
事务是最小的逻辑工作
单元,在这个工作单元中,对数据库的所有更新工作,要么必须
全部成功,要么必须全部失败(回退)。
只要应用程序指定了某
段程序为一个事务并做了相应的处理(提交或回退),数据库系
统会自动维护事务本身的特性。
四 ORACLE数据库的事务定义
ORACLE事务从COMMIT、ROLLBACK、连接到数据库或开始第一
条可执行的SQL语句时开始,到一条COMMIT、ROLLBACK语句或退出
数据库时结束。
如果在一个事务中包含DDL语句,则在DDL语句的
前后都会隐含地执行COMMIT语句,从而开始或结束一个事务。
如果一个事务由于某些故障或者由于用户改变主意而必须在
提交前取消它,则数据库被恢复到这些语句和过程执行之前的状
态。
利用ROLLBACK语句可以在COMMIT命令前随时撤消或回退一个
事务。
可以回退整个事务,也可以会退部分事务,但是不能回退
一个已经被提交的事务。
回退部分事务的ROLLBACK命令为:
ROLLBACK to savepoint 存储点名
存储点是用户放入事务中的标记,用来表示一个可被回退的
位置。
存储点通过在事务中放入一个SAVEPOINT命令而被插入。
该
命令的语法是:
SAVEPOINT 存储点名
如果在ROLLBACK语句中没有给出存储点名,则整个事务被回
退。
五 SYBASE数据库的事务定义
SYBASE通过使用BEGIN TRANsaction和COMMIT TRANsaction命令指
示SQL将任意数目的语句作为一个单元来处理。
ROLLBACK TRANsaction
命令则允许用户恢复到事务的开始,或恢复到事务内部已经被用SAVE
TRANsaction命令定义的存储点上。
BEGIN TRANsaction和COMMIT TRANsaction能够包含任意数目的SQL
语句和存储过程,方法很简单:
BEGIN TRANsaction [事务名称]
COMMIT TRANsaction
如果一个事务由于某些故障或者由于用户改变主意而必须在提交
前取消它,则数据库被恢复到这些语句和过程执行之前的状态。
利用ROLLBACK TRANsaction命令可以在COMMIT TRANsaction命令
前随时回退一个事务。
可以回退整个事务,也可以回退部分事务,但
是不能回退一个已经被提交的事务。
ROLLBACK TRANsaction命令为:
ROLLBACK TRANsaction [事务名|存储点名]
存储点名是用户放入事务中的标记,用来表示一个可以被回退的
位置。
存储点名通过在事务中放入一个SAVE TRANsaction命令而被插
入。
该命令的句法是:
SAVE TRANsaction 存储点名
如果在ROLLBACK TRANsaction中没有给出存储点名或事务名,则
事务被回退到批处理中的第一个BEGIN TRANsaction语句处。
SQL数据库的入门教材那本比较好?
MSSQL教程
Sql2000基础教程 Sql2000综合技巧 Sql2000安全漏洞 Sql2000存储过程 Sql2000函数组件 Sql2005综合文章
数据库用户
数据库属性设置
注册服务器
索引视图
更新数据
数据库中的连接查询
存储查询结果
嵌套查询
SQL Server 7.0 入门(三)
使用系统过程管理游标
SQL Server 连接基础知识
用户和安全性管理--SQL Server 的登录认证
精通数据库系列之入门-技巧篇4
关闭释放游标
创建索引
配置复制
数据库表结构
常见的数据库对象
声明游标
跟我学MS SQL Server(1)
网络数据库设计入门(七)ODBC与ADO对象1
事务复制
更改数据库
定位修改删除游标
管理触发器
Transact-SQL 语言概述
精通数据库系列之入门-技巧篇2
SQL语言入门教程:第一课简介
DTS 导入、导出向导
SQL数据操作基础(初级)5
权限管理
SET命令
SQL Server 2000 的全局变量
数据库维护计划
数据完整性概述
SQL语言入门教程:第五课删除数据库表格
SQL Server 2000 与-支持Web 应用的新特性
角色管理
算术函数
SQL Server 2000 的关键字
最佳SQL基础
创建数据库表
跟我学MS SQL Server(7)
SQL Server 7.0 入门(六)
跟我学MS SQL Server(3)
使用SQL Server Profiler
数据库更新--添加数据
INSTEAD OF 触发器
游标、游标的优点和种类
基于HTTP 的数据访问
关系数据库
sql 其它命令
XML 文档与数据库表
代理服务--配置SQL Server Agent
SQL语言入门教程:第三课数据查询
读取游标中的数据
用户自定义函数
精通数据库系列之入门-基础篇
Web Assistant Wizard
视图简介
ご冰之雪☆べ 回答时间 2007-12-10 08:37
其他答案o(∩_∩)o...哈哈```
我想幫你```
我有本數據庫的書```
你也有本```
SQL数据库的深入学习,应从哪个方面入手
先要学习哪些基本语句。
如:select...from 语句。
还有循环语句。
总之很多。
你真的可以买本书来看。
里面的语句都很有用,要学好,并分清了,不要搞混了。
因为有些东西挺乱的。
再来就是具体操作了。
你可以先建个表:然后是把前面的select..from语句用进去。
像是:select name from student where name="丽丽".这里的student就是表名。
name 是里面的一个元素。
这里是讲从表里找到一个名为丽丽的相关信息。
像这样的是简单的。
你还要学很多呢。
可以的话,可以相应的背一些东西。
最后,你还要会懂得把数据库连接到网页里。
怎么学习SQL~~
你是要学习sql语言,还是要学习sql server数据库呢
要是学习sql语言呢,
其实很简单的.
在网上下载一个sql 21 days,
是一个入门的sql 书籍.
等慢慢熟悉之后,再学习比较高级一点的sql 语言
要是学习sql server呢,
就买一本书,然后下载一个开发版的sql server软件,
照着书上的,
慢慢实践.