当前位置: 首页 > ds >正文

MySQL总结

###MySQL分类

##SQL分为:DQL,DML,DCL,DDL

##DDL create drop alter create database| table drop database|table alter database|table ##DML insert update delete ##DQL select ##DCL create alter drop ---user show grants - grant revoke---权限

###函数,约束

  1. 实体之间关系 一对多(多对一) 多对多 一对一

  2. 数据表关系 一对多(多对一) 2张表的主外键关系 多对多 引入中间表, 一对一 2张表的主外键关系,外链唯一

###多表查询

SQL分类:DDL DML DCL DQL DDL create drop alter --- database table DML insert delete update DCL create drop alter ---- user 用户 grant 授权 DQL select

###多表查询

内连 where , inner join 外连 left/right join 自连接: 自已连接自己,包括:内连与外连

###子查询

  1. 多表查询 内连接 外连接 自连接:

  2. 联合查询 union [all]

  3. 子查询 1)子查询位置:select, from , where

    1. 查询结果分类: 标量, 列,行,表子查询

###事务

事务

  1. 什么是事务?

  2. 查询事务提交的方式 show global|session variables like 'autocommit'; select @@autocommit;

  3. 事务处理 set @@autocommit=0;关闭自动提交 start transcation | begin ; 关闭自动提交 commit; 提交事务 rollback; 事务回滚

  4. 事务特性: ACID

  5. 事务并发问题: 脏读、不可重复读、幻读

  6. 事务隔离级别:3

###索引1

  1. 数据引擎 show engines; innoDB(默认) MYISAM memory innoDB: 支持事务,支持外键,支持行锁 MYISAM:不支持事务,无外键,支持表锁

  2. 索引 1)索引特点:提高查询的速度,额外占用存储空间,降低增删改的性能 2)索引存储结构:b+tree b-tree hash 3)索引类型:主键索引,唯一索引,常规索引 4)索引存储形式:聚集索引和非聚集(二级)索引

###索引2

mysql存储过程

  1. 什么是存储过程 存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。

说明:mysql从5.0版本之后开始支持存储过程

  1. 存储过程优缺点 优点:

增强sql的灵活性 增加业务的复用性,存储过程创建成功后可以多次调用 执行速度快 距离需要处理的数据近,减少网络流量 减少应用程序和数据库的交互次数 缺点:

数据库的移植性差 维护性没有java等编程语言好,调试不方便

  1. 语法结构 3.1 基本语法 delimiter $$ create procedure 过程名称([[IN|OUT|INOUT] 参数名 数据类型,...]) begin -- sql; 语句 end $$ delimiter ; 示例:

delimiter $ #指定分隔符 create procedure pro_hello_word() begin select 'hello word'; end; $ delimiter ; # 还原分隔符

局部变量

delimiter $ create procedure p6() begin declare num int default 1;#声明变量,由于在存储过程中声明,称为局部变量 set num = num + 200; #给变量赋值,方式一:set ,方式二:select..into select num; end $ delimiter ;

call p6();

#系统变量

显示系统变量

show global variables like '%transaction%'; show global variables like 'autocommit'; show session variables like '%transaction%'; select @@global.autocommit; select @@session.autocommit;

设置系统变量

show global variables like '%password%'; set @@autocommit=0;

用户变量,一般以@符号开始,可以作用于多个存储过程

delimiter $ create procedure p7() begin set @u1 = @u1 +1; select @u1; end $ create procedure p8() begin set @u1 = @u1 +1; select @u1; end $ delimiter ;

set @u1=1; call p7(); call p8();

游标

delimiter // create procedure p_c() begin declare done boolean default true; declare id int; declare name varchar(20); declare cls_cur cursor for select sid,sname from t_student; #游标1:声明游标

handler异常处理方式:continue,exit

#declare continue handler for not found set done=false; declare continue handler for 1329 set done=false; open cls_cur; #游标2 打开游标 while done do fetch cls_cur into id,name; #游标3 获取游标 select id,name; end while; end // delimiter ;

call p_c();

http://www.xdnf.cn/news/1605.html

相关文章:

  • 深度剖析操作系统核心(第一节):从X86/ARM/MIPS处理器架构到虚拟内存、分段分页、Linux内存管理,再揭秘进程线程限制与优化秘籍,助你成为OS高手!
  • 如何彻底卸载Android Studio?
  • aarcpy 列表函数的使用(1)
  • 分页查询优惠券
  • Unity 使用 ADB 实时查看手机运行性能
  • 【技术派后端篇】技术派中 Session/Cookie 与 JWT 身份验证技术的应用及实现解析
  • 详解springcloudalibaba采用prometheus+grafana实现服务监控
  • Qt UDP组播实现与调试指南
  • leetcode28. 找出字符串中第一个匹配项的下标_简单KMP
  • vue3 实现将html内容导出为图片、pdf和word
  • Linux Awk 深度解析:10个生产级自动化与云原生场景
  • 私钥连接服务器(已经有服务器私钥
  • 安卓adb shell串口基础指令
  • 【激光雷达3D(7)】CenterPoint两阶段细化仅使用BEV特征;PV-RCNN两阶段细化使用体素特征;M3DETRTransformer统一多表征特征
  • 云智融合普惠大模型AI,政务服务重构数智化路径
  • 【C语言经典算法实战】:从“移动距离”问题看矩阵坐标计算
  • Python正则表达式:用“模式密码“解锁复杂字符串
  • C++中的next_permutation全排列函数
  • 【高频考点精讲】JavaScript中的组合模式:从树形结构到组件嵌套实战
  • 与终端同居日记:Shell交响曲の终极共舞指南
  • 【玩转全栈】—— Django+vue3+讯飞星火API 实现前端页面实时AI答复
  • C++算法(14):K路归并的最优解法
  • python的pip download命令-2
  • COMSOL多孔结构传热模拟
  • gem5-gpu教程06 回归测试
  • 2025年渗透测试面试题总结-拷打题库13(题目+回答)
  • GPLT-2025年第十届团体程序设计天梯赛总决赛题解(2025天梯赛题解,共计266分)
  • 【LangChain4j】AI 第二弹:项目中接入 LangChain4j
  • QVQ-Max视觉推理模型发布:多模态 AI 的“眼脑协同”革命
  • 详解微服务监控(springboot admin server client、实时日志配置、动态修改日志级别、自定义服务通知实现等