对于后端开发人员来说,经常会和数据打交道,今天总结下数据库相关的知识。包括MySQL,JDBC基础,JDBC进阶,MongoDB,性能优化等知识点。
MySQL
数据库的概述
- DBMS:关系型数据库管理系统
- 库管+N个仓库
- 常见的数据库管理系统
- MySQL
- Orcale
- DB2
- SQL Server
- Sybase
MySQL介绍
- 安装后目录结构
- mysql.exe:客户端
- mysqld.exe:服务器
- my.ini:总配置文件
- 在windows下开户和关闭mysql服务器
- net start mysql
- net stop mysql
- 登录和退出mysql客户端
- mysql -u用户名 -p密码 -hIP
- exit或quit
SQL
- 解释:结构化查询语言
- ISO:国际标准化组织
- ISO定义了很多SQL标准,例如:SQL99
- 各个数据库厂商需要遵循这个标签!但各个厂商也有自己的方言
- SQL的分类
- DDL:数据定义语言
- DML:数据操作语言
- DCL:数据控制语言
- DQL(不在标准中):数据查询语言
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
DML:数据操作语言
- 插入记录
- 修改记录
- 删除记录
- delete
- truncat
DCL:数据控制语言
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
约束
- 约束保证数据的完整性和一致性
- 约束分为表级约束和列级约束
- 对一个数据列建立的约束,列级约束
- 对多个数据列建立的约束,表级约束
- 约束类型包括:
- NOT NULL
- PRIMARY KEY
- UNIQUE KEY
- DEFAULT
- FOREIGN KEY
中文无法插入解决办法
- dos 下不支持直接使用utf8;
- set names gbk,再插入即可。
连接类型
- 内连接
- 显示左表及右表符合连接条件的记录
- 左外连接
- 显示左表的全部记录及右表符合连接条件的记录
- 右外连接
- 显示右表的全部记录及左表符合连接条件的记录
- 自身连接
- 同一个数据表对其自身进行连接