最近整理了一些数据库常见的面试题,对自己也是个复习,希望对大家也有所帮助。

1.触发器的作用?

触发器是一类特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。

2,什么是存储过程? 用什么来调用?

存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需要创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。可以一个命令对象来调用存储过程。

3,索引的作用?它的优点缺点是什么?

索引就是一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。它很类似与现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据。索引可以是唯一的,创建索引允许指定单个列或者是多个列。缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。

4,.事务的持续性是指?A

A.事务一旦提交,对数据库的改变是永久的 
B.事务包括的所有操作要么都做,要么不做
C.一个事务内部的操作及使用的数据对并发的其他事务是隔离的
D.事务必须是使数据库从一个致性状态变到另一个致性状态

解析:事务的持久性(也叫永久性)是指一旦事务提交成功,其对数据修改是持久性的。数据更新的结果已经从内存转存到外部存储器上,此后即使发生了系统故障,已提交事务所做的数据更新也不会丢失。

5,以下哪个选项时DBMS的基本单位,是构成单一逻辑工作单元的操作集合  C
A.进程 
B.SQL 
C.事务 
D.文件

6,SQL语句性能分析的关键字是什么?A
A.EXPLAIN 
B.LOAD 
C.TOP 
D.SUM

explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看SQL语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好的优化语句。 explain语法:explain select … from … [where ...] 例如:explain select * from news;

7,在关系数据库中,用来表示实体间联系的是?B
A属性 
B二维表
C网状结构
D树状结构

[解析] 关系模型实体间的联系采用二维表来表示,简称表。选项C为网状模型实体间的联系,选项D为层次模型实体间的联系,选项A属性刻画了实体。

8,sql where条件的执行顺序是什么? A
A从前往后
B从后往前
C其他什么顺序

9,数据库中事务隔离分为4个级别,其中允许“不可重复读”的有?(求解释) BC
A SERIALIZABLE 
B READ COMMITTED 
C READ UNCOMMITTED 
D REPEATABLE READ

C:出现脏读,幻读,不可重复读。 
B:出现幻读,不可重复读。 
D:出现幻读 
A:不出现上述问题。 
Read Uncommitted:不隔离数据,对于事务使用的数据,其他事务也能修改删除。 
Read Committed:不允许读取没有提交的数据,只有其他事务提交了数据,你才能访问。 
Repeatable Read:事务中用到的数据都被锁定,其他事务不能修改和删除。 
Snapshot:快照隔离 
Serilizable:事务要用到的数据全部锁定,不允许其他事务添加,修改,删除。

10,spring的PROPAGATION_REQUIRES_NEW事务,下面哪些说法是正确的? B
A.内部事务回滚会导致外部事务回滚 
B,内部事务回滚了,外部事务然然可以提交 
C.外部事务回滚了,内部事务页跟着回滚 
D.外部事务回滚了,内部事务仍然可以提

11,在视图上不能万恒的操作是C
A.更新视图 
B.查询 
C.在视图上定义新的表 
D.在视图上定义新的视图

12,下面有关sql绑定变量的描述,说法错误的是? C
A绑定变量是指在SQL语句中使用变量,改变变量的值来改变SQL语句的执行结果
B使用绑定变量,可以减少SQL语句的解析,能减少数据库引擎消耗在SQL语句解析上的资源
C使用绑定变量,提高了编程效率和可靠性,减少访问数据库的次数
D使用绑定变量,查询优化器会预估的比字面变量更加真实

13,下面有关SQL Server锁的描述,正确的有 
A锁可以分为独占锁(即排它锁),共享锁和更新锁。
BSQL Server支持的锁粒度可以分为为行、页、键、键范围、索引、表或数据库。
CSQL Server 通过使用SET LOCK_TIMEOUT命令设定锁超时间隔。
D锁的主要作用是提供事务所需的隔离。隔离确保事务之间不会相互干扰。

