MySQL视图、事务、索引、账户管理的介绍及使用方法

本文深入解析数据库中的视图、事务和索引概念,探讨它们如何提高数据查询效率、保证数据完整性和安全性。通过实际案例,阐述了视图的创建与使用、事务的ACID特性以及索引的优化作用。

视图

视图就是一张虚拟的表,解决了隔绝了数据库
1、通俗来讲,视图就是一条SELECT语句执行后返回的结果集,所以在创建视图的时候,主要工作就落在创建这条SQL查询语句上了—方便查询
2、视图是对若干张基本表的引用,一张徐彪,查询语句执行结果,不储存具体数据(基本表放生改变,视图也会跟着改变)
优点:
方便操作,特别是查询操作,减少复杂的SQL语句,增强可读性;

定义视图

建议以 v_ 开头

create view 视图名称 as select 语句;
查看视图

查看表会将所有的视图也列出来

show tables;
使用视图

视图的用途就是查询

select * from v_stu_score
删除视图
drop view 表名

注意
在创建单表视图的时候,修改是视图表,基本表会发生改变;多张表组成的视图,视图修改基本表不会改变-----不建议从视图修改数据
总结–视图的作用
1、提高了重用性,就像一个函数
2、对数据库重构,却不影响程序的运行
3、提高了安全性能, 可以对不同的用户
4、让数据更加清晰

事务

保证数据执行的完整性
事务: 它是一个操作序列,这些操作要么执行,要么不执行,它是一个不可分割的工作单位。
事务的四大特性(简称ACID)

  • 原子性(Atomicity)
  • 一致性(Consistency)
  • 隔离性(Isolation)
  • 持久性(Durability)
    原子性
    一个事务必须视为一个不可分割的最小单元,在整个事务的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作——这是事务的原子性
    一致性
    数据库总是从一个一直性的状态转换到另一个一致性的状态。(在下面示例中,一致性确保了,即是在执行过程中,系统崩溃,支票账户中也不会顺势200美元,因为食物最终没有提交,所以在事务中所做的修改也不会保存到数据库中)
    隔离性
    通常来说,一个事务所做的修改在最终提交前之前,对其他事务是不可见的。
    持久性
    一旦事务提交,则会所做的修改永久保存在数据库。(此时即时是数据库崩溃,修改数据也不会丢失)
    示例
    1、检查支票账户的余额高于或者等于200美
    2、从支票账户余额中减去200美元。
    3、在储蓄帐户余额中增加200美元。
    需要操作的以上步骤必须打包到一个事务中,任何一个步骤失败,则必须回滚所有步骤
事务命令

表的引擎类型必须是innodb类型才可以使用事务,这是mysql表的默认引擎
查看表的创建语句,可以看到engine=innodb

# 选择数据库
use 数据库名
# 查看表名
show create table goods;

开始事务

begin
或者
start transaction

提交事务

  • 将缓存中的数据变更维护到屋里表中
commit;

回滚事务

  • 放弃缓存中变更的数据
rollback

注意

  • 1、修改数据的命令会自动的触发事务,包括insert、update、delete
  • 2、在SQL语句中有手动开始事务的原因:可以进行多次数据修该,如果成功一起成功,否则一起回滚到之前的数据

索引

加快数据库的查找速度

  • 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),他们包含对数据表李所有记录的引用指针
  • 通俗来说:数据库索引就好比是一本书面前的目录,能加快数据库的查询速度
索引的原理

71d2c8a8bf2a41a6502c9c085e01e21f.png

索引的使用

查看索引

show index from 表名

创建索引
* 如果指定字段是字符串,需要指定长度,建议长度与定义字段时的长度一致
* 字段类型如果不是字符串,可以不填长度

create index 索引名称 on 表名(字段名称(长度));

# 注意!!! 字段类型如果不是字符串,可以不写长度

删除索引

drop index 索引名称 on 表名;

开启运行时间监测

set profiling=1;

查看执行时间

show profiles;

注意!!!

要注意的是,建立太多的索引将会影响更新和插入的速度,因为它需要同样更新每个索引文件。对于一个经常需要更新和插入的表格,就没有必要为一个很少使用的where字句单独建立索引了,对于比较小的表,排序的开销不会很大,也没有必要建立另外的索引。
建立索引会占用磁盘空间

账户管理

1、查看所有用户
  • 所有用户及权限信息存储在mysql数据库的user表中
  • 查看user表的结构
  • 主要字段说明:
    • Host 表示允许访问的主机
    • User表示用户名
    • authentication_string 表示密码,为加密后的值
      查看所有用户
select host,user authentication_string from user
创建账户、授权
  • 需要使用实例级账户登录后操作,以root为例
  • 常用权限主要包括:create、alter、drop、insert、update、delete、select
  • 如果分配所有权限,可以使用all privileges
