MySQL的入门学习七

    技术2022-07-10  134

    本文目录

    一、视图1.1 概述1.2 作用1.3 创建视图1.4 修改视图1.5 删除视图1.6 查看视图信息1.7 视图算法 二、事务2.1 概述2.2 事务特性2.3 事务处理 三、索引3.1 概述3.2 创建索引的指导原则3.3 创建索引3.4 删除索引 四、函数4.1 数字类4.2 字符串类4.3 时间类4.4 加密函数 五、预处理

    一、视图

    1.1 概述

    1、视图是一张虚拟表,它表示一张表的部分数据或多张表的综合数据,其结构和数据是建立在对表的查询基础上 2、视图中并不存放数据,而是存放在视图所引用的原始表(基表)中 3、同一张原始表,根据不同用户的不同需求,可以创建不同的视图

    1.2 作用

    1、筛选表中的行 2、防止未经许可的用户访问敏感数据 3、增加数据的兼容性(数据库的字段名发生变化,程序可以不用改字段名) 4、隐藏数据表的结构 5、降低数据库的复杂程度

    1.3 创建视图

    语法: create view as select 语句; 例如:

    1.4 修改视图

    语法: alter view 视图名 as select 语句; 例:

    1.5 删除视图

    语法: drop view [if exists] 视图1, 视图2,...; 例:

    1.6 查看视图信息

    方法一: show tables; 显示所有的表和视图

    方法二: 视图信息存储在information_schema下的views表中。 查询视图的结构:

    1.7 视图算法

    找出语文成绩最高的男生和女生: 方法一: 方法二: 可以看到默认走了merge算法。

    视图的算法有: 1、合并算法(merge) 将视图语句和外层语句合并后再执行 2、临时表算法(temptable) 将视图作为一个临时表来执行 3、未定义算法(undefined)

    查看创建视图的语句: 默认视图创建时为未定义算法。虽然写了undefined,但是一般在视图会使用merge。 方法二更正临时表算法:

    二、事务

    2.1 概述

    1、事务(TRANSACTION)是一个整体,要么一起执行,要么一起不执行。 2、这些操作作为一个整体一起向系统提交,要么都执行,要么都不执行 3、事务是一个不可分割的工作逻辑单元

    2.2 事务特性

    事务必须具备一下四个属性,简称ACID属性: 1、原子性(Atomicity):事务是一个完整的操作,事务的各步操作是不可分的(原子的);要么都执行,要么都不执行 2、一致性(Consistency):当事务完成时,数据必须处于一致状态 3、隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的。 4、永久性(Durability):事务完成后,它对数据库的修改被永久保持。

    2.3 事务处理

    1、开启事务

    start transaction 或者 begin [work]

    2、提交事务

    commit

    3、回滚事务

    rollback

    例题:

    先创建测试表和数据: 修改默认执行符号(之前默认是分号执行) 开启事务并且更改 回滚 回滚到了初始状态。 提交(commit)事务后再回滚就没有用了。

    4、设置事务的回滚点

    5、自动提交事务 每一个sql语句都是一个独立的事务。

    6、小结:

    1、事务是事务开启的时候开始 2、提交事务、回滚事务后事务都结束 3、只有innodb引擎支持事务 4、一个sql语句就是一个独立的事务,开启事务是将多个sql语句放到一个事务中执行

    三、索引

    3.1 概述

    优点: 加快查询速度

    缺点: 1、带索引的表在数据库中需要更多的存储空间 2、操纵数据的命令需要更长的处理时间,因为它们需要对索引进行更新

    3.2 创建索引的指导原则

    适合创建索引的列

    1、该列用于频繁搜索 2、该列用于对数据进行排序 3、在where子句中出现的列,在join子句中出现的列

    请不要使用下面的列创建索引:

    1、列中仅包含几个不同的值 2、表中仅包含几行,为小型表创建索引可能不太划算,因为mysql在索引中搜索数据所话的时间在表中

    3.3 创建索引

    1、主键索引:只要创建了主键就会自动的创建主键的索引 2、唯一索引: 只要创建了唯一键就会自动的创建唯一索引: 给表添加的方式,创建唯一索引: 通过修改表创建唯一索引: 3、普通索引 给表添加普通索引 修改普通索引 4、小结

    1、创建主键就会创建主键索引 2、创建唯一键就会创建唯一索引 3、创建索引后,数据库根据查询语句自动选择索引

    3.4 删除索引

    语法: drop index 索引名 on 表名

    四、函数

    4.1 数字类

    1、获取随机数 场景一:随机选择一名学生 2、四舍五入 3、截取数据 4、取整 向上取整 向下取整

    4.2 字符串类

    1、大小写转换 2、截取字符串 3、字符串相连 4、coalesce(str1, str2) 如果str1有值就显示str1,如果没有值就显示str2 5、length() 字节长度,char_length() 字符长度

    4.3 时间类

    1、时间戳 2、格式化时间戳 3、获取当前时间 4、获取年月日小时分钟秒 5、星期、月份、哪一天 6、日期相减

    4.4 加密函数

    1、md5() 2、sha()

    五、预处理

    预编译一次,可以多次执行,用来解决一条sql语句频繁执行的问题 预处理语句:

    prepare 预处理名字 from 'sql语句'

    执行预处理:

    execute 预处理名字 [using 变量]

    1、不带参数的处理 2、带一个参数的预处理

    3、小结

    1、MySQL中变量以@开头,通过set给变量赋值。 2、?表示一个占位符。

    在学习的MySQL的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。

    Processed: 0.014, SQL: 9