<分析>: 
(1) 概念: 
数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。 
加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此数据对象进行更新操作。 
(2) 锁的分类: 
共享(S)锁:多个事务可封锁一个共享页;任何事务都不能修改该页; 通常是该页被读取完毕,S锁立即被释放。 
排它(X)锁:仅允许一个事务封锁此页;其他任何事务必须等到X锁被释放才能对该页进行访问;X锁一直到事务结束才能被释放。 
更新(U)锁:更新锁在修改操作的初始化阶段用来锁定可能要被修改的资源,这样可以避免使用共享锁造成的死锁现象。因为使用共享锁时,修改数据的操作分为两步,首先获得一个共享锁,读取数据,然后将共享锁升级为排它锁,然后再执行修改操作。这样如果同时有两个或多个事务同时对一个事务申请了共享锁,在修改数据的时候,这些事务都要将共享锁升级为排它锁。这时,这些事务都不会释放共享锁而是一直等待对方释放,这样就造成了死锁。如果一个数据在修改前直接申请更新锁,在数据修改的时候再升级为排它锁,就可以避免死锁。 
(3) 锁的粒度: 
在sql server2000中锁是具有粒度的,即可以对不同的资源加锁。锁定在较小的粒度的资源(例如行)上可以增加系统的并发量但需要较大的系统开销,从而也会影响系统的性能,因为锁定的粒度较小则操作可能产生的锁的数量会增加;锁定在较大的粒度(例如表)就并发而言是相当昂贵的,因为锁定整个表限制了其它事务对表中任意部分进行访问,但要求的开销较低,因为需要维护的锁较少,所以在这里是一种互相制约的关系。 
Sql server2000中锁定的粒度包括 行、页、扩展盘区、表、库等资源。

14,事务日志用于保存  C
A程序运行过程
B程序的执行结果
C对数据的更新操作
D对数据的查询操作

记录数据库事务,最大限度地保证数据的一致性与安全性 
重做日志文件:含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复,一个数据库至少需要两个重做日志文件 
归档日志文件:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。

15,数据库事务正确执行的四个基本要素不包括?C
A隔离性
B持久性
C强制性
D一致性

16,要删除表A中数据,使用TRUNCATE TABLE A。运行结果是?A
A 表A中的约束依然存在
B 表A被删除了
C 表A中的数据被删除了一半,再次执行时,将删除剩下的一半数据行
D 表A中不符合检查约束要求的数据被删除,而符合检查约束要求的数据依然保留

删除表的语句为:DROP TABLE table_name; 
而DELETE和TRUNCATE TABLE都是删除表中的数据的语句,它们的不同之处在于: 
1、TRUNCATE TABLE比DELETE的速度快; 
2、TRUNCATE TABLE 是删除表的所有行,而DELETE是删除表的一行或者多行(除非DELETE不带WHERE语句); 
3、在删除时如果遇到任何一行违反约束(主要是外键约束),TRUNCATE TABLE仍然删除,只是表的结构及其列、约束、索引等保持不变,但DELETE是直接返回错误; 
4、对于被外键约束的表,不能使用TRUNCATE TABLE,而应该使用不带WHERE语句的DELETE语句。

5、如果想保留标识计数值,要用DELETE,因为TRUNCATE TABLE会对新行标志符列搜用的计数值重置为该列的种子。

17,有关数据冗余说法错误的是 () C
A 数据库中,数据存在副本的现象,就是数据冗余 
B 通过分类存储,可以有效减少数据冗余,但是会增加数据查找的复杂性 
C 在数据库设计阶段,一定要尽最大可能避免数据冗余,最好做到无数据冗余。 
D 数据冗余通常是由于数据库设计引起的。

18,下面有关事务隔离级别说法正确的是? ABCD
A未提交读(Read Uncommitted):允许脏读,也就是可能读取到其他会话中未提交事务修改的数据 
B提交读(Read Committed):只能读取到已经提交的数据 
C可重复读(Repeated Read):在同一个事务内的查询都是事务开始时刻一致的 
D串行读(Serializable):完全串行化的读,每次读都需要获得表级共享锁,读写相互都会阻塞

