文章目录
- 关系型数据库
-
- 简单介绍一下关系数据库三范式?
- 事务四个基本特征或 ACID 特性。
- InnoDB对事务的实现方式
- mysql数据库的默认的最大连接数?
- 说一下msyql的分页?Oracle的分页?
- 简单讲一下数据库的触发器的使用场景?
- 简单讲一下数据库的存储过程的使用场景?
- 用jdbc怎么调用存储过程?
- 常用SQL
- 简单说一下你对jdbc的理解?
- 写一个简单的jdbc的程序。写一个访问oracle数据的jdbc程序?
- JDBC中的PreparedStatement相比Statement的好处
- 数据库连接池作用
- InnoDB、Mysaim的特点?
- ⾏锁,表锁;乐观锁,悲观锁,共享锁,排它锁?
- 数据库隔离级别
- MySQL主从复制的基本原理。
- select * from table t where size > 10 group by size order by size的sql语句执⾏顺序?
- 数据库事务的⼏种粒度;
- mysql调优:
- 非关系型数据库
数据库的分类及常用的数据库
数据库分为:关系型数据库和非关系型数据库
- 关系型:mysql oracle sqlserver等
- 非关系型:redis,memcache,mogodb,hadoop等
关系型数据库
Mysql选用B+树这种数据结构作为索引,可以提高查询索引时的磁盘IO效率,并且可以提高范围查询的效率,并且B+树里的元素也是有序的。
简单介绍一下关系数据库三范式?
范式就是规范,就是关系型数据库在设计表时,要遵循的三个规范。
要想满足第二范式必须先满足第一范式,要满足第三范式必须先满足第二范式。
- 第一范式(1NF)列数据的不可分割(原子性)
- 二范式(2NF)主键
- 第三范式: 要求一个数据库表中不包含已在其它表中的非主关键字信息。(外键)
- 反三范式,有的时候为了效率,可以设置重复或者可以推导出的字段.
订单(总价)和订单项(单价)
事务四个基本特征或 ACID 特性。
事务是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。
原子性Atomic 事务内操作不可分割要么…要么…
一致性Consistency 数据的完整性必须保持一致(转账)后面失败了要对前面的操作进行回滚
隔离性 Isolation 一个事务开始,其他事务无法干扰
持久性 Durability 事务开始 不能终止
InnoDB对事务的实现方式
利用回滚日志(undo log) 和 重做日志(redo log) 两种表实现事务,并实现 MVCC (多版本并发控制);
查询需要对资源加共享锁(S),数据修改需要对资源加排他锁(X)
利用undo log使读写不阻塞,实现了可重复读。当一个事务正在对一条数据进行修改时,该资源会被加上排它锁。在事务未提交时对加锁资源进行读操作时,读操作无法读到被锁资源,通过一些特殊的标志符去读undo log 中的数据(过程很复杂),这样读到的都是事务执行之前的数据。
mysql数据库的默认的最大连接数?
my.ini
说一下msyql的分页?Oracle的分页?
为什么需要分页?在很多数据是,不可能完全显示数据。进行分段显示.
Mysql是使用关键字limit来进行分页的 limit offset,size 表示从多少索引去多少位.
String sql =
"select * from students order by id limit " + pageSize[每页显示]*(pageNumber-1)[多少页] + "," + pageSize;
Oracle的分页,要使用三层嵌套查询(百度)。
String sql =
"select * from " +
(select *,rownum rid from (select * from students order by postime desc) where rid<=" + pagesize*pagenumber + ") as t" +
"where t>" + pageSize*(pageNumber-1);
简单讲一下数据库的触发器的使用场景?
简单讲一下数据库的存储过程的使用场景?
用jdbc怎么调用存储过程?
加载驱动
获取连接
设置参数
执行
释放连