mysql视图,索引和存储过程
一:视图
视图又叫虚表。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
具体视图的作用自行度娘,直接上语句,用语句说明一切
-- 创建commodity的伪表
create view va as select * from commodity
-- 查询伪表
select * from va
-- 删除伪表
drop view va
切记当把一张表查询出来当视图的时候,删除一条数据会将原表的数据删除
多张表的情况下不会出现这种情况
二:索引
索引是指把你设置为索引的字段的内容储存在一个独立区间里,里面只有这个字段的内容。在找查这个字段的内容时会直接从这个独立区间里查找,而不是去到数据表里查找,大大提高了效率
讲到索引,首先要了解到他的优缺点,这是必不可少的;
优点:有了索引.对于记录数量很多的表,可以提高查询速度.
缺点:索引是占用空间的。索引会影响insert delete update 的速度
但是在操作数据库的时候,往往查询的次数要比增删改加起来还要多很多,相对来说,牺牲一些增删改的效率而提高查询的效率,这是值得的
话不多说,上语句
-- 创建一个普通索引,这是最基本的索引,它没有任何限制。创建方式:
create index ia on x3(name)
-- 为x3表中的name字段添加普通索引,如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是BLOB和TEXT类型,必须指定 length
-- 删除一个普通索引
drop index ia on x3
-- 创建一个唯一索引,它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。创建方式:
create unique index ia on x3(name)
-- 删除一个唯一索引
drop index ia on x3
-- 主键索引:它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引:
三:存储过程
存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合。可将其视为批件,虽然它们的作用不仅限于批处理。
在我看来,存储过程其实就是处理有一定逻辑的sql语句,可以在存储过程中创建,删除,更新表
为什么要使用存储过程:用sql能实现的逻辑,在代码中也能实现,但是效率却比sql差的太远了,如果一个大的项目任何逻辑全是用代码实现,那么效率会大大降低,相反的,如果用sql实现一些简单的逻辑,那么就会让我们的程序跑的更加欢快了
存储过程实现的是逻辑,其实语法跟我们代码中的方法很是相似,
下面直接上语句,一目了然
-- 创建一个名叫p1()的存储过程
create procedure p1()
-- 存储开始
BEGIN
-- 创建一个int类型x
declare x int;
-- 为x赋值
set x=1;
-- 开启事务
start TRANSACTION;
-- 这里才是实现逻辑
while x<10 do
insert into x3 values (x,concat('aa',x));
set x=x+1;
-- 结束循环
end while;
--关闭事务
COMMIT;
-- 存储结束
END
上面只是建立了存储过程
接下来只有调用了存储过程才能实现
-- 调用存储过程
call p1()
接下来演示一下有参的存储过程
-- 创建带参数的存储过程
CREATE PROCEDURE p3(in x INT)
BEGIN
DECLARE y INT;
SET y=x+1;
SELECT y;
END
-- 调用带参数的存储过程
CALL p3(8)
-- 输出和输出参数
-- 切记输出参数要加@
CREATE PROCEDURE p5(IN x int,OUT y VARCHAR(255))
begin
SELECT NAME INTO y FROM x3 WHERE id=x;
SELECT y;
END
-- 调用存储过程
CALL p5(8,@x);
-- 输入输出参数
CREATE PROCEDURE p6(INOUT x int)
BEGIN
DECLARE y INT;
-- set y=x;
SELECT COUNT(*) INTO y FROM x3 WHERE id=x;
SET x=y;
SELECT x;
END
-- 调用存储过程
set @x=5;
CALL p6(@x);
输出参数切记加@
mysql视图,索引和存储过程的更多相关文章
- 2020重新出发,MySql基础,MySql视图&索引&存储过程&触发器
@ 目录 视图是什么 视图的优点 1) 定制用户数据,聚焦特定的数据 2) 简化数据操作 3) 提高数据的安全性 4) 共享所需数据 5) 更改数据格式 6) 重用 SQL 语句 MySQL创建视图 ...
- Mysql 视图 游标 触发器 存储过程 事务
Mysql 视图 触发器 存储过程 游标 游标是从数据表中提取出来的数据,以临时表的形式存放在内存中,在游标中有一个数据指针,在初始状态下指向的是首记录,利用fetch语句可以移动该指针,从而对游标中 ...
- MySQL视图view/存储过程和函数的使用
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } p. ...
- python mysql 视图 触发器 事物 存储过程 用户授权 数据备份还原
###################总结########### 视图是一个虚拟表(非真实存在) 是跑在内存中的表,真实表是在硬盘上的表 使用视图我们可以把查询过程中的临时表摘出来,保存下来,用视图去 ...
- MySQL视图 索引 存储过程 触发器 函数
视图: 也就是一个虚拟表(不是真实存在的),它的本质就是根据SQL语句获取动态的数据集,并为其命名.用户使用时只需要使用命名的视图即可获取结果集,并可以当做表来使用.它的作用就是方便查询操作,减 ...
- MySQL 视图 触发器 事务 存储过程 函数 流程控制 索引与慢查询优化
视图 1.什么是视图? 视图就是通过查询得到的一张虚拟表,然后保存下来,下次可直接使用 2.为什么要使用视图? 如果要频繁使用一张虚拟表,可以不用重复查询 3.如何使用视图? create view ...
- MySQL 视图触发器事务存储过程函数
事务 致命三问 什么是事务:开启了一个包含多条SQL语句的事务,这些SQL语句要么都执行成功,要么有别想成功:例如A向B转账,二人账户并不属于一家银行,在转账过程中由于网络问题,导致A显示转账 成功 ...
- mysql 视图 触发器 事物 存储过程 函数 流程控制
1.视图 *** 视图是有一条sql语句的查询结果构成的虚拟表 其不是物理存在的 使用方式与普通表相同 视图的作用1.简化sql语句的编写 2.限制可以查看的数据 可以使用权限来完成 权限某一个库 的 ...
- MySQL——视图/触发器/事务/存储过程/函数/流程控制
一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...
- MySQL视图,触发器,事务,存储过程,函数
create triggr triafterinsertcmdlog after insert on cmd_log FOR EACH ROW trigger_body .#NEW : 代表新的记录 ...
随机推荐
- Electron结合React开发环境遇到的问题
链接 将create-react-app与electron集成在了一个项目中.但是在React中无法使用electron 当在React中使用require('electron')时就会报TypeEr ...
- dubbo之多注册中心
Dubbo 支持同一服务向多注册中心同时注册,或者不同服务分别注册到不同的注册中心上去,甚至可以同时引用注册在不同注册中心上的同名服务.另外,注册中心是支持自定义扩展的. 多注册中心注册 比如:中文站 ...
- 推荐系统入门:作为Rank系统的推荐系统(协同过滤)
知乎:如何学习推荐系统? 知乎:协同过滤和基于内容的推荐有什么区别? 案例:推荐系统实战? 数据准备:实现推荐栏位:重构接口:后续优化. 简书:实现实时推荐系统的三种方式?基于聚类和协同过滤:基于S ...
- 统计:mAP的中文意思
原文链接:http://blog.csdn.net/Lu597203933/article/details/41802155 之前写过一篇blog叫做机器学习实战笔记之非均衡分类问题:http://b ...
- 怎样批量删除PDF文件中的注释
日常我们在阅读一些PDF文章时候,我们会发现有些PDF文章带有非常多的注释,显得非常不美观,影响了阅读体验.那么PDF文章里的批注应该怎么进行删除呢?怎样批量删除PDF文件中的注释? 操作教程: ...
- json简介及josn数组中取字符
1.json字符串就是字符串,只不过格式是Json格式的,以键值对的形式存在,键和值可以是字符串,数字,空值,数组等. json对象在花括号中书写,一个json对象包含多个键值对,json对象以花括号 ...
- Java设计模式之 — 策略(Strategy)
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/8986285 今天你的leader兴致冲冲地找到你,希望你可以帮他一个小忙,他现在急 ...
- 阿里云oss用做文件存储工具类
package com.fsk.fsksystem.util; import java.io.IOException; import java.io.InputStream; import java. ...
- Spring Cloud-Ribbon ILoadBalancer负载均衡器核心源码(四)
Ribbon负载均衡相关类 AbstractloadBalancer ILoadBalancer的抽象实现类 public abstract class AbstractLoadBalancer im ...
- 0802关于mysql数据库的锁机制
参考网址 http://www.cnblogs.com/yelbosh/p/5813865.html http://www.cnblogs.com/chenpingzhao/p/5065316.htm ...