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显示转账 成功 ...
随机推荐
- 注册带有Portal功能的DYN365_ENTERPRISE_PLAN1地址
使用官方进入的注册页面注册后试用,发现没有Portal功能. https://trials.dynamics.com/Dynamics365/Signup 使用以下的地址注册可以产生Portal ht ...
- IETF
一.简介 https://zh.wikipedia.org/wiki/%E4%BA%92%E8%81%94%E7%BD%91%E5%B7%A5%E7%A8%8B%E4%BB%BB%E5%8A%A1%E ...
- PAT 1044 火星数字(20)(思路+代码)
1044 火星数字(20)(20 分) 火星人是以13进制计数的: 地球人的0被火星人称为tret. 地球人数字1到12的火星文分别为:jan, feb, mar, apr, may, jun, jl ...
- Storm 系列(二)实时平台介绍
Storm 系列(二)实时平台介绍 本章中的实时平台是指针对大数据进行实时分析的一整套系统,包括数据的收集.处理.存储等.一般而言,大数据有 4 个特点: Volumn(大量). Velocity(高 ...
- @Id 和 @column 注解 使用注意
当@Id写字啊 field 上时 ,如过 把 @column 写在 getter 方法上 ,会出现错误 或者不起作用 Unknown column 'gecompanys0_.sourcec' in ...
- python panda库自动去重
http://blog.csdn.net/xinxing__8185/article/details/48022401
- C语言点滴
static修饰的变量和函数不可以在其他文件extern引用该变量或者函数. static变量放在静态内存区. static变量赋值只生效一次,再无法调用赋值语句.但是可以运算,例如++等. exte ...
- how to enable the Accessibility in the app
第一部分 先要装一个accchecker,全称是 UI Accessibility Checker .下载地址: http://acccheck.codeplex.com/ 装了之后 用这个工具可以 ...
- 【commons-io】File对文件与目录的处理&FileUtis,IOUtils,FilenameUtils工具的使用
-------------------File的使用-------------- 1.File类对文件的处理 1.1目录结构: 1.2测试对文件Test.txt处理: // 测试文件 @Test p ...
- oracle 用一个表的一个字段更新另一个表的一个字段
案列: 想更新A表的name字段,由于失误,在写这个表的时候,这个字段没有写,发现的时候,已经写了一个多月的数据了.改了之后的过程,会正常的写这个字段, 可是已经写了的数据也不能铲了,重新计算. 好在 ...