漫画 | 你还记得原生的JDBC怎么链接数据库吗?

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

数据表的设计范式

 

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

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

第一范式是最基本的范式。若是数据库表中的全部字段值都是不可分解的原子值,就说明该数据库表知足了第一范式;数据库

 

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

 

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

 

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

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

你们能够在脑海中脑补一下这些步骤对应的代码,估计框架用习惯了,都有点忘记了吧服务器

 

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

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

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

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

Oracle 端口号?MySQL端口号?

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

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

 

select     
        (CASE WHEN A>B THEN A ELSE B END) as A,
        (CASE WHEN B>C THEN B ELSE C END) as B
from test1

 

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

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

请介绍下触发器的原理

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

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

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

如何解决SQL注入的问题

 

使用预编译对象PreparedStatement框架

 

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

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

#内链接
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

 

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

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

举例:ide

 

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

 

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

 

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

 

事务机制能够避免此类状况,以保证整个操做的完成,若是某步操做出错,以前所做的数据库操做将所有失效。

 

谈谈事务的特性ACID

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

原子性(ATOMICITY): 


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

 

一致性(CONSISTENCY): 


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

 

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

 

隔离性(ISOLATION): 


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

 

持久性(DURABILITY): 


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

 

谈谈事务的隔离级别

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

存储过程是什么?

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

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

 

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

 

用过哪些数据库链接池,为何要用数据库链接池?

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

关注后端技术精选,天天推送优质好文

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

相关文章
相关标签/搜索