mysql常见知识点的更多相关文章

  1. mysql常见知识点总结

    mysql常见知识点总结 参考: http://www.cnblogs.com/hongfei/archive/2012/10/20/2732516.html https://www.cnblogs. ...

  2. MySQL 锁常见知识点&面试题总结

    节选自 <MySQL 常见知识点&面试题总结> 表级锁和行级锁了解吗?有什么区别? MyISAM 仅仅支持表级锁(table-level locking),一锁就锁整张表,这在并发 ...

  3. 可能是全网最好的MySQL重要知识点 | 面试必备

    可能是全网最好的MySQL重要知识点 | 面试必备  mp.weixin.qq.com 点击蓝色“程序猿DD”关注我 回复“资源”获取独家整理的学习资料! 标题有点标题党的意思,但希望你在看了文章之后 ...

  4. MySQL重要知识点

    可能是全网最好的MySQL重要知识点 |  mp.weixin.qq.com 点击蓝色“程序猿DD”关注我 回复“资源”获取独家整理的学习资料! 标题有点标题党的意思,但希望你在看了文章之后不会有这个 ...

  5. sql注入原理+mysql相关知识点

    什么是SQL注入 sql就是经常说的数据库,而sql注入就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.SQL注入是比较常见的网络攻击 ...

  6. 面试题总结:可能是全网最好的MySQL重要知识点

    标题有点标题党的意思,但希望你在看了文章之后不会有这个想法--这篇文章是作者对之前总结的 MySQL 知识点做了完善后的产物,可以用来回顾MySQL基础知识以及备战MySQL常见面试问题. 什么是My ...

  7. MySQL索引知识点&面试常见问题

    来源:BiggerBoy 作者:北哥 原文链接:https://mp.weixin.qq.com/s/fucHvdRK5wRrDfBOo6IBGw 大家好我是北哥,今天整理了MySQL索引相关的知识点 ...

  8. Mysql常见四种索引的使用

    提到MySQL优化,索引优化是必不可少的.其中一种优化方式 --索引优化,添加合适的索引能够让项目的并发能力和抗压能力得到明显的提升. 我们知道项目性能的瓶颈主要是在"查(select)&q ...

  9. mysql 常见的几个错误问题

    Mysql常见的几个错误问题及解决方法: 1.问题: mysql DNS反解:skip-name-resolve 错误日志有类似警告: 点击(此处)折叠或打开 120119 16:26:04 [War ...

随机推荐

  1. HDU 1010 Tempter of the Bone (广搜+减枝)

    题目链接 Problem Description The doggie found a bone in an ancient maze, which fascinated him a lot. How ...

  2. 【codeforces】【比赛题解】#937 CF Round #467 (Div. 2)

    没有参加,但是之后几天打了哦,第三场AK的CF比赛. CF大扫荡计划正在稳步进行. [A]Olympiad 题意: 给\(n\)个人颁奖,要满足: 至少有一个人拿奖. 如果得分为\(x\)的有奖,那么 ...

  3. 13-6_mysql索引_1_Mysql_Learning_Notes_20180719_13-6

    mysql索引_1_Mysql_Learning_Notes 二分查找/折半查找法,binary search 一种在有序数组中查找某一特定元素的搜索算法; 二分查找法的优点是比较少次数,查找速度快, ...

  4. Nginx常见错误与问题之解决方法技术指南

      Nginx常见错误与问题之解决方法技术指南. 安装环境: 系统环境:redhat enterprise 6.5 64bit 1.Nginx 常见启动错误 有的时候初次安装nginx的时候会报这样的 ...

  5. 六、springboot集成Swagger2

    1.Swagger简介 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法 ...

  6. 05 Diagnostics 诊断

    Diagnostics 诊断 Introduction 介绍 Profiling 分析 Tracing 跟踪 Debugging 调试 Runtime statistics and events 运行 ...

  7. SpringCloud常用注解

    一 @EnableDiscoveryClient,@EnableEurekaClient的区别 SpringCLoud中的“Discovery Service”有多种实现,比如:eureka, con ...

  8. Mysql Limit操作

    oracle : ||   mysql: contact    contact_ws 拼接   Font Size: Large | Medium | Small select * from tabl ...

  9. 深入理解HashMap(及hash函数的真正巧妙之处)

    原文地址:http://www.iteye.com/topic/539465 Hashmap是一种非常常用的.应用广泛的数据类型,最近研究到相关的内容,就正好复习一下.网上关于hashmap的文章很多 ...

  10. mac系统安装redis

    1.下载 打开官网:https://redis.io/ Download---Stable---Download3.2.8,下载最新稳定版,这里是3.2.8 2.安装 下载完成后,打开命令行工具,执行 ...