阿音 Java笔记虾 


数据表的设计范式


在实际开发中最为常见的设计范式有三个:



第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式;


第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中;


第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。


原生的JDBC怎么连接数据库?



大家可以在脑海中脑补一下这些步骤对应的代码,估计框架用习惯了,都有点忘记了吧


关系数据库中连接池的机制是什么?



关系数据库中的主键和外键有什么关系?



Oracle 端口号?MySQL端口号?



test1表中有ABC三列,用SQL语句实现:当A列大于B列时,选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。


select     
        (CASE WHEN A>B THEN A ELSE B ENDas A,
        (CASE WHEN B>C THEN B ELSE C ENDas B
from test1


Long类型怎么设计的表结构?Boolean类型怎么设计的表结构?



请介绍下触发器的原理



存储过程里的语句是一条条按顺序执行的吗?



如何解决SQL注入的问题

 

使用预编译对象PreparedStatement


请说说内连接和外连接的区别



#内连接
select * from student s,classes c where s.c_id = c.id
select * from student s INNER JOIN classes c on s.c_id = c.id

#外连接
#左外连接
select * from student s LEFT JOIN classes c on s.c_id = c.id
#右外连接
select * from student s RIGHT JOIN classes c on s.c_id = c.id


谈谈对数据库事务的理解?事务的边界应该放在哪一层?为什么?



举例:

 

客户A和客户B的银行账户金额都是10000元人民币,客户A需要把自己帐户中的5000元人民币转到客户B的账户上。


这个过程看似简单,实际上涉及了一系列的数据库操作,可以简单地视为两步基本操作,即从客户A帐户的金额中扣除5000元人民币,以及将客户B帐户中金额添加5000元人民币。


假设第1步数据库操作成功,而第二步失败的话,将导致整个操作失败,并且客户A帐户金额将被扣除5000元人民币。


事务机制可以避免此类情况,以保证整个操作的完成,如果某步操作出错,之前所作的数据库操作将全部失效。


谈谈事务的特性ACID



原子性(ATOMICITY): 


事务是数据库的逻辑工作单位,事务中包含的各操作要么都完成,要么都不完成

 

一致性(CONSISTENCY): 


事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。因此当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态。


如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态,或者说是不一致的状态。

 

隔离性(ISOLATION): 


一个事务的执行不能其它事务干扰。即一个事务内部的操作及使用的数据对其它并发事务是隔离的,并发执行的各个事务之间不能互相干扰。

 

持久性(DURABILITY): 


指一个事务一旦提交,它对数据库中的数据的改变就应该是永久性的。接下来的其它操作或故障不应该对其执行结果有任何影响。


谈谈事务的隔离级别



存储过程是什么?



存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。


存储过程在创建时即在服务器上进行编译,所以执行起来比单个SQL语句快


用过哪些数据库连接池,为什么要用数据库连接池?



©著作权归作者所有:来自51CTO博客作者mob604756f61e6c的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 一个SQL让导致整个数据库都整挂了!
  2. Java 响应式关系数据库连接了解一下
  3. 浅析Mysql的隔离级别及MVCC
  4. 设计模式,你相信吗,只用两个函数实现事务!
  5. 一文看懂分布式数据库原理和 PostgreSQL 分布式架构
  6. 【PostgreSQL架构】PostgreSQL的最佳群集高可用性方案
  7. 「PostgreSQL高级特性」PostgreSQL 数据库的近似算法
  8. 「数据库架构」三分钟搞懂事务隔离级别和脏读
  9. 【PostgreSQL架构】为什么关系型数据库是分布式数据库的未来

随机推荐

  1. 贞炸了!上线之后,消息收不到了!
  2. 【干货】BAT大佬告诉你如何埋点
  3. Vuex 注入 Vue 生命周期的过程
  4. 熔断器 Hystrix 源码解析 —— 请求执行(
  5. 数据库读写分离这个坑,让刚入职的我一脸懵
  6. 学习C第二天-字符串
  7. centos 磁盘管理与维护
  8. 【前端词典】arr.filter(parseInt) 考查
  9. 这些有趣的 API 着实有点炫
  10. 关于 刚刚放假在家准备认真学习的自我保