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