数据库常见面试题总结

1. 数据库三范式是什么?

第一范式:表中每个字段都不能再分。
第二范式:满足第一范式并且表中的非主键字段都依赖于主键字段。完全依赖 不能是部分依赖
第三范式:满足第二范式并且表中的非主键字段必须不传递依赖于主键字段。 直接依赖不能间接依赖

2. 什么是数据库事务?

事务具有四大特性:一致性、原子性、隔离性、持久性。
数据库事务是指:几个SQL语句,要么全部执行成功,要么全部执行失败。比如银行转账就是事务的典型场景。
数据库事务的三个常用命令:Begin Transaction、Commit Transaction、RollBack Transaction。

3. 什么是视图?

视图实际上是在数据库中通过Select查询语句从多张表中提取的多个表字段所组成的虚拟表。
l 视图并不占据物理空间,所以通过视图查询出的记录并非保存在视图中,而是保存在原表中
l 通过视图可以对指定用户隐藏相应的表字段,起到保护数据的作用。 我们公司的一些重要字段 不希望 被其他人看到
l 在满足一定条件时,可以通过视图对原表中的记录进行增删改操作。
创建视图时,只能使用单条select查询语句

4. 什么是索引?

索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。
l 索引分为:聚集索引、非聚集索引、唯一索引等。
l 一张表可以有多个唯一索引和非聚集索引,但最多只能有一个聚集索引。
l 索引可以包含多列。
l 合理的创建索引能够提升查询语句的执行效率,但降低了新增、删除操作的速度,同时也会消耗一定的数据库物理空间。

5. 什么是存储过程?

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

6. 什么是触发器?

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

8. 写出一条Sql语句:取出表A中第31到第40记录 (Mysql)

select * from A limit 30, 10

9. 写出一条Sql语句:取出表A中第31到第40记录 (Oracle)

select * from

(select * from user where ROUNUMBER )

select *
from (select A.*,
row_number() over (order by id asc) rank
FROM A)   
where rank >=31 AND rank<=40;

10. 在关系型数据库中如何描述多对多的关系?

在关系型数据库中描述多对多的关系,需要建立第三张数据表。比如学生选课,需要在学生信息表和课程信息表的基础上,再建立选课信息表,该表中存放学生Id和课程Id。

11. 什么是数据库约束,常见的约束有哪几种?

数据库约束用于保证数据库表数据的完整性(正确性和一致性)。可以通过定义约束\索引\触发器来保证数据的完整性。
总体来讲,约束可以分为:
主键约束:primary key;
外键约束:foreign key;
唯一约束:unique;
检查约束:check;
空值约束:not null;
默认值约束:default;

12. 列举几种常用的聚合函数?

Sum:求和\ Avg:求平均数\ Max:求最大值\ Min:求最小值\ Count:求记录数

13. 什么是内联接、左外联接、右外联接?

l 内联接(Inner Join):匹配2张表中相关联的记录。
l 左外联接(Left Outer Join):除了匹配2张表中相关联的记录外,还会匹配左表中剩余的记录,右表中未匹配到的字段用NULL表示。
l 右外联接(Right Outer Join):除了匹配2张表中相关联的记录外,还会匹配右表中剩余的记录,左表中未匹配到的字段用NULL表示。
在判定左表和右表时,要根据表名出现在Outer Join的左右位置关系。

14. 如何在删除主表记录时,一并删除从表相关联的记录?

如果两张表存在主外键关系,那么在删除主键表的记录时,如果从表有相关联的记录,那么将导致删除失败。
在定义外键约束时,可以同时指定3种删除策略:一是将从表记录一并删除(级联删除);二是将从表记录外键字段设置为NULL;三是将从表记录外键字段设置为默认值。
级联删除示例:
alter table 从表名
add constraint 外键名
foreign key(字段名) references 主表名(字段名)
on delete cascade

15. 什么是游标?

游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录进行处理的机制。
游标的使用步骤:
1. 定义游标:declare cursor 游标名称 for  select查询语句 [for {readonly|update}]
2. 打开游标:open cursor
3. 从游标中操作数据:fetch... ...   current of cursor
4. 关闭游标:close cursor

转载于:https://www.cnblogs.com/shan1393/p/9117585.html