创建账户&授权
# 在设置指定数据库时需要 “数据库名.表名”如果查看全部 “数据库名.*”
grant 权限列表 on 数据库  to '用户名' @'访问主机' identified by '密码';
  • 访问主机通常使用 百分号% 表示此账户可以使用任何ip的主机登录访问此数据库
  • 访问主机可以设置成 localhost或具体的ip,表示只允许本机或特定主机访问
    查看用户有哪些权限
show grants for 登录名@访问地址;
修改权限
grant 权限名 on 数据库  to 账号@主机  with grant option;
修改密码
update user set authentication_string=password('新密码') where user='用户名';
  • 注意修改后需要刷新权限
# 刷新权限
flush privileges;
删除账户
# 使用root登录
drop user '用户名'@'主机';
例:
drop user 'laowang'@'%';’
# 语法2:使用root登录,删除mysql数据库的user表中数据
delete from user where user='用户名';
例:
delete from user where user='laowang';
-- 操作结束之后需要刷新权限flush privileges
flush privileges
源码来自:https://pan.quark.cn/s/a4b39357ea24 ### 操作指南:洗衣机使用方法详解#### 1. 启动与水量设定- **使用方法**:使用者必须首先按下洗衣设备上的“启动”按键,同时依据衣物数量设定相应的“水量选择”旋钮(高、中或低水量)。这一步骤是洗衣机运行程序的开端。- **运作机制**:一旦“启动”按键被触发,洗衣设备内部的控制系统便会启动,通过感应器识别水量选择旋钮的位置,进而确定所需的水量高度。- **技术执行**:在当代洗衣设备中,这一流程一般由微处理器掌管,借助电磁阀调控进水量,直至达到指定的高度。#### 2. 进水过程- **使用说明**:启动后,洗衣设备开始进水,直至达到所选的水位(高、中或低)。- **技术参数**:水量的监测通常采用浮子式水量控制器或压力感应器来实现。当水位达到预定值时,进水阀会自动关闭,停止进水。- **使用提醒**:务必确保水龙头已开启,并检查水管连接是否牢固,以防止漏水。#### 3. 清洗过程- **使用步骤**:2秒后,洗衣设备进入清洗环节。在此期间,滚筒会执行一系列正转和反转的动作: - 正转25秒 - 暂停3秒 - 反转25秒 - 再次暂停3秒- **重复次数**:这一系列动作将重复执行5次,总耗时为280秒。- **技术关键**:清洗环节通过电机驱动滚筒旋转,利用水流冲击力和洗衣液的化学效果,清除衣物上的污垢。#### 4. 排水与甩干- **使用步骤**:清洗结束后,洗衣设备会自动进行排水,将污水排出,然后进入甩干阶段,甩干时间为30秒。- **技术应用**:排水是通过泵将水抽出洗衣设备;甩干则是通过高速旋转滚筒,利用离心力去除衣物上的水分。- **使用提醒**:...
代码下载地址: https://pan.quark.cn/s/c289368a8f5c 在安卓应用开发领域,构建一个高效且用户友好的聊天系统是一项核心任务。 为了协助开发者们迅速达成这一目标,本文将分析几种常见的安卓聊天框架,并深入说明它们的功能特性、应用方法及主要优势。 1. **环信(Easemob)** 环信是一个专为移动应用打造的即时通讯软件开发套件,涵盖了文本、图片、语音、视频等多种消息形式。 通过整合环信SDK,开发者能够迅速构建自身的聊天平台。 环信支持消息内容的个性化定制,能够应对各种复杂的应用场景,并提供多样的API接口供开发者使用。 2. **融云(RongCloud)** 融云作为国内领先的IM云服务企业,提供了全面的聊天解决方案,包括一对一交流、多人群聊、聊天空间等。 融云的突出之处在于其稳定运行和高并发处理性能,以及功能完备的后台管理工具,便于开发者执行用户管理、消息发布等操作。 再者,融云支持多种消息格式,如位置信息、文件传输、表情符号等,显著增强了用户聊天体验。 3. **Firebase Cloud Messaging(FCM)** FCM由Google提供的云端消息传递服务,可达成安卓设备与服务器之间的即时数据交换。 虽然FCM主要应用于消息推送,但配合Firebase Realtime Database或Firestore数据库,开发者可以开发基础的聊天软件。 FCM的显著优势在于其全球性的推送网络,保障了消息能够及时且精确地传输至用户。 4. **JMessage(极光推送)** 极光推送是一款提供消息发布服务的软件开发工具包,同时具备基础的即时通讯能力。 除了常规的文字、图片信息外,极光推送还支持个性化消息,使得开发者能够实现更为复杂的聊天功能。 此...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值