栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MySql思维总结(这一篇就够!)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MySql思维总结(这一篇就够!)

MySql
  • 一、数据的相关概念
    • 数据库的好处
    • 数据库的常见概念
    • 数据库存储数据的特点
    • 常见的数据库管理系统
  • 二、DQL(数据查询语言)
    • 基础查询
    • 条件查询
    • 获取客户端的字符集编码格式
    • 分组查询
      • 常见函数
    • 分组函数
      • 链接查询
  • 三、DML(数据操作语言)
    • 插入
    • 修改
    • 删除
      • delete与truncate比较
  • 四、DDL(数据定义语言)
    • 库的管理
    • 表的管理
    • 数据类型
    • 六大约束
      • 添加约束的时机
      • primary key 与 unique 对比
  • 五、事务(只针对DML)
    • 事务的ACID属性
    • savepoint(节点名):设置保存点
    • 事务的隔离级别
  • 六、视图
  • 七、变量
    • 系统变量
    • 自定义变量
  • 八、存储过程与函数(mysql里不能运行,在cmd里运行)
    • 存储过程
    • 函数
  • 九、流程控制结构
    • 分支结构
      • 1、if语句:
      • 2、case结构
      • 3、if结构
    • 循环结构
      • while、loop、repeat
  • 十、经典例题

一、数据的相关概念 数据库的好处
  • 可持久化数据到本地
  • 结构化数据
数据库的常见概念
  • DB:数据库,存储数据的容器
  • DBMS:数据库管理系统,又称为数据库软件或数据库产品,用于创建或管理DB
  • SQL:结构化查询语言,用于和数据库通信的语言,不是某个数据库软件特有的,而是几乎所有的主流数据库软件通用的语言
数据库存储数据的特点
  • 1、数据存放到表中,然后表再放到库中
  • 2、一个库中可以有多张表,每张表具有唯一的表名用来标识自己
  • 3、表中有一个或多个列,列又称为“字段”,相当于java中“属性”
  • 4、表中的每一行数据,相当于java中“对象”
常见的数据库管理系统
  • MySQL、Oracle、DB2、SqlServer
二、DQL(数据查询语言) 基础查询
  • 查询常量:
    select 常量值;
    注意:字符型和日期型的常量值必须用单引号引起来,数值型不需要

  • 查询函数
    select 函数名(实参列表);
    起别名: AS
    去重(DISTINCT):select distinct 字段名 from 表名;
    加号(+):

条件查询

语法:
select查询列表 ③
from表名 ①
where筛选条件 ②

  • 简单条件运算符

      	>,<,=,<> or != ,>=,<=
      	安全等于:<=>
    
  • 逻辑运算符

      	&&	and
      	ll	or
      	!	not
    
  • 模糊查询

      	like:一般搭配通配符使用,可以判断字符型或数值型
      	通配符:%多个任意字符,
      			_单个任意字符
      	between ... and ...
      	IN(集合)
      	IS NULL/ IS NOT NUll:用于判断NULL值
    
    • escape(声明转义字符)
获取客户端的字符集编码格式

分组查询 常见函数
  • 字符函数

      concat: 拼接
      substr: 截取子串
      upper: 转换成大写
      lower: 转换成小写
      trim: 去前后指定的空格和字符
      ltrim: 去左边空格
      rtrim: 去右边空格
      replace: 替换
      lpad: 左填充
      rpad: 右填充
      instr: 返回子串第一次出现的索引
      length: 获取字节个数	
    
  • 数学函数

      round: 四舍五入
      rand: 随机数
      floor: 向下取整
      ceil: 向上取整
      mod: 取余
      truncate: 截断
    
  • 日期函数

      now: 当前系统日期+时间
      curdate: 当前系统日期
      curtime: 当前系统时间
      str_to_date: 将字符转换成日期
      date_format: 将日期转换成字符
    
  • 流程控制函数

      	if 处理双分支
      	case语句 处理多分支
      			情况1:处理等值判断
      			情况2:处理条件判断
    
  • 其他函数

      version: 版本
      database: 当前库
      user: 当前连接用户
    
分组函数
	* count:计算个数
	* 一般选择非空的列:主键
	* count(*)
	* max:计算最大值
	* min:计算最小值
	* sum:计算和
	* avg:计算平均值
	* 特点:
		1、以上五个分组函数都忽略null值,除了 count(*)
		2、sum和avg一般用于处理数值型,max、min、count可以处理任何数据类型
		3、都可以搭配distinct使用,用于统计去重后的结果
		4、count的参数可以支持:
	        * 字段、*、常量值,一般放1
	* 注意:聚合函数的计算,排除null值。
		解决方案:
			* 选择不包含非空的列进行计算
			* IFNULL函数