面试题: 数据库 已看1 视图 游标相关推荐

  1. 面试题: mysql数据库 已看1 索引和事务 没用

    mysql数据库面试总结 2017年09月04日 00:11:40 阅读数:151 结合网上大神还有自己面试经历,收集的总结Mysql面试题,方便自己准备面试: mysql一个永远都复习不完,尽量总结 ...

  2. 面试题: mysql数据库 已看1 简单的sql练习

    数据库总结--MySQL常见面试题 2015年03月24日 17:56:06 阅读数:7787 1.根据部门号从高到低,工资从低到高列出员工的信息 select * from employee ord ...

  3. 面试题: mysql 数据库已看 sql安全性 索引 引擎 sql优化

    总结的一些MySQL数据库面试题 2016年06月16日 11:41:18 阅读数:4950 一.sql语句应该考虑哪些安全性? (1)防止sql注入,对特殊字符进行转义,过滤或者使用预编译的sql语 ...

  4. mysql数据库简单查询试题_面试题: mysql数据库 已看1 简单的sql练习

    1.根据部门号从高到低,工资从低到高列出员工的信息 select * from employee order by dept_id desc,salary 2.union和union all的区别 用 ...

  5. 面试题:各大公司Java后端开发面试题总结 已看1 背1 有用 链接有必要看看

    ThreadLocal(线程变量副本)       --整理 Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量. 采用空间换时间,它用于线程间的数据隔离,为每一个 ...

  6. 面试题: 难点 已看1

    1.http和https区别 https协议需要到ca申请证书,一般免费证书很少,需要交费.  http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议  http和h ...

  7. MySql基础篇---004 其它数据库对象篇:视图,存储过程与函数,变量、流程控制与游标 ,触发器

    第14章_视图 讲师:尚硅谷-宋红康(江湖人称:康师傅) 官网:http://www.atguigu.com 1. 常见的数据库对象 对象 描述 表(TABLE) 表是存储数据的逻辑单元,以行和列的形 ...

  8. 再看数据库——(2)视图

    概念 *是从用户使用数据库的观点来说的. *从一个或多个表(视图)中导出来的 *一个虚表,或者说查询表 为什么要用视图呢? 一是简单,看到的就是需要的.视图不仅可以简化用户对数据的理解,也可以简化他们 ...

  9. JAVA 实习面试题大全必看

    JAVA 实习面试题大全必看 JavaSE 88 基础语法 9 Q1:简单说说Java有哪些数据类型 答:①分为基本数据类型和引用数据类型.②基本数据类型包括:数值型(byte.short.int.l ...

最新文章

  1. 工作汇报ppt案例欣赏_领导最喜欢的工作汇报PPT,原来长这个样子!网友:教科书级案例...
  2. 【ORACLE】碎片整理
  3. 思科分析引擎助力大型数据中心应用发展
  4. html div背景半透,css半透明背景实现方法
  5. While executing gem ... (Errno::EACCES)
  6. 转载-如何做好项目的需求与业务调研
  7. sys接口linux编程,网络编程常用接口的内核实现----sys_listen()
  8. SpringBoot高级-消息-@RabbitListener@EnableRabbit
  9. 《计算机组成原理》----2.3 二进制运算
  10. Vue深入学习—虚拟DOM和Diff算法
  11. java column_@Column注解属性详解
  12. 中国政法大学政治与公共管理学院丛日云教授在毕业典礼上的演讲在网络上暴红,
  13. Intent以及IntentFilter详解 1
  14. app逆向入门分析——破解某APP登陆请求参数
  15. Excel常用10个函数
  16. 《现代汉语》北大公开课
  17. 2022 年最有前景的 5 个 Web IDE
  18. python格式规范的要求_Python书写规范
  19. 警惕,新增1本,被剔除1本,最新12月SCIE SSCI期刊目录更新
  20. 对未来的一些规划和想法

热门文章

  1. linux手写数字识别opencv,opencv实现KNN手写数字的识别
  2. dubbo扫描第三方包_今天来浅谈一下dubbo
  3. python打包的exe如何免杀_通过Python实现Payload分离免杀过程详解
  4. android自定义滑块解锁,android 滑动解锁
  5. i基准指令集 mips_mips addiu
  6. python中rand和randn_rand、randn、randi区别及用法
  7. 【 FPGA 】寄存器输出的不稳定态
  8. Google AMP WebPackage 在 Webnovel 的应用
  9. 代码整洁之道(一)最佳实践小结
  10. postgresql windows 开发环境搭建