数据库试题

l 存储过程和函数的区别 存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。 . l 视图的优点?建立视图的基本语法结构? 视图的优点: 1. 视图对于数据库的重构造提供了一定程度的逻辑独立性。数据的逻辑独立性是指数据库重构造时,如数据库扩大 (增加了新字段,新关系等),用户和用户程序不会受影响。 2. 简化了用户观点。视图的机制使用户把注意力集中在他所关心的数据上。若这些数据不是直接来自基本表,则可以定义视图,从而使用户眼中的数据结构简单而直接了当, 并可大大简化用户的数据查询操作,特别是把若干表连接在一起的视图,把从表到表所需要的连接操作向用户隐蔽了起来。 3. 视图机制使不同的用户能以不同的方式看待同一数据。 4. 视图机制对机密数据提供了自动的安全保护功能。可以把机密数据从公共的数据视图(基本表)中分离出去,即针对不同用户定义不同的视图,在用户视图中不包括机密数据的字段。这样,这类数据便不能经由视图被用户存取,从而自动地提供了对机密数据的保护。 视图的基本语法结构: CREATE VIEW view_name [(column ][,...n])] AS select_statement 其中view_name为要建立的视图的名称,而AS子句后面的就是建立视图的查询语句。而此语句有以下限制:不能包含ORDER BY、COMPUTE和COMPUTE BY等子句;不能包含INTO关键字;不能涉及临时表。 . l 事务是什么? 事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为 ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务: 1、原子性:事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。 2、一致性:事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如 B 树索引或双向链表)都必须是正确的。 3、隔离性:由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。 4、持久性:事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。 . l 游标的作用?如何知道游标已经到了最后? 游标用于定位结果集的行,通过判断全局变量“@@FETCH_STATUS”可以判断是否到了最后。通常此变量不等于0表示出错或到了最后。 . l 触发器分为事前触发和事后触发,这两种触发有什么区别。语句级触发和行级触发有何区别。 事前触发器运行于触发事件发生之前,而事后触发器运行于触发事件发生之后。通常事前触发器可以获取事件之前和新的字段值。 语句级触发器可以在语句执行前或后执行,而行级触发在触发器所影响的每一行触发一次。 . l 数据库设计:请设计一个企业进销存系统的数据库表结构,需要实现基本的进销存管理,需要记录的信息包括:供应商信息、商品信息、库存信息、客户信息、出入库信息、仓库信息等;其中:入库视为进货,出库视为销售,且企业有多个仓库;请画表格描述表结构(需要说明每个字段的字段名、字段类型、字段含义描述); 在数据库设计中应: 1. 保证每个供应商、商品类别、客户、仓库等的唯一性; 2. 保证供应商信息、商品信息、仓库信息、客户信息与出入库信息之间的参照完整性; 3. 若有新供应商、新的商品、新的客户、新的仓库加入,保证自动生成其唯一性标识; 4. 数据库设计应为以下报表需求提供支持:(无特定说明,不需编写实现语句,而需在数据库设计中,保证这些报表可以用最多一条SQL语句实现): ü 日报表:每日进货、销售的商品种类与数目清单,包括对应的供应商信息、仓库信息等;每日企业毛利报表(销售与进货的价格差); ü 月报表:每月来自各个供应商的商品销售情况; ü 实时报表:盘点当前各仓库库存商品列表,包括商品名称、编号、库存时间等请编写实现此需求的SQL语句。 数据库应用: 请撰写一系列的SQL语句,描述完整的商品转库操作,即某种类的一部分商品,从某仓库中转运到另一仓库的过程中,进销存系统需要执行的一系列SQL语句;并保证这一系列的SQL语句的执行完整性。(Baidu) . l 在SQL Server中设计表来保存一个树状结构的组织结构图(假设结构图中只有名称这一项内容需要保存)。如果想查询某一职位下的所有职位,用一个存储过程来实现,你有什么思路? . l 2、假设有以下的两个表:*主键 Cus_A ID* Name Address … … … Cus_B ID* Name Address … … … 表Cus_A和表Cus_B的结构完全相同,表Cus_A和表Cus_B中既存在ID相同的记录,也存在ID不同的记录。现要求将ID只存在于表Cus_A中而不存在于表Cus_B中的记录全部插入到Cus_B表中,并用表Cus_A中的记录更新表Cus_B中相同的ID的记录,请写出完成这一功能的存储过程。 Create or procedure test is Declare id1 CusA.id%type; Begin Select id into id1 from CusA a,CusB b where a.id=b.id; . l 某公司正在开发一个档案管理系统,要求在关系数据库中实现和Windows文件系统完全一致的树状文件目录。为了实现这一目录结构,至少需求哪些表?请详细描述这些表的用途和结构(如有必要,可用图表进行描述)。用伪编码(或自然语言)描述按树状结构遍历所有档案的算法。 . l 选择表T中,num重复的记录 select * from T where num in( select num from T group by num having( count(num)>1 ) ) . l 提取数据库中第五行到第七行的记录 select top 3 UserID from T where UserID not in ( select top 4 UserID from T order by UserID ) order by UserID . l 一张表T有两个字段:ID、NAME,ID是主键。要查询所有拥有两个或更多ID的NAME。 select NAME from T group by NAME having COUNT(ID)>=2 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhouhong0801/archive/2008/03/31/2233032.aspx

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值