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(视图、触发器、函数)的更多相关文章

  1. mysql 视图/触发器/函数

    一.视图 作用:简写代码,与临时表的作用差不多 .创建 create view 视图名 as SQL语句 .修改 alter view 视图名 as 新SQL语句 .删除 drop view 视图名 ...

  2. Database学习 - mysql 视图/触发器/函数

  3. mysql 视图 触发器 存储过程 函数事务 索引

    mysql 视图 触发器 存储过程 函数事务 索引 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当 ...

  4. MySQL 查询 存储过程 视图 触发器 函数 索引 建表语句 数据库版本 当前登录用户 当前数据库名称

    MySQL 查询 存储过程 视图 触发器 函数 索引 建表语句 数据库版本 当前登录用户 当前数据库名称   INFORMATION_SCHEMA.TABLES INFORMATION_SCHEMA. ...

  5. mysql 查询表,视图,触发器,函数,存储过程

    1. mysql查询所有表: SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '数据库名' AND  TAB ...

  6. Mysql 视图,触发器,存储过程,函数,事务

    视图 视图虚拟表,是一个我们真实查询结果表,我们希望将某次查询出来的结果作为单独的一个表,就叫视图,无法对图字段内容进行增删改. --格式: CREATE VIEW 视图名字 AS 操作; --比如: ...

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

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

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

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

  9. mysql视图 触发器 事物 函数 存储过程

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

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

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

随机推荐

  1. 07 Maven 使用Nexus创建私服

    7. Maven 使用Nexus创建私服 私服不是 Maven 的核心概念,它仅仅是一种衍生出来的特殊的 Maven 仓库.通过建立自己的私服,就可以降低中央仓库负荷.节省外网带宽.加速 Maven ...

  2. ajax序列化表单,再也不用通过data去一个个的传值了

    jQuery的serialize()方法通过序列化表单值,创建URL编码文本字符串,我们就可以选择一个或多个表单元素,也可以直接选择form将其序列化 这样,我们就可以把序列化的值传给ajax()作为 ...

  3. 2018.10.14 NOIP训练 圣诞树(简单dp)

    传送门 sbDP题. 曾经一直TLE不知道为什么. 这次发现输入有坑233. 代码

  4. hdu-1181(bfs)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1181 思路:bfs,就是每次找到匹配麻烦一点,注意如果结尾和开头相同,就不算. #include< ...

  5. js级联出生日期

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. python面向对象-1方法、构造函数

    类是指:描述一种事物的定义,是个抽象的概念 实例指:该种事物的一个具体的个体,是具体的东西 打个比方: “人”是一个类.“张三”是人类的一个具体例子 在编程时也是同样的道理,你先自己定义一个“类”,当 ...

  7. movielens 时间戳是秒级别的

    sigmoid(inX)函数 def sigmoid(inX): return 1.0/(1+exp(-inX)) Timestamps represent seconds since midnigh ...

  8. 20155212 2016-2017-2 《Java程序设计》第7周学习总结

    20155212 2016-2017-2 <Java程序设计>第7周学习总结 教材学习内容总结 Chapter13 取得系统时间的方法之一是System.currentTimeMillis ...

  9. python+django+mysql配置步骤

    安装python 详细步骤见:地址 1. 从 http://www.python.org/download/ 下载最新的python版本 (我用的是python2.6, 当时最稳定的) 2. 然后一路 ...

  10. ArcGIS根据最大最小坐标换算瓦片行列号

    1.前言 在上一节中我们知道了屏幕上一像素等于实际中多少单位长度(米或经纬度)的换算方法,而知道这个原理后,接下来我们要怎么用它呢?它和我们前端显示地图有什么关联呢?这一节,我会尽量详细的将这两个问题 ...