• Java(面试题准备(技术面)(数据库部分))


    Java(面试题准备(技术面)(数据库部分))

    1. 什么是事务?

    • 要么都成功,要么都失败
    1. SQL执行 A给B转账 A1000 -> 200 B200
    2. SQL执行 B收到A钱 A800 -> B400
    • 将一组SQL放在一个批次中去执行

    2. 数据库事务的四大特性——ACID

    • ACID:
      • 原子性(Atomicity)
          事务中的操作要么都成功,要么都失败。
      • 一致性(Consistency)
          事务前后数据的完整性必须保持一致。
      • 隔离性(Isolation)
          多用户并发访问数据库时,数据库开启的各个事务之间相互隔离,不能被干扰。
      • 持久性(Durability)
          事务一旦提交则不可逆,被持久化到数据库中。

    • 隔离所导致的一些问题:
      • 脏读:
        • 指一个事务读取了另一个事务未提交的数据。
      • 不可重复读:
        • 指在一个事务内读取表中某一行数据,多次读取的结果不同。(不一定是错误,可能场合不对。)
      • 虚读(幻读)
        • 指在一个事务内读取了别的事务插入的数据,导致前后读取不一致。

    3. 数据库三大范式(了解)

    • 第一范式(1NF)
      • 原子性:保证每一列不可再分
    • 第二范式(2NF)
      • 前提:满足第一范式
      • 第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)
      • 每张表只描述一件事情
    • 第三范式(3NF)
      • 前提:满足第一范式和第二范式
      • 第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。

    4. 规范性和性能的问题:

    • 关联查询的表不得超过三张表
      • 考虑商业化的需求和目标(成本,用户体验),数据库的性能更加重要
      • 在规范性能的问题的时候,需要适当的考虑一下规范性
      • 故意给某些表增加一些冗余的字段。(从多表查询中变为单表查询)
      • 故意增加一些计算列(从大数据库降低为小数据量的查询:索引)

    5. select语句

    6. 增删改语句

    7. 如何优化MySQL?

    • 优化SQL语句
      • 使用连表查询(JOIN)代替子查询
      • 使用联合查询(UNION)代替临时创建的表
    • 建立索引
      • 优化索引
    • 优化数据库表结构
    • 优化系统配置
    • 优化硬件

    8. 索引的目的是什么?

    • 提高检索速度
    • 加速表之间的连接

    9. 索引的缺点?

    • 创建和维护需要耗费大量时间,
    • 也需要占用物理空间。

    10. 索引建立的原则?

    • 在 最频繁使用的、用来缩小查询范围的 字段上,建立索引
    • 在 频繁使用的、需要排序的 字段上,建立索引

    11. 不建议使用索引的情况?

    • 对于查询中很少涉及的列,或者重复值比较多的列,不宜建立索引
    • 对于某些特殊的数据类型,如文本字段(text)等,不宜建立索引

    12. SQL语言包括哪几个部分?

    • SQL 语言包括数据定义(DDL)、数据操纵(DML)、数据控制(DCL)和数据查询(DQL)四个部分。
      • 数据定义:Create Table、Alter Table、Drop Table、Create/Drop Index 等
      • 数据操纵:Select、insert、update、delete、
      • 数据控制:grant、revoke、
      • 数据查询:select、

    13. 什么叫视图?有什么优点?

    • 视图是一种虚拟的表,由一个表或者多个表的行或列的子集构成,对视图的修改不影响基本表。
    • 优点:
      • 简化用户的操作
      • 使用户能以多种角度看待同一数据
      • 视图为数据库提供了一定程度的逻辑独立性
      • 视图能够对机密数据提供安全保护

    14. Jdbc 访问数据库有哪些步骤?

    • 注册 JDBC 驱动
    • 获得连接对象
    • 获得状态集创建一个 Statement
    • 执行 SQL 语句
    • 获取结果集 处理结果
    • 关闭 JDBC 对象

    15. …

     
     

    —————— THE END ——————
     
  • 相关阅读:
    vue 第一次复习
    Unix系统的进程相关操作
    java开放式实验室预约系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
    typescript对类型的管理和查找规则
    创建个人中心页面(下)
    【C++】map值自定义key,value排序(含ccfcsp第四次认证第二题演示和map遍历方法)
    web前端期末大作业——餐品后台管理系统(html+css+javascript)
    鲜花线上销售管理系统的设计与实现
    解决——》CommunicationsException:Communications link failure
    RTC实时时钟——DS1302
  • 原文地址:https://blog.csdn.net/Zachsj/article/details/126461321