一:视图

视图又叫虚表。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。

具体视图的作用自行度娘,直接上语句,用语句说明一切

-- 创建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视图,索引和存储过程的更多相关文章

  1. 2020重新出发,MySql基础,MySql视图&索引&存储过程&触发器

    @ 目录 视图是什么 视图的优点 1) 定制用户数据,聚焦特定的数据 2) 简化数据操作 3) 提高数据的安全性 4) 共享所需数据 5) 更改数据格式 6) 重用 SQL 语句 MySQL创建视图 ...

  2. Mysql 视图 游标 触发器 存储过程 事务

    Mysql 视图 触发器 存储过程 游标 游标是从数据表中提取出来的数据,以临时表的形式存放在内存中,在游标中有一个数据指针,在初始状态下指向的是首记录,利用fetch语句可以移动该指针,从而对游标中 ...

  3. MySQL视图view/存储过程和函数的使用

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } p. ...

  4. python mysql 视图 触发器 事物 存储过程 用户授权 数据备份还原

    ###################总结########### 视图是一个虚拟表(非真实存在) 是跑在内存中的表,真实表是在硬盘上的表 使用视图我们可以把查询过程中的临时表摘出来,保存下来,用视图去 ...

  5. MySQL视图 索引 存储过程 触发器 函数

       视图: 也就是一个虚拟表(不是真实存在的),它的本质就是根据SQL语句获取动态的数据集,并为其命名.用户使用时只需要使用命名的视图即可获取结果集,并可以当做表来使用.它的作用就是方便查询操作,减 ...

  6. MySQL 视图 触发器 事务 存储过程 函数 流程控制 索引与慢查询优化

    视图 1.什么是视图? 视图就是通过查询得到的一张虚拟表,然后保存下来,下次可直接使用 2.为什么要使用视图? 如果要频繁使用一张虚拟表,可以不用重复查询 3.如何使用视图? create view ...

  7. MySQL 视图触发器事务存储过程函数

    事务  致命三问 什么是事务:开启了一个包含多条SQL语句的事务,这些SQL语句要么都执行成功,要么有别想成功:例如A向B转账,二人账户并不属于一家银行,在转账过程中由于网络问题,导致A显示转账 成功 ...

  8. mysql 视图 触发器 事物 存储过程 函数 流程控制

    1.视图 *** 视图是有一条sql语句的查询结果构成的虚拟表 其不是物理存在的 使用方式与普通表相同 视图的作用1.简化sql语句的编写 2.限制可以查看的数据 可以使用权限来完成 权限某一个库 的 ...

  9. MySQL——视图/触发器/事务/存储过程/函数/流程控制

    一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...

  10. MySQL视图,触发器,事务,存储过程,函数

    create triggr triafterinsertcmdlog after insert on cmd_log FOR EACH ROW trigger_body .#NEW : 代表新的记录 ...

随机推荐

  1. [WIFI插座][阅读记录][SoC][RT5350] 00.目录 RALINK AP SDK 4.1.0.0 USER’s MANUAL

    来源是CSDN,百度网盘下载地址 http://pan.baidu.com/share/link?shareid=3504767505&uk=3426044377   授权声明,略过 免责声明 ...

  2. linux 新添加的硬盘格式化并挂载到目录下

    需求: 新增加一块硬盘sdb,将sdb分区,只分一个区,格式化,挂载到目录/ssd下. 1.  查看现在已有的分区状态 # df –l 图中显示,没有看到sdb硬盘 2.  查看服务器安装的硬盘状态( ...

  3. Python+selenium第一个自动化脚本

    第一个自动化脚本(用Python写的) from selenium import webdriver  #从selenium导入webdriber driver=webdriber.Firefox() ...

  4. Mysql正则

    摘自:http://www.runoob.com/mysql/mysql-regexp.html 模式 描述 ^ 匹配输入字符串的开始位置.如果设置了 RegExp 对象的 Multiline 属性, ...

  5. ApplicationLoader登录失败

    报错:Please sign in with an app-specific password. You can create one at appleid.apple.com 是因为帐号开启了双重认 ...

  6. Java中String类的常用方法

    判断功能的方法 public boolean equals (Object anObject) :将此字符串与指定对象进行比较. public boolean equalsIgnoreCase (St ...

  7. day009 文件操作

    文件操作 文件路径 d:\test.txt 编码方式 utf-8 gbk... 操作方式 操作方式:只读,只写,追加,读写,写读..... 以什么编码方式储存的文件,就以什么编码打开进行操作. 只读: ...

  8. 如何查看Linux的CPU负载

    哪些工具可以查看 CPU 负载? 可以使用 top 命令.uptime 命令,特别是 top 命令,功能强大,不仅仅可以用来查看 CPU 负载. CPU 负载怎么理解?是不是 CPU 利用率? 要区别 ...

  9. Labview学习笔记(二)

    一.编程基础 LABVIEW程序成为虚拟.仪器程序,简称VI,一个最基本的VI包括三个部分:前面板.程序框图和图标/连接端口. 1.前面板 在前面板窗口中,可以添加输入控件和显示控件,同时,可以用快捷 ...

  10. 【剑指Offer】45、扑克牌顺子

      题目描述:   LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到 ...