索引,事务,视图

索引

此时是要获取所有的数据,是否有索引作用不大
select * from emp
– 因为数据库以及自动的给主键列empno创建了索引,查询条件中出现empno,自动使用索引进行查询
– 是否使用索引,语句没有区别
select * from emp where empno = 7654;

– 因为没有给ename列创建索引,此时是逐个查询比较,效率低下
select * from emp where ename = ‘BLAKE’
– 创建一个索引,默认升序排列
create index index_emp_ename on emp(ename)
– 因为已经创建了索引,所以此时使用索引进行查询,效率提升
select * from emp where ename = ‘BLAKE’

– 显示索引
show index from emp;

– 删除索引
drop index index_emp_ename on emp
alter table emp drop index index_emp_ename

– 没有给sal、hiredate创建索引,效率低下
select * from emp order by sal ,hiredate

– 创建索引
create index index_emp_sal_hiredate on emp (sal ,hiredate desc)

– 使用索引,效率提升
select * from emp order by sal ,hiredate

事务

– 创建account账户表
create table account(
id int primary key auto_increment,
username varchar(30) not null,
balance double
);
– 为account账户表同时插入两条数据
insert into account (username, balance) values(‘张三’, 2000),(‘李四’, 2000);
– 查看account账户表中的数据
select * from account;

– 转账操作
– 默认事务自动提交,一条dml语句是一个事务
update account set balance= balance-1000 where id =1

update account set balance = balance +1000 where id=2

– 如果要多个操作是一个事务,需要事务必须手动的提交
– 事务开始,成功不会自动提交,失败也不会自动回滚
start transaction

update account set balance= balance-1000 where id =1

update account set balance = balance1 +1000 where id=2

– 手动提交
commit
– 手动回滚
rollback;

mysql 查询、设置事务隔离级别 transaction_isolation
select @@transaction_isolation

– 设置当前会话的事务级别为 READ-COMMITTED
set session transaction isolation level read uncommitted
set session transaction isolation level read committed
set session transaction isolation level repeatable read

set session transaction isolation level read uncommitted

select * from dept

视图

– 创建单表视图
create or replace view myview1
as
select empno,ename,job,mgr,hiredate,deptno from emp
where hiredate <‘1981-09-28’
with check option

select * from myview1

select empno,ename,job from myview1 where job =‘MANAGER’

insert into myview1 values(9999,‘9999’,‘9999’,7839,‘1980-12-23’,30)
– 1369 - CHECK OPTION failed ‘mydb.myview1’
insert into myview1 values(1000,‘9999’,‘9999’,7839,‘1999-12-23’,30)

select * from emp

– 创建多表视图
create or replace view myview2
as
select e.empno,e.ename,e.sal,e.comm,d.deptno,d.dname
from emp e
join dept d
on e.deptno = d.deptno
where sal>2500

select * from myview2

– 创建统计视图
create or replace view myview3
as
select e.deptno 部门编号, d.dname 部门名称,avg(sal) 平均工资,max(sal) 最高工资,count(*) 部门人数
from emp e
join dept d
using(deptno)
where deptno is not null
group by e.deptno

select * from myview3

– 创建基于视图的视图
create or replace view myview4
as
select * from myview3 where 最高工资>=3000

select * from myview4

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/325147.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

配置环境变量 path

原理 根据windows系统在查找可执行程序的原理&#xff0c;可以将java工具所在路径定义到path 环境变量中&#xff0c;让系统帮我们去找运行执行的程序。 配置方法 我的电脑–属性–高级系统设置–环境变量 编辑 path 环境变量&#xff0c;在变量值开始处加上java工具所在目录…

ssl2863-石子合并【dp练习】

Description 在一个操场上一排地摆放着N堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2堆石子合并成新的一堆&#xff0c;并将新的一堆石子数记为该次合并的得分。请设计一个程序&#xff0c;计算出将N堆石子合并成一堆的最小得分。 Input 每组数据第1行为一个…

《走遍中国》珍藏版(四)

Console.WriteLine("上一本书已经看完&#xff0c;从今天开始看下一本"); System.out.println("《走遍中国》珍藏版"); System.out.println("这本书是关于地理的"); System.out.println("地理往往是和历史进行紧密联系的");游走其中&a…

前端框架选型

前面的话 有一个流传较广的笑话&#xff0c;一个人在stackoverflow中提了一个问题&#xff0c;如何使用javascript实现一个数字与另外一个数字相加。最高票回答是你应该使用jQuery插件&#xff0c;jQuery插件可以做任何事情。 历史总是在重演&#xff0c;以前是jQuery&#xff…

JavaFX UI控件教程(一)之简述

翻译自 JavaFX UI控件概述 关于本教程 本教程介绍JavaFX API中提供的内置JavaFX UI控件。 该文件包含以下章节&#xff1a; JavaFX UI控件 标签 按钮 单选按钮 切换按钮 复选框 选择框 文本域 密码框 滚动条 滚动面板 列表视图 表视图 树视图 组合框 分隔器…

