From b654cb81b2b201cb5a392ff712f6074dcdeb3b28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=AB=A0=E7=AC=91=E5=AE=B9?= Date: Wed, 25 Oct 2023 21:41:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B9=AB=E5=AE=9D=E7=9A=84=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... \347\272\257\346\227\245\345\277\2272.md" | 2 +- ...ql\345\210\235\345\244\215\344\271\240.md" | 10 - ...0\347\272\247\345\244\215\344\271\2401.md" | 47 +++++ ...0\347\272\247\345\244\215\344\271\2402.md" | 182 ++++++++++++++++++ 4 files changed, 230 insertions(+), 11 deletions(-) delete mode 100644 "10 \347\253\240\347\254\221\345\256\271/Day1023 mysql\345\210\235\345\244\215\344\271\240.md" create mode 100644 "10 \347\253\240\347\254\221\345\256\271/Day1023 mysql\351\253\230\347\272\247\345\244\215\344\271\2401.md" create mode 100644 "10 \347\253\240\347\254\221\345\256\271/Day1024 mysql\351\253\230\347\272\247\345\244\215\344\271\2402.md" diff --git "a/10 \347\253\240\347\254\221\345\256\271/Day0915 \347\272\257\346\227\245\345\277\2272.md" "b/10 \347\253\240\347\254\221\345\256\271/Day0915 \347\272\257\346\227\245\345\277\2272.md" index 05069a8..2f8eb7f 100644 --- "a/10 \347\253\240\347\254\221\345\256\271/Day0915 \347\272\257\346\227\245\345\277\2272.md" +++ "b/10 \347\253\240\347\254\221\345\256\271/Day0915 \347\272\257\346\227\245\345\277\2272.md" @@ -1,3 +1,3 @@ # 今日份日志 -今天完成了第一次的课前演讲,依然犯了怯场的毛病,这学期还要带新生进行团辅,希望能通过这些机会尽可能减轻自己的社交障碍吧 \ No newline at end of file +今天完成了第一次的课前演讲,依然犯了怯场的毛病,这学期还要带新生进行团辅,希望能通过这些机会尽可能减轻自己的社交障碍 \ No newline at end of file diff --git "a/10 \347\253\240\347\254\221\345\256\271/Day1023 mysql\345\210\235\345\244\215\344\271\240.md" "b/10 \347\253\240\347\254\221\345\256\271/Day1023 mysql\345\210\235\345\244\215\344\271\240.md" deleted file mode 100644 index a8e3092..0000000 --- "a/10 \347\253\240\347\254\221\345\256\271/Day1023 mysql\345\210\235\345\244\215\344\271\240.md" +++ /dev/null @@ -1,10 +0,0 @@ -# 今日份日志 - -今日份复习: - -1. er图 -2. CDM模型 -3. 范式(略过) -4. 视图 -5. 常用函数 -6. 存储过程 \ No newline at end of file diff --git "a/10 \347\253\240\347\254\221\345\256\271/Day1023 mysql\351\253\230\347\272\247\345\244\215\344\271\2401.md" "b/10 \347\253\240\347\254\221\345\256\271/Day1023 mysql\351\253\230\347\272\247\345\244\215\344\271\2401.md" new file mode 100644 index 0000000..d9c75ad --- /dev/null +++ "b/10 \347\253\240\347\254\221\345\256\271/Day1023 mysql\351\253\230\347\272\247\345\244\215\344\271\2401.md" @@ -0,0 +1,47 @@ +# 今日份日志 + +今日份复习: + +1. er图 +2. CDM模型 + + 1. 概念模型 CDM(从人类角度看) + 2. 逻辑模型 LDM(从计算机角度) + 3. 物理模型 PMD(从数据库角度) + 4. PDM转化为DDL(SQL语句) +3. 范式(略过) + + 1. 第一范式:每个属性(字段),要求不可再分割,有原子性(人话:把字段拆到不能再拆为止) + 2. 第二范式:在满足第一范式的前提下,非主键字段要完全依赖主键字段(人话:联合主键时使用,非主键字段要同时完全依赖这些主键) + 3. 第三范式:在满足第二范式的前提下,非主键要直接依赖主键(人话:我也不知道) +4. 视图 + + ```mysql + -- 创建 + create view 视图名称 as 查询语句; + -- 修改 + create or replace view 视图名称 as 查询语句; + alter view 视图名称 as 查询语句; + -- 删除 + drop view 视图名称; + -- 查看 + desc tables; + show table status like 视图名称; + ``` +5. 常用函数 +6. 存储过程 + + ``` mysql + -- 创建 + delimiter $$ + [drop procedure if exists 过程名称]; + create procedure 过程名称([in/out/inout 参数名 数据类型]) + begin + 要执行的SQL语句; + end $$ + delimiter ; + -- 调用 + call 过程名称([参数]); + ``` + + \ No newline at end of file diff --git "a/10 \347\253\240\347\254\221\345\256\271/Day1024 mysql\351\253\230\347\272\247\345\244\215\344\271\2402.md" "b/10 \347\253\240\347\254\221\345\256\271/Day1024 mysql\351\253\230\347\272\247\345\244\215\344\271\2402.md" new file mode 100644 index 0000000..6a884af --- /dev/null +++ "b/10 \347\253\240\347\254\221\345\256\271/Day1024 mysql\351\253\230\347\272\247\345\244\215\344\271\2402.md" @@ -0,0 +1,182 @@ +# 今日份日志 + +1. 变量 + + ```mysql + -- 系统变量 + 系统自带的变量,用@@区分 + -- 会话变量 + 可以不需要定义,直接赋值和使用,用@区分 + -- 局部变量 + 只作用于begin end中间,用declare定义 + -- 语法 + declare 变量名 数据类型 [default 默认值]; -- 注:定义变量前面不能有其他的SQL语句; + -- 赋值 + 1、set 变量 = 值; + 2、select 值 into 变量; + ``` + +2. 存储函数 + + ```mysql + -- 创建 + delimiter $$ + [drop function if exists 函数名称]; + create function 函数名称([参数名 数据类型]) + begin + 要执行的SQL语句; + end $$ + delimiter ; + -- 调用 + select 函数名称([参数]); + ``` + +3. 分支 + + ```mysql + -- if + if 条件表达式 then 满足条件执行的SQL; + [else 条件表达式2 then 满足条件执行的SQL2;] + [else 执行的SQL3;] + end if; + -- case + case when 条件表达式 then 满足条件执行的SQL语句; + [when 条件表达式2 then 满足条件执行的SQL语句;] + [else 执行的SQL语句;] + end case; + + case 变量 + when 值1 then 满足条件执行的SQL语句; + [when 值2 then 满足条件执行的SQL语句;] + [else 满足条件执行的SQL语句;] + end case; + -- 在select后面使用时 + case when 条件表达式 then 值1 + [when 条件表达式2 then 值2 + [else 值3] + end + ``` + +4. 循环 + + ```mysql + -- 写在begin end中间 + -- loop + 标记名:loop + 执行的SQL; + if 条件 then leave 标记名; + end if; + end loop 标记名; + + -- while + [标记名:]while 条件 do + 执行的SQL; + end while [标记名]; + + -- repeat + [标记名:]repeat + 循环的语句; + until 结束循环的条件 + end repeat [标记名]; + ``` + +5. 游标 + + ```mysql + -- 语法 + begin + -- 创建 + declare 名称 cursor for (查询语句); + -- 打开 + open 名称; + -- 使用 + fetch 名称 into 变量名; + -- 关闭 + close 名称; + end + + -- 异常处理 + declare 处理方式 handler for 错误类型; + ``` + +6. 触发器 + + ```mysql + -- 创建 + delimiter $$ + create trigger 名称 + before/after insert/update/delete + on 表名 for each row + begin + 触发的SQL操作; + end $$ + ``` + +7. 公用表达式 + + ```mysql + -- 语法 + with + 名称 as (查询语句)[,] + [名称2 as (查询语句)] + select/update/delete语句; + ``` + +8. 窗口函数 + + ```mysql + -- 语法 + 函数() over (partition by 分组字段 order by 排序字段) + ``` + +9. 索引 + + ```mysql + -- 单列索引 + -- 普通索引 + create index 索引名 on 表名(字段); + alter table 表名 add index 索引名(字段); + create table 表名( + id int, + index 索引名(字段) + ); + -- 删除 + drop index 索引名 on 表名; + alter table 表名 drop index 索引名(字段); + + -- 唯一索引 + create unique index 索引名 on 表名(字段); + alter table 表名 add unique 索引名(字段); + -- 联合索引 + create index 索引名 on 表名(字段1,字段2...); + -- 查看索引 + show index from 表名; + ``` + +10. 事务 + + ```mysql + -- 特征(ACID) + 原子性:要么全部成功,要么全部失败 + 一致性 + 隔离性: + 读未提交 + 读已提交 + 可重复读 + 串行化 + 持久性 + -- 查看自动提交状态 + show variables like 'autocommit'; + -- 回滚 + rollback;(附带确认的效果,一旦回滚,就代表事务结束) + -- 提交 + commit; + -- 手动打开一个事务 + start transaction; + -- 保存点 + savepoint 名称; + -- 回滚到保存点 + rollback to 名称;(不会结束事务) + ``` + + \ No newline at end of file -- Gitee