数据库基本知识

数据库

1、数据库设计三范式:
  • ​ 1NF:数据库表中的每一列都是不可再分的属性值,确保每一列的原子性,两列的属性相近或相似或一样,尽量合并属性一样的列,确保不产生冗余数据。
  • ​ 2NF:确保表中的每列都和主键相关,在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。
  • 3NF:确保每列都和主键列直接相关,而不是间接相关
2、关系型数据库有:

MySql、SqlServer、Oracle

3、什么是关系型数据库?

采用关系模型来组织数据的数据库,其以行和列的形式组织数据,一系列的行和列组成了表,一组表组成了数据库。

5、Java常见的开源数据库连接池有哪些?
  • DBCP

    DBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池.DBCP可以直接的在应用程序中使用,Tomcat的数据源使用的就是DBCP。

  • c3p0

    c3p0是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象。

  • Druid

    阿里出品,淘宝和支付宝专用数据库连接池,但它不仅仅是一个数据库连接池,它还包含一个ProxyDriver,一系列内置的JDBC组件库,一个SQL Parser。支持所有JDBC兼容的数据库,包括Oracle、MySql、Derby、Postgresql、SQL Server、H2等等。

6、数据库MySQL,Oracle,SqlServer分页时用的语句
  • Mysql:使用limit关键字

    Select * from 表名 where 条件 limit 开始位置,长度。通过动态的改变开始和结束位置的值来实现分页。

  • Oracle:通过rownum来实现

    select * from ( select rownum rn,t.* from addressbook where rownum<= 20 ) where rownum > 10

  • Sqlserver:

    select top 20 * from addressbook where id not in (select top 10 id from addressbook)

7、数据库去空格

使用replace(column,’ ‘,’’)方法解决

8、什么是索引?

定义:索引是一种排好序的快速查找的数据结构,它帮助数据库高效的进行数据的检索。在数据之外,数据库系统还维护着满足特定查找算法的数据结构(额外的存储空间),这些数据结构以某种方式指向数据,这样就可以在这些数据结构上实现高效的查找算法。这种数据结构就叫做索引。

​ **分类:**普通索引、唯一索引、复合索引

​ **索引常见的数据结构:**二叉树、红黑树(JDK8 HashMap)、Hash、Btree、B+Tree …

索引优化原则

  • 对查询频次较高,且数据量比较大的表建立索引。
  • 索引字段的选择,最佳候选列应当从where子句的条件中提取
  • 使用唯一索引,区分度越高,使用索引的效率越高。
  • 使用短索引,索引创建之后也是使用硬盘来存储的,因此提升索引访问的I/O效率
  • 利用最左前缀,N个列组合而成的组合索引,那么相当于是创建了N个索引
9、数据库的搜索引擎:
  • InnoDB:Mysql的默认存储引擎。InnoDB存储引擎提供了具有提交、回滚、崩溃恢复能力的事务安全。 但是对比MyISAM的存储引擎,InnoDB写的处理效率差一些,并且会占用更多的磁盘空间以保留数据和索引。
  • MyISAM:不支持事务、也不支持外键,其优势是访问的速度快,对事务的完整性没有要求或者以SELECT、INSERT 为主的应用基本上都可以使用这个引擎来创建表 。
  • **Memory:**存储引擎将表的数据存放在内存中。每个MEMORY表实际对应一个磁盘文件,格式是.frm ,该文件中只 存储表的结构,而其数据文件,都是存储在内存中,这样有利于数据的快速处理,提高整个表的效率。MEMORY 类型的表访问非常地快,因为他的数据是存放在内存中的,并且默认使用HASH索引 , 但是服务一旦关闭,表中的 数据就会丢失。
  • **MERGE:**存储引擎是一组MyISAM表的组合,这些MyISAM表必须结构完全相同,MERGE表本身并没有存储数据,对 MERGE类型的表可以进行查询、更新、删除操作,这些操作实际上是对内部的MyISAM表进行的。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值