链接查询
  • 内连接

      select *						⑦
      from 表1						①
      inner join	表2 on 连接条件  ②
      where		筛选条件 			③
      group by  分组的列表			④
      having 分组后的筛选			⑤
      order by 排序条件				⑥
      limit 起始值,长度				⑧
    

  • 外连接(left:左外连接,表1为主表;right:右外连接,表2为主表)

      select *						⑦
      from 表1						①
      left/right join	表2 on 连接条件  ②
      where		分组前筛选条件 			③
      group by  分组的列表			④
      having 分组后的筛选			⑤
      order by 排序条件				⑥
      limit 起始值,长度				⑧
    

  • 自连接
三、DML(数据操作语言)
  • 对“表内数据“的操作
插入

① insert into 表名(列名,…) values(值1,…)
- 支持插入多行(用逗号隔开):values(值1,…),(值1,…);
- 持子查询(插入):

②insert into 表名 set 列名=值,列名=值,…

修改
	update 表名 set 列=新值,列=新值,... where 筛选条件

删除
	delete from 表名 where 筛选条件 limit ...

delete与truncate比较

四、DDL(数据定义语言)
  • 对于“库和表的管理”
    创建:create
    修改:alter
    删除:drop
库的管理

表的管理
  • 创建(create):create table (if not exists) 表名;

  • 修改(alter):

  • 删除(drop):drop table (if exists) 表名;

  • 复制表:

数据类型
  • 数值型

  • 浮点型

  • 字符型

  • 日期型

六大约束

一、主键约束(primary key)

1.单一主键:[字段] primary key
2.联合主键:primary key([字段],[字段])

二、自增约束(primary key auto_increment)

  • 标识列(又称自增长列)对整型数据进行自增。

三、唯一约束unique(id,name)
四、非空约束(not null)
五、默认约束default [值]
六、外键约束(foreign key([字段]) references [主表[字段]])

  • 只能使用标记约束去定义
添加约束的时机

一、创建表时

二、修改表时

primary key 与 unique 对比

五、事务(只针对DML) 事务的ACID属性

  • 查看变量

      SHOW VARIABLES LIKE 'autocommit';
    
  • 隐式事务
    包含select、insert、update、delete 语句

  • 显式事务

savepoint(节点名):设置保存点

事务的隔离级别

六、视图
  • create view 视图名 as 查询语句

      mysql 5.1 版本出现的新特性,虚拟的,通过表动态生成 ,只保存sql逻辑,不保存结果
    
  • 修改

      1、create or replace view 视图名 as 查询语句 (如果视图存在则修改,不存在则创建)
      2、alter view 视图名 as 查询语句
    
  • 删除

      drop view 视图1,视图2,....
    
  • 具备以下特点的视图不允许更新

七、变量 系统变量
  • 全局变量

      	服务器层面上的,必须拥有super权限才能为系统变量赋值,作用域为整个服务器,也就是针对于所有连接(会话)有效
    
  • 会话变量

      	服务器为每一个连接的客户端都提供了系统变量,作用域为当前的连接(会话)
    

自定义变量
  • 用户变量

      	作用域为当前链接(会话)
    

  • 局部变量

      	作用域:begin end中,且只能放在第一句
    

八、存储过程与函数(mysql里不能运行,在cmd里运行)
  • 写存储过程与函数开始之前都必须定义结束字符:

      delimiter  $;
    
存储过程


函数

  • 视图与存储过程与函数的好处
    • 说明:都类似于java中的方法,将一组完成特定功能的逻辑语句包装起来,对外暴露名字好处:
      • 1、提高重用性
      • 2、sql语句简单
      • 3、减少了和数据库服务器连接的次数,提高了效率
九、流程控制结构 分支结构 1、if语句:
if(表达式1,表达式2,表达式3)
如果表达式1成立,则IF函数返回表达式2的值,否则返回表达式3的值
2、case结构

3、if结构

循环结构 while、loop、repeat



  • 这三种循环都可以省略名称,但如果循环中添加了循环控制语句(leave或iterate)则必须添加名称(标签)
十、经典例题
  • 题:向该表插入指定个数的,随机的字符串
  • 答:
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/327454.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号