MySQL深度解析:数据库知识一网打尽!你准备好了吗?

发表时间: 2018-08-16 15:13

对于后端开发人员来说,经常会和数据打交道,今天总结下数据库相关的知识。包括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,再插入即可。

连接类型

  • 内连接
  • 显示左表及右表符合连接条件的记录
  • 左外连接
  • 显示左表的全部记录及右表符合连接条件的记录
  • 右外连接
  • 显示右表的全部记录及左表符合连接条件的记录
  • 自身连接
  • 同一个数据表对其自身进行连接