夯实基础系列三:数据库知识总结

对于后端开发人员来说,经常会和数据打交道,今天总结下数据库相关的知识。包括MySQL,JDBC基础,JDBC进阶,MongoDB,性能优化。以下对这些内容做一些简单的总结,同时我也有完整的思维导图,博客上不方便展示,若有需要,请关注微信公众号永伦的小屋,后台回复 数据库 即可获取。

MySql 大纲

JDBC

JDBC 进阶

细节 1. MySQL 1.1 数据库的概述

DBMS

解释:关系型数据库管理系统

库管+N个仓库

常见的数据库管理系统

MySQL

Orcale

DB2

SQL Server

Sybase

1.2 安装MySQL

目录结构

mysql.exe:客户端

mysqld.exe:服务器

my.ini:总配置文件

在windows下开户和关闭mysql服务器

net start mysql

net stop mysql

登录和退出mysql客户端

mysql -u用户名 -p密码 -hIP

exit或quit

1.3 SQL

概述

解释:结构化查询语言

ISO:国际标准化组织

ISO 定义了很多 SQL 标准,例如:SQL99

各个数据库厂商需要遵循这个标签!但各个厂商也有自己的方言

SQL的分类

DDL:数据定义语言

DML:数据操作语言

DCL:数据控制语言

DQL(不在标准中):数据查询语言

1.4 DDL

数据库的操作

create database

show databases

use mydb1

alter database

drop database

表的操作

create table

show tables

desc mytable1

drop table

alter table

add

modify

change

drop

rename to

1.5 DML

插入记录

修改记录

删除记录

delete

truncat

1.6 DCL

创建用户

授权

撤消权限

查看权限

删除用户

1.7 DQL

基本查询

查看整张表

select * from 表名

列控制

列运算:select sal * 1.5 from emp

列运算:连接字符串:select concat('我的名称是', ename) from emp

处理 NULL 值:select sal + IFNULL(comm, 0) from emp

select ename 姓名 from emp

去除完全重复的行:select distinct comm from emp

条件查询

模糊查询

下划线

百分号

排序

desc

asc

聚合函数

count

min

max

sum

avg

分组

group by

having

limit

1.8 约束

约束保证数据的完整性和一致性

约束分为表级约束和列级约束

对一个数据列建立的约束,列级约束

对多个数据列建立的约束,表级约束

约束类型包括:

NOT NULL

PRIMARY KEY

UNIQUE KEY

DEFAULT

FOREIGN KEY

1.9 中文无法插入解决办法

dos 下不支持直接使用 utf8,set names gbk,再插入即可。

1.10 连接类型

内连接

显示左表及右表符合连接条件的记录

左外连接

显示左表的全部记录及右表符合连接条件的记录

右外连接

显示右表的全部记录及左表符合连接条件的记录

自身连接

同一个数据表对其自身进行连接

2. JDBC 2.1 JDBC 的原理

是由 JavaEE 提供的连接数据库的规范

需要由各大数据库的厂商提供对 JDBC 的实现类

2.2 四大核心类

DriverManager

getConnection

Connection

createStatement

prepareStatement(String sql)

Statement

方法:
​ 1.executeUpdate()-->增、删、改 
​ 2.executeQuery()-->查
​ 3.addBatch(String sql)
​ 4.executeBatch()
​ 5.execute(String sql)

ResultSet

getXxx()系统方法

移动光标系统方法

2.3 四大参数

driverClassName

url

username

password

2.4 预编译语句集

防SQL攻击

可读性提高了

效率高

2.5 DAO模式

面向接口编程

DAO接口

DAO实现,可以提供多个实现

DAO工厂

DAO配置文件:提供实现类名称

2.6 时间类型的转换

领域对象中的日期时间,必须为 util 的Date

在 JDBC 中使用的都是 sql 的 Date

insert、update、delete,需要把领域对象中的 util 的 Date 转换成 sql 的 Date

在 select 时,需要把 sql 的 Date 赋给领域对象的 util 的 Date 类型的属性,这不需要处理

2.7 大数据存取

把文件转换成 Blob 类型

把 Blob 类型转换成文件

2.8 批处理

添加批

执行批

3. JDBC_进阶 3.1 事务

ACID

原子性

一致性

隔离性

持久性

mysql 中开启和关闭事务

开启事务:START TRANSACTION

结束事务

提交事务:COMMIT

回滚事务:ROLLBACK

JDBC 中开启和关闭事务

开启事务:connection.setAutoCommit(false)

结束事务

connection.commit()

connection.rollback()

格式:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyywzp.html