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

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. PHP面向对象__set(赋值方法)

    //类Ren里面的变量都是私有的,子类$r里面直接取是取不到的,正常给变量赋值的方法为$r->__set("age",20);,但是可以直接写成$r->age = 20 ...

  2. id=%d是什么意思呢?

    $branch=M('Branchs')->where("id=%d",session('branchid'))->find(); %d代表,逗号后面那个user[]的 ...

  3. HSL

    说明: HSL(H,S,L) 取值: H: Hue(色调).0(或360)表示红色,120表示绿色,240表示蓝色,也可取其他数值来指定颜色.取值为:0 - 360 S: Saturation(饱和度 ...

  4. sql server 查询本周、本月所有天数的数据

    查询本月所有的天数: --本月所有的天数 ),) day from (),,)+'-01' day) t1, ( ) t2 ),) ),,)+'%' 查询本周所有的天数: ),,),) ),,),) ...

  5. ubuntu安装Android Studio开发环境

    1.下载 https://developer.android.com/studio/ 2.解压文件,将文件夹copy到/opt/ 3.进入/opt/android-studio/bin,运行./stu ...

  6. Android平台介绍

    一.Android平台介绍 什么是智能手机 具有独立的操作系统,独立的运行空间,可以由用户自行安装软件.游戏.导航等第三方应用程序,并可以通过移动通讯网络来实现无线网络接入的手机类型总称. 智能手机操 ...

  7. python基础--类的方法

    一:类的方法说明 类的方法分为实例方法,析构方法,构造方法,类方法,静态方法,属性方法,等等 类方法和静态方法都可以被类和类实例调用,类实例方法仅可以被类实例调用 类方法的隐含调用参数是类,而类实例方 ...

  8. Python学习1-Python和Pycharm的下载与安装

    本文主要介绍Python的下载安装和Python编辑器Pycharm的下载与安装. 一.Python的下载与安装 1.下载 到Python官网上下载Python的安装文件,进入网站后显示如下图: 网速 ...

  9. HDU 1054 Strategic Game(最小路径覆盖)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1054 题目大意:给你一棵树,选取树上最少的节点使得可以覆盖整棵树. 解题思路: 首先树肯定是二分图,因 ...

  10. C# 文件存在,但是File.Exists 判断不存在的问题

    这里说的不是文件路径错了的情况,而是明明文件就存在,但是File.Exists返回false. win10系统. 查看接口说明才知道,如果你不是按管理员方式启动VS,而此文件需要管理员权限才能访问,此 ...