zoukankan      html  css  js  c++  java
  • 面试题: 数据库已看1 视图存储过程 没用

    存储过程和函数的区别

    存储过程是用户定义的一系列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

  • 相关阅读:
    转: requirejs压缩打包r.js使用示例 2 (~~很详细的教程)
    转:requirejs打包压缩r.js使用示例
    转: RequireJS Optimizer 的使用和配置方法
    转:requirejs:让人迷惑的路径解析(~~不错)
    转: requirejs中文api (详细)
    转: 让html5标签在ie8及以下的被正确解析的解决方案
    浏览器对body节点scrollTop解析的差异
    vue全局配置
    vue watch 深度监听以及立即监听
    Vue插件
  • 原文地址:https://www.cnblogs.com/shan1393/p/9117691.html
Copyright © 2011-2022 走看看