`

数据库常见的面试题

阅读更多

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

      第一范式:表中每个字段都不能再分。

      第二范式:满足第一范式并且表中的非主键字段都依赖于主键字段。

      第三范式:满足第二范式并且表中的非主键字段必须不传递依赖于主键字段。

2.什么是数据库事务?

     事务具有四大特性:一致性、原子性、隔离性、持久性。

     数据库事务是指:几个SQL语句,要么全部执行成功,要么全部执行失败。比如银行转账就是事务的典型场景。

     数据库事务的三个常用命令:Begin Transaction、Commit Transaction、RollBack Transaction。

3.什么是视图?

     视图实际上是在数据库中通过Select查询语句从多张表中提取的多个表字段所组成的虚拟表。

  视图并不占据物理空间,所以通过视图查询出的记录并非保存在视图中,而是保存在原表中。

  通过视图可以对指定用户隐藏相应的表字段,起到保护数据的作用。

  在满足一定条件时,可以通过视图对原表中的记录进行增删改操作。

  创建视图时,只能使用单条select查询语句。

4.什么是索引?

   索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。

  索引分为:聚集索引、非聚集索引、唯一索引等。

  一张表可以有多个唯一索引和非聚集索引,但最多只能有一个聚集索引。

  索引可以包含多列。

  合理的创建索引能够提升查询语句的执行效率,但降低了新增、删除操作的速度,同时也会消耗一定的数据库物理空间。

5.什么是存储过程?

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

6.什么是触发器?

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

7.写出一条Sql语句:取出表A中第31到第40记录 (MS-SQLServer)

    解1:select top 10 * from A where id not in (select top 30 id from A) 

        2:select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A) 

     解3:select * from (select *, Row_Number() OVER (ORDER BY id asc) rowid FROM A) as A where rowid between 31 and 40

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

     select * from A limit 30, 10

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

     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.什么是内联接、左外联接、右外联接?

内联接(Inner Join):匹配2张表中相关联的记录。

左外联接(Left Outer Join):除了匹配2张表中相关联的记录外,还会匹配左表中剩余的记录,右表中未匹配到的字段用NULL表示。

右外联接(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

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    数据库常见面试题

    ### 数据库常见面试题知识点详解 #### 一、数据抽象与多级模式 - **物理抽象**:指数据库中数据的存储方式,如文件结构、存储分配等。 - **概念抽象**:指的是数据库中数据的概念视图,即数据的逻辑结构。 - **...

    oracle数据库常见面试题

    以下是一些Oracle数据库常见的面试题及其详解: 1. **Oracle数据类型**:了解Oracle支持的数据类型,如VARCHAR2、NUMBER、DATE、BLOB等,以及它们的应用场景。 2. **SQL基础**:掌握基本的SQL语句,如SELECT、...

    sql数据库常见面试题

    数据库面试中,面试官经常通过一些常见面试题来考察应聘者对SQL语言的熟练程度,理解程度以及实际应用能力。本文将介绍一些SQL数据库的常见面试题,它们不仅覆盖了基础知识点,也包含了一些实际操作中的应用技巧。 ...

    数据库常见面试题型总结_数据库语句面试题

    数据库常见面试题型总结_数据库语句面试题 数据库常见面试题型总结是数据库方面常见面试题型的总结,涵盖了数据库语句、SQL 优化、Web 相关知识点等。以下是对标题和描述中所说的知识点的详细说明: 一、IN 和 ...

    数据库笔试题及答案,常见数据库面试题

    数据库笔试题及答案涵盖了...这些题目覆盖了数据库基础、数据结构、编程原理、数据库设计和SQL等多个方面,是数据库工程师和程序员面试的常见测试点。理解和掌握这些知识点对于在IT行业中从事数据库相关工作至关重要。

    数据库常见面试题.docx

    以下是一些常见的数据库面试题及其解析,这些题目涵盖了数据库的基础概念、高级特性和最佳实践。 1. **数据连接池的工作机制** 数据连接池是管理数据库连接的一种机制,用于优化数据库应用性能。它在J2EE服务器...

    (40条消息) MySQL数据库面试题(2020最新版)_ThinkWon的博客-CSDN博客_mysql数据库面试题.html

    (40条消息) MySQL数据库面试题(2020最新版)_ThinkWon的博客-CSDN博客_mysql数据库面试题.html

    数据库常见面试题基础知识及汇总

    数据库中以表为组织单位存储数据。 表类似我们的Java类,每个字段都有对应的数据类型。 那么用我们熟悉的java程序来与关系型数据对比,就会发现以下对应关系。 类----------表 类中属性----------表中字段 对象...

    sql数据库常见的面试题

    ### SQL数据库常见面试题解析 #### 1. MSSQL Server数据库信息系统的输出是什么? - A. Asp_dbhelp - B. sp_db - C. sp_help - D. sp_helpdb **正确答案:** D. sp_helpdb - **解析:** 在SQL Server中,`sp_...

    MySQL数据库工程师常见面试题

    ### MySQL数据库工程师常见面试题详解 #### 问题1:为什么GROUP BY和ORDER BY会使查询变慢? GROUP BY 和 ORDER BY 操作通常会增加查询的复杂度,从而导致性能下降。这是因为这两种操作通常需要对查询结果进行额外...

    20个数据库常见面试题讲解 - 搜云库技术团队1

    本文将深入探讨一些数据库面试中常见的问题,帮助你更好地理解和应对这些挑战。 首先,我们来了解一下事务的四大特性——ACID。ACID是原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性...

    数据库工程师常见面试题.pdf

    以下是对文件“数据库工程师常见面试题.pdf”中提到的各个知识点的详细解释: 1. 关于groupby和orderby操作导致查询变慢的原因,主要是因为这两个操作在处理大量数据时,需要创建临时表以暂存处理结果。由于临时表...

    数据库面试题数据库面试题.

    数据库面试题涵盖了数据库基础知识、数据结构、算法、面向对象编程、软件工程以及特定数据库系统(如Visual FoxPro和SQL)的使用等多个方面。以下是这些题目所涉及的关键知识点的详细解释: 1. **算法的执行效率与...

    数据库面试题(汇总所有的数据库面试题).zip

    这份"数据库面试题(汇总所有的数据库面试题).zip"压缩包显然包含了一系列与数据库相关的面试问题,旨在帮助求职者准备应对各种数据库面试挑战。以下是根据标题、描述以及可能的文件内容总结出的一些关键知识点: ...

    SQLSERVER数据库面试题及答案

    面对数据库面试时,候选人需要具备扎实的理论基础和实践经验,以下我们将为您提供一些常见的数据库面试题和答案,帮助您更好地准备面试。 1. 使用标准 SQL 嵌套语句查询选修课程名称为“税收基础”的学员学号和姓名...

    数据库经典面试题及答案.pdf

    ### 数据库设计与管理核心知识点解析 #### 一、数据库设计基本原则 在设计数据库时,遵循一系列...以上知识点涵盖了数据库设计的基本原则、规范化过程以及常见的面试题解答,对于理解和掌握数据库技术具有重要意义。

    数据库个常见笔试面试题汇总

    以下是一些数据库常见笔试和面试题目的详细解析,旨在帮助你更好地准备应聘过程。 1. **数据库基本概念** - **RDBMS(关系型数据库管理系统)**:如MySQL、Oracle、SQL Server等,它们基于关系模型,以表格形式...

    oracle数据库dba面试题.doc

    Oracle数据库DBA面试题涵盖了数据库管理的多个关键领域,包括备份与恢复、数据库配置、数据存储、索引优化、约束、数据库性能监控等。以下是对这些知识点的详细说明: 1. **冷备份与热备份**:冷备份是在数据库关闭...

    Mysql数据库部分面试题.doc

    - 讨论查询性能优化也是常见的面试话题。例如,使用索引、避免全表扫描、优化JOIN操作以及何时使用子查询或关联查询等。 9. **事务管理**: - MySQL支持ACID特性,面试中可能会问到关于事务的概念,例如隔离级别...

    所有常见数据库面试题

    根据给定文件中的标题“所有常见数据库面试题”以及描述“所有常见数据库面试题,最多最全”,可以推测本文档旨在提供一系列与数据库相关的常见面试问题,并通过具体例子来加深理解。结合提供的部分示例代码及数据库...

Global site tag (gtag.js) - Google Analytics