mysql视图,索引和存储过程
来源:互联网 发布:网络电话回拨软件 编辑:程序博客网 时间:2024/05/22 01:33
一:视图
视图又叫虚表。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
具体视图的作用自行度娘,直接上语句,用语句说明一切
-- 创建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);
输出参数切记加@
阅读全文
0 0
- mysql视图,索引和存储过程
- MYSQL数据库的索引、视图、触发器、游标和存储过程
- MYSQL数据库的索引、视图、触发器、游标和存储过程
- MYSQL数据库的索引、视图、触发器、游标和存储过程
- Mysql视图和存储过程
- 索引,视图和存储过程的利弊
- 索引 视图 存储过程和函数 ———— mysql
- MYSQL数据库高级应用宝典含实例(索引、视图、触发器、游标和存储过程)
- mysql 存储过程、函数、索引、视图的一些系统命令
- mysql视图、存储过程、函数、索引全解析
- mysql索引,视图,游标,触发器,事物,存储过程
- Mysql 聚合函数,内外连接 , 视图 ,索引,触发器, 存储过程
- mysql 视图操作和存储过程
- Mysql视图操作和存储过程
- mysql 视图、存储过程和函数
- mysql存储过程,视图和触发器
- MySql视图、存储过程和触发器
- 视图、索引、存储过程优缺点
- POJ 1743 后缀数组(男人八题七)
- 基于C语言的线性表操作,包含单链表和顺序线性表两种类型
- 脚本命令常用总结
- C++重载运算符详解
- python爬虫学习网址
- mysql视图,索引和存储过程
- 欢迎使用CSDN-markdown编辑器
- dubbo
- Java_基础—多线程(匿名内部类实现线程的两种方式和设置名字的方法)
- laravel5.2 发邮件
- ANR 原理与实战技巧
- Android Studio Bmob学生答题考试系统
- 画图
- 移动端touch事件 -- 上拉加载更多