数据库学习笔记(7)——DCL\数据库的备份与恢复\事务\视图\索引
创始人
2025-06-01 20:41:36

1、DCL:

  • 在真实项目环境中是一个项目对应一个数据库,编写项目的开发人员只有操作这个数据库的权限,一般会为每个项目创建一个用户,给这个用户分配出来相关数据库的权限。【这些操作是在root权限下完成的】
    在这里插入图片描述
  • 练习:
    1、新建一个用户(同时也要新建连接)
    在这里插入图片描述
    2、给这个用户分配一个数据库处理权限(注意如果在创建用户之后分配权限,有的权限需要用户断开连接重新连接才会产生效果)
    3、让该用户查看对应数据库
    4、删除该用户(删除连接)
    在这里插入图片描述
    在这里插入图片描述

2、数据库的备份与恢复:

  • 具体流程如下:在这里插入图片描述
  • 注意上述流程备份数据的时候要保证数据库还存在,而恢复数据的前提是数据库已被删除,且在workbench中新建了一个数据库。

3、事务:

  • 执行的SQL语句就是所谓的事务,目前来说一条SQL语句就是一个事务
  • 整体形成一个任务,不可再分割的操作称为事务,有些场景的实现需要多条sql语句协助才能完成一个任务,这种场景就需要我们自己定义事务。
  • 举个例子:在银行转账过程中,收款方与打款方的例子就是最好的关于事务的说明,在银行转账系统中需要打款人的扣钱操作与收款人的收钱操作同时达成且数额对等才能让这两条命令生效,这里就需要用到事务,因为事务具有以下特性:
    在这里插入图片描述
  • 事务的语句结构
    在这里插入图片描述
  • 练习:用事务的方法模拟一个银行转账操作
-- 首先在db_exercise1下新建一个账户表
use db_exercise1;
create table if not exists tb_account(
cid int primary key auto_increment comment '账户编号',
cname varchar(255) comment '账户名称',
balance decimal(10,2) comment '账户余额'
);
-- 插入两个用户
insert into tb_account(cname,balance) values
('甲人',10000),
('乙人',0);
-- 检查表中内容
select * from tb_account;-- 执行更新数据时报错: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column.  To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.
-- 解决方案:SET SQL_SAFE_UPDATES = 0;-- 第一个事务:通过事务完成转账操作
begin;
update tb_account set balance=balance-3000 where cname='甲人';
update tb_account set balance=balance+3000 where cname='乙人';
commit;-- 第二个事务:转账过程中如果不一致(违反一致性,就要回滚数据)
begin;
update tb_account set balance=balance-1000 where cname='甲人';
update tb_account set balance=balance+1500 where cname='乙人';
rollback;

在这里插入图片描述
在这里插入图片描述

  • 注意:在事务中整体运行begin及之后语句,但不运行结束事务语句,在终端中结果查询是不会更新表格的。只有运行begin语句和之后语句以及结束事务语句commit之后,最终结果才会在终端查询时呈现。

4、视图:

  • 1、把 select 查询结果做一个快照,形成临时表
-- 语句
create view v_视图名 as select 语句;

注意:这个功能就是把select语句的结果用一个名字定义,下次使用这个结果可以直接通过这个名字。视图中的数据可以修改,但是前提是这个数据必须是来自原表的数据(修改了原表数据,原表也会发生改变),如果是通过聚合函数之类的函数统计得到的数据,视图是无法修改的,会报错。

  • 2、控制访问列的权限:例如公司中的员工表可以给普通员工看,但是普通员工只能看到姓名之类的,不能看到别人的工资。这就是通过将含有工资的原表通过select语句生成一个视图,但是不显示工资之类的敏感信息。然后再通过数据库DCL中的权限控制语句把该视图的权限给到普通员工,这样就能满足上述要求了。

5、索引:

  • 1、接触到索引的有“主键索引”和“唯一索引”,分析字段需求的时候设定相关约束,使用索引键查询效率快的原因是索引就相当于书籍的目录。
  • 2、索引底层结构是B+树,数据遍历通过二分法查找。
  • 3、要看到sql的执行计划,看到sql语句执行效率可以通过下面的sql语句:
explain sql语句;

注意:想要提高查询效率,尽量通过“索引键”查询。

  • 4、索引键相关sql语句如下:

在这里插入图片描述

  • 5、前缀查询
create index idx_索引名 on 表名(字段名(元素下标)); -- 下标从1开始

举例:
在这里插入图片描述

  • 6、复合查询
create index idx_索引名1_索引名2.. on 表名(字段名1,字段名2,..); -- 下标从1开始

举例:
在这里插入图片描述

  • 练习:用两种方法查询,然后通过explain看看两种方法的不同之处
    在这里插入图片描述

相关内容

热门资讯

