面试题: 数据库未看8

存储过程和函数的区别

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

原文地址:https://www.cnblogs.com/shan1393/p/9117691.html

时间: 2024-10-31 15:43:08

面试题: 数据库未看8的相关文章

面试题: 数据库 未看4

什么是存储过程?有哪些优缺点? 什么是存储过程?有哪些优缺点? 存储过程就像我们编程语言中的函数一样,封装了我们的代码(PLSQL.T-SQL). 存储过程的优点: 能够将代码封装起来 保存在数据库之中 让编程语言进行调用 存储过程是一个预编译的代码块,执行效率比较高 一个存储过程替代大量T_SQL语句 ,可以降低网络通信量,提高通信速率 存储过程的缺点: 每个数据库的存储过程语法几乎都不一样,十分难以维护(不通用) 业务逻辑放在数据库上,难以迭代 三个范式是什么 三个范式是什么 第一范式(1N

面试题: mysql数据库 未看7

mysql数据库面试总结 2017年09月04日 00:11:40 阅读数:151 结合网上大神还有自己面试经历,收集的总结Mysql面试题,方便自己准备面试: mysql一个永远都复习不完,尽量总结,差不多就可以去面试(个人观点) 1.数据库事务的四个特性及含义 数据库事务transanction正确执行的四个基本要素.ACID,原子性(Atomicity).一致性(Correspondence).隔离性(Isolation).持久性(Durability). 原子性:整个事务中的所有操作,要

面试题: 数据库 oracle数据库 未看6

Oracle数据库面试题总结 2017年04月27日 22:41:44 阅读数:9271 1.SQL语句分类 DQL(数据查询语言)select DML(数据操作语言)insert.delete.update DDL(数据定义语言)create.drop.alter DCL(数据控制语言)grant:把权限授予用户.revoke:把权限从用户收回 TPL(TCL,事务控制语言):commit.rollback 2.Oracle是怎样分页的 Oracle用rownum进行分页 分页语句的步骤: a

面试题: mysql数据库未看10

数据库总结--MySQL常见面试题 2015年03月24日 17:56:06 阅读数:7787 1.根据部门号从高到低,工资从低到高列出员工的信息 select * from employee order by dept_id desc,salary 2.union和union all的区别用union连接表后,重复的记录会被删除掉用union all连接表后,记录会被完整保留 3.分页语句(用sql语句直接分页,效率高)    pageSize = 20;    pageNo = 5; sel

面试题:面试题归类 !=!=未看 2

一.Java基础 1. String类为什么是final的. 答:主要是为了"效率" 和 "安全性" 的缘故.若 String允许被继承, 由于它的高度被使用率, 可能会降低程序的性能,所以String被定义成final. 2. HashMap的源码,实现原理,底层结构. 答:Java集合---HashMap源码剖析 3. 说说你知道的几个Java集合类:list.set.queue.map实现类咯... 4. 描述一下ArrayList和LinkedList各自实

面试题:各大公司Java后端开发面试题总结 !=!未看

ThreadLocal(线程变量副本) Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量. 采用空间换时间,它用于线程间的数据隔离,为每一个使用该变量的线程提供一个副本,每个线程都可以独立地改变自己的副本,而不会和其他线程的副本冲突. ThreadLocal类中维护一个Map,用于存储每一个线程的变量副本,Map中元素的键为线程对象,而值为对应线程的变量副本. ThreadLocal在Spring中发挥着巨大的作用,在管理Request作用域中的Bean.事

面试题:总结 !=!=未看

一.如何比较两个对象,比如学生类,根据属性年龄比较大小 参考:http://zhidao.baidu.com/link?url=0eh3YqTJGUd0Kp9R_YM3q2sh2A39i55sh2_SNFokjnqshjr8rlLew94IE6ZXw6WHiPr3WwrbTT7JQu8jx4RCYa&qq-pf-to=pcqq.group [python] view plain copy import java.util.*; public class Demo10 { public stati

面试题: 各种 !=!=未看

1.servlet执行流程 客户端发出http请求,web服务器将请求转发到servlet容器,servlet容器解析url并根据web.xml找到相对应的servlet,并将request.response对象传递给找到的servlet,servlet根据request就可以知道是谁发出的请求,请求信息及其他信息,当servlet处理完业务逻辑后会将信息放入到response并响应到客户端. 2.springMVC的执行流程 springMVC是由dispatchservlet为核心的分层控制

面试题:面试题归类 !=!=未看

Java开发岗位面试题归类汇总,在微博看到的一篇文章,只有问题,没有答案,我具体写了一下每个问题大致的参考答案,仅供参考 一.Java基础 1.String类为什么是final的 答:主要是为了"效率" 和 "安全性" 的缘故.若 String允许被继承, 由于它的被使用率很高, 可能会降低程序的性能,所以String被定义成final.Final可以修饰类.方法.属性,分别代表类不可继承,方法不可重写,属性值不可改变.其中对于属性的修改,当final修饰基本数据类