MySQL(视图、触发器、函数)
day61
参考:http://www.cnblogs.com/wupeiqi/articles/5713323.html
视图

视图:给某个查询语句设置别名,日后方便使用
- 创建
create view 视图名称 as SQLs语句
PS: 视图是虚拟的 不存在insert
- 修改
alter view 视图名称 as SQL语句
- 删除
drop view 视图名称;
触发器
当对某张表做:增删改操作时,可以使用触发器自定义关联行为
create trigger 触发器名称 before insert on tb1 for each row
begin
.......
end
每在插入一行前,先执行begin~end中内容。
查询时用不到触发器
#遇到;不能完整执行需要将中止符修改
-- delimiter//
-- create trigger t1 before INSERT on student for each row
-- BEGIN
-- INSERT INTO teacher(tname) values('触发器'); #表示写完了
--
-- END//
-- delimiter;
-- insert into student(gender, class_id, sname) values("女",1,'触发');#插入两行则触发两次
执行触发器后,触发器一直存在。
触发器运行过之后,一直存在,不需要时,需要删除。
drop trigger t1;
插入学生的数据同样插入老师的表中 NEW
#插入学生的数据再插入老师的表中
-- delimiter//
-- create trigger t1 before INSERT on student for each row
-- BEGIN
-- INSERT INTO teacher(tname) values(NEW.sname); #表示写完了
--
-- END//
-- delimiter; insert into student(gender, class_id, sname) values("女",1,'啦啦');#插入两行则触发两次
先执行触发器,结束后注释(触发器已存在),再执行insert语句,数据插入student和teacher表中。


NEW,表示新数据,insert, update(既有新数据,更新为的数据)
OLD,表示老数据,delete, update(又有老数据,被更新数据)
函数
内置函数
select CURDATE();#执行函数
select CHAR_LENGTH('vdsv');#计算字符长度
select CONCAT('ccd','csc','FF');#拼接
执行结果:



等等函数。
关于时间的函数https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html
执行函数 select CURDATE();
blog
id title ctime
1 asdf 2019-11
2 asdf 2019-11
3 asdf 2019-10
4 asdf 2019-10
select ctime,count(1) from blog group ctime
select DATE_FORMAT(ctime, "%Y-%m"),count(1) from blog group DATE_FORMAT(ctime, "%Y-%m")
2019-11 2
2019-10 2
以上按月份进行分组,比如cnblogs中按月份分组的文章。
自定义函数:
delimiter \\
create function f1(
i1 int,
i2 int)
returns int BEGIN
declare num int;
set num = i1 + i2;
return(num);
END \\
delimiter ;
SELECT f1(1,100); #函数有返回值。
MySQL(视图、触发器、函数)的更多相关文章
- mysql 视图/触发器/函数
一.视图 作用:简写代码,与临时表的作用差不多 .创建 create view 视图名 as SQL语句 .修改 alter view 视图名 as 新SQL语句 .删除 drop view 视图名 ...
- Database学习 - mysql 视图/触发器/函数
- mysql 视图 触发器 存储过程 函数事务 索引
mysql 视图 触发器 存储过程 函数事务 索引 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当 ...
- MySQL 查询 存储过程 视图 触发器 函数 索引 建表语句 数据库版本 当前登录用户 当前数据库名称
MySQL 查询 存储过程 视图 触发器 函数 索引 建表语句 数据库版本 当前登录用户 当前数据库名称 INFORMATION_SCHEMA.TABLES INFORMATION_SCHEMA. ...
- mysql 查询表,视图,触发器,函数,存储过程
1. mysql查询所有表: SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '数据库名' AND TAB ...
- Mysql 视图,触发器,存储过程,函数,事务
视图 视图虚拟表,是一个我们真实查询结果表,我们希望将某次查询出来的结果作为单独的一个表,就叫视图,无法对图字段内容进行增删改. --格式: CREATE VIEW 视图名字 AS 操作; --比如: ...
- MySQL视图,函数,触发器,存储过程
1. 视图 视图是一个虚拟表,它的本质是根据SQL语句获取动态的数据集,并为其命名,用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的临时表摘出来, ...
- mysql 视图 触发器 事物 存储过程 函数 流程控制
1.视图 *** 视图是有一条sql语句的查询结果构成的虚拟表 其不是物理存在的 使用方式与普通表相同 视图的作用1.简化sql语句的编写 2.限制可以查看的数据 可以使用权限来完成 权限某一个库 的 ...
- mysql视图 触发器 事物 函数 存储过程
一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...
- MySQL 视图触发器事务存储过程函数
事务 致命三问 什么是事务:开启了一个包含多条SQL语句的事务,这些SQL语句要么都执行成功,要么有别想成功:例如A向B转账,二人账户并不属于一家银行,在转账过程中由于网络问题,导致A显示转账 成功 ...
随机推荐
- java 同步
本文主要记录java进行同步的方案及锁优化的方法,来自<深入理解jvm> 定义 线程安全:多线程访问一个对象时,不用考虑这些线程在运行时环境下的调度与交替执行,也不需要额外的同步或调用方进 ...
- Codeforces 665A. Buses Between Cities 模拟
A. Buses Between Cities time limit per test: 1 second memory limit per test: 256 megabytes input: s ...
- php代码执行顺序
从上往下,调用类里面的方法,类放上面,调用在下面
- $.post 提示错误: Uncaught SyntaxError: Unexpected token :
$.post("addRecommond",{"productId":productId,"categoryCode":categoryCo ...
- centos6.5 redis 安装配置及java调用
1.安装gcc 执行命令 yum install gcc 2. 安装ruby环境 yum install ruby yum install rubygems gem install redis 下载 ...
- part1:9-windows与Linux文件共享
1.winSCP 它是一个windows环境下使用SSH的开源图形化SFTP客户端.同时支持SCP协议.它主要功能就是在本地与远程计算机间安全的复制文件. 前提:Linux与windows能相互pin ...
- 解决Android启动显示空白界面的问题
Android程序启动时,第一个看的界面并不是我们的指定的第一个Activity界面,而是显示了一个空白的界面,带标题栏的,但是界面什么内容都没有,这个界面只显示不到1秒左右的时间就会切换到我们的第一 ...
- Type mismatch in value from map: expected org.apache.hadoop.io.longWritable
hadoop 编译的程序的报错 执行了命令: hadoop fs -put HTTP_20130313143750.dat /date.dochadoop jar MyDataCount.jar co ...
- (二叉树)Elven Postman -- HDU -- 54444(2015 ACM/ICPC Asia Regional Changchun Online)
http://acm.hdu.edu.cn/showproblem.php?pid=5444 Elven Postman Time Limit: 1500/1000 MS (Java/Others) ...
- B-tree B+tree B*Tree
具体讲解之前,有一点,再次强调下:B-树,即为B树.因为B树的原英文名称为B-tree,而国内很多人喜欢把B-tree译作B-树,其实,这是个非常不好的直译,很容易让人产生误解.如人们可能会以为B-树 ...