断言、触发器、存储过程

断言 assertion 设置每一门课程最多有60人选修 create assertion a check (60 > all ( select count(*) from sc group by cno) ); drop assertion a; 触发器 trigger 删除触发器 drop tigger a on student 存储过程 定义一个没有返回值的存储过程 create procedure my…

《走遍中国》珍藏版(五)

Console.WriteLine("上一本书已经看完&#xff0c;从今天开始看下一本"); System.out.println("《走遍中国》珍藏版"); System.out.println("这本书是关于地理的"); System.out.println("地理往往是和历史进行紧密联系的");陕西&#…

ssl1007 and ssl -最大乘积 and 加法最大【区间dp练习】

Description   今年是国际数学联盟确定的“2000——世界数学年”&#xff0c;又恰逢我国著名数学家华罗庚先生诞辰90周年。在华罗庚先生的家乡江苏金坛&#xff0c;组织了一场别开生面的数学智力竞赛的活动&#xff0c;你的一个好朋友XZ也有幸得以参加。活动中&#xff0c;主…

一个java源文件中可以声明多少个class与编译后会生成多少个字节码文件

在一个java源文件中可以声明多个class。 但是&#xff0c;只能最多有一个类声明为public的。 而且要求声明为public的类的类名必须与源文件名相同。 编译的过程 编译以后&#xff0c;会生成一个或多个字节码文件。字节码文件的文件名与java源文件中的类名相同。 运行 只能运…

用户管理

用户管理 查询用户 use mysql select * from user use mydb select * from mysql.user – 创建用户 create user ‘zhangsan’ identified by ‘zhangsan’ – create user ‘用户名’‘主机名’ identified by ‘密码’ create user ‘lisi’‘localhost’ identified by ‘…

JavaFX UI控件教程(二)之JavaFX UI控件

翻译自 JavaFX UI控件 本章概述了通过API提供的JavaFX UI控件。 JavaFX UI控件是使用场景图中的节点构建的。因此&#xff0c;控件可以使用JavaFX平台的视觉丰富功能。由于JavaFX API完全用Java实现&#xff0c;因此您可以轻松地将JavaFX UI控件集成到现有的Java应用程序中…

《走遍中国》珍藏版(六)

Console.WriteLine("上一本书已经看完&#xff0c;从今天开始看下一本"); System.out.println("《走遍中国》珍藏版"); System.out.println("这本书是关于地理的"); System.out.println("地理往往是和历史进行紧密联系的");草长莺飞&a…

JDK,JRE,JVM三者的关系

JDKJREJava的开发工具(javac.exe,java.exe,javadoc.exe) JREJVMJava核心类库

ssl1597-石子合并问题【区间dp练习】

Description   在一个圆形操场的四周摆放着n 堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2 堆石子合并成新的一堆&#xff0c;并将新的一堆石子数记为该次合并的得分。试设计一个算法&#xff0c;计算出将n堆石子合并成一堆的最小得分和最大得分。 编程任务…

JavaFX UI控件教程(三)之Label

翻译自 Label 本章介绍如何使用Label驻留在javafx.scene.controlJavaFX API包中的类来显示文本元素。了解如何包装文本元素以适合特定空间&#xff0c;添加图形图像或应用视觉效果。 图2-1显示了三种常见的标签用法。左侧的标签是带有图像的文本元素&#xff0c;中间的标签表…

asp.net core中负载均衡场景下http重定向https的问题

上周欣喜地发现&#xff0c;微软官方终于针对 asp.net core 在使用负载均衡的情况下从 http 强制重定向至 https 的问题提供了解决方法。 app.UseForwardedHeaders(new ForwardedHeadersOptions {ForwardedHeaders ForwardedHeaders.XForwardedProto });var options new Rew…

《走遍中国》珍藏版(七)

Console.WriteLine("上一本书已经看完&#xff0c;从今天开始看下一本"); System.out.println("《走遍中国》珍藏版"); System.out.println("这本书是关于地理的"); System.out.println("地理往往是和历史进行紧密联系的");鸣沙山群峰…

JavaFX UI控件教程(四)之Button

翻译自 Button Button通过JavaFX API提供的类使开发人员能够在用户单击按钮时处理操作。该Button班是的扩展Labeled类。它可以显示文本&#xff0c;图像或两者。图3-1显示了具有各种效果的按钮。在本章中&#xff0c;您将学习如何创建这些按钮类型。 图3-1按钮类型 创建一个按…

角色管理

角色管理 MySQL8新增的功能 – 创建角色 role create role ‘dev_read’,‘dev_write’ – 给角色分配权限 grant select on mydb.* to ‘dev_read’ grant insert,update,delete on mydb.* to ‘dev_write’ – 创建用户 create user ‘user1’‘localhost’ identified b…