一种古老的蛋白质,打破了手性规... 有一种极为古老的蛋白质,它宛如自然界的神秘使者,悄然打破了手性规则。在漫长的岁月长河中,大多数蛋白质...
市值蒸发超20亿!光伏龙头被调... 6月3日,深交所发布公告称,将于6月16日对深证成指、创业板指、深证100等核心指数实施样本股定期调...
餐饮旅游概念股走强,南京商旅涨... 6月3日,餐饮旅游概念股走强,南京商旅涨停,金陵饭店、华立科技涨逾5%。
国内AI大模型技术崛起,半导体... 截至2025年6月3日 10:46,中证半导体产业指数(931865)强势上涨1.64%,成分股中巨...
“体育+商圈”跨界融合,济南潮... 6月1日晚,济南世茂广场中央舞台,激光划破夜空,5位潮流运动达人获颁“2025年济南潮流体育消费季推...
A股三大指数相继翻红,游戏、数... 格隆汇6月3日|A股三大指数相继翻红,游戏、数字货币、贵金属板块领涨。
原创 美... 美国关税再一次出现了大反转,特朗普的脸被打得啪啪响,但咱们可一定得把持住,千万别被带了节奏。 5月底...
华西证券:5月30日融券卖出2... 证券之星消息,5月30日,华西证券(002926)融资买入566.54万元,融资偿还1012.56万...
“投资于人”激发消费活力 李俊成 在加快构建新发展格局的大背景下,如何扩大内需、提振消费,成为推动经济高质量发展的重要课题。就...
佰维存储:5月30日融资买入3... 证券之星消息,5月30日,佰维存储(688525)融资买入3213.65万元,融资偿还3676.11...
A股,三大利好!“南哥”,刷爆... 题材火爆的时段又来了!早盘,三大题材类利好突袭市场。其中,江苏足球刷爆网络,其情绪也传递至A股。金陵...
安斯泰来中国加速度:创新生态协... 2024年,中国生物医药市场在“创新药”首次写入政府工作报告的政策东风下,创新药管线数量和资产质量持...
台积电2nm良率已达90%,美... 6月3日消息,据台媒报道,台积电美国亚利桑那州4nm晶圆厂已经量产,英伟达(NVIDIA) 的AI芯...
瀚蓝环境百亿并购正式完成,高效... 6月2日,瀚蓝环境(600323,SH)公告称,公司重大资产重组所有条件均已达成或被豁免,计划生效。...
创业板指半日涨0.73%,创新...   中新经纬6月3日电 3日上午,A股低开高走,创业板指领涨。截至午盘,上证指数涨0.48%,报33...
【午盘】A股早盘低开高走,大金... A股三大股指6月3日集体低开。早盘两市低开高走,三大股指很快转涨。从盘面上看,大金融领涨,银行股再度...
银行板块震荡走高 银行板块震荡... 【银行板块震荡走高】沪农商行涨停,渝农商行涨超6%,兴业银行涨超4%,上海银行、青岛银行、民生银行等...
MemeSwap带你从“听说”... 【台北/马来西亚讯】MemeSwap,这个以DeFi、社区治理与资产激励为核心的去中心化金融平台,正...
EDA概念股爆发,概伦电子涨逾... 6月3日,EDA概念股爆发,概伦电子涨逾14%,广立微涨逾5%,华大九天、安路科技涨逾4%。
估值432亿的全球龙头,英伟达... 英伟达作为全球领先的科技企业,其投资动作往往备受瞩目。如今,估值 432 亿的某全球龙头企业获得了英...
百亿敷尔佳掉进“网红陷阱” 敷... 作者:响马 | 编辑:小鱼“敷尔佳患上流量饥渴症。”好文3611字 | 6分钟阅读图源自敷尔佳官方微...
美国想用发动机换稀土?特朗普黔... 美国终于还是向C919下手了。据《纽约时报》等多家美媒报道,美国商务部暂停向中国商飞发放多项技术许可...
游戏板块早盘活跃,多只游戏ET... 6月3日,游戏板块早盘活跃,掌趣科技涨超10%,巨人网络涨停,多只游戏ETF涨超3%,截至发稿,华夏...
后物质时代的消费革命:卡牌热是... 在我们正儿八经开始分析卡游的这份招股书之前,不妨思考一个小问题:很多人在分析公司、特别是消费品公司的...
黄金再次站上3400美元关口,... 6月2日晚,受国际政治经济形势影响,COMEX黄金再次站上3400美元/盎司。ETF方面,黄金股票E...
新消费概念再度活跃 新消费概念... 【新消费概念再度活跃】休闲食品、美妆、饮料等方向领涨,若羽臣涨停,万辰集团涨超10%,双双创历史新高...
南京“以债换房”政策?官方辟谣... 南京“以债换房”政策?官方辟谣! 最近,南京楼市被一则“重磅消息”搅得沸沸扬扬——多个网络账号声称“...
港股走高,恒指、国指、恒生科技... 格隆汇6月3日|港股走高,恒指、国指、恒生科技指数均涨超1%。
乌“蛛网”行动打开未来作战“潘... 【环球时报特约记者 晨阳 环球时报记者 刘扬】乌克兰在大规模使用无人机发动特种攻击方面,再次震惊了世...