当前位置:Gxlcms > 数据库问题 > mysql-补充

mysql-补充

时间:2021-07-01 10:21:17 帮助过:8人阅读

一 创建视图

技术分享 View Code

二 使用视图

技术分享 View Code

我们不应该修改视图中的记录,而且在涉及多个表的情况下是根本无法修改视图中的记录的,如下图

技术分享

三 修改视图

技术分享 View Code

四 删除视图

语法:DROP VIEW 视图名称

DROP VIEW teacher_view

二 触发器

使用触发器可以定制用户对表进行【增、删、改】操作时前后的行为,注意:没有查询

一 创建触发器

技术分享 View Code 技术分享 插入后触发触发器

特别的:NEW表示即将插入的数据行,OLD表示即将删除的数据行。

二 使用触发器

触发器无法由用户直接调用,而知由于对表的【增/删/改】操作被动引发的。

三 删除触发器

drop trigger tri_after_insert_cmd;

三 事务

事务用于将某些操作的多个SQL作为原子性操作,一旦有某一个出现错误,即可回滚到原来的状态,从而保证数据库数据完整性。

技术分享 View Code

四 存储过程

一 介绍

存储过程包含了一系列可执行的sql语句,存储过程存放于MySQL中,通过调用它的名字可以执行其内部的一堆sql

使用存储过程的优点:

#1. 用于替代程序写的SQL语句,实现程序与sql解耦

#2. 基于网络传输,传别名的数据量小,而直接传sql数据量大

使用存储过程的缺点:

#1. 程序员扩展功能不方便

补充:程序与数据库结合使用的三种方式

技术分享 技术分享
#方式一:
    MySQL:存储过程
    程序:调用存储过程

#方式二:
    MySQL:
    程序:纯SQL语句

#方式三:
    MySQL:
    程序:类和对象,即ORM(本质还是纯SQL语句)
技术分享 技术分享

二 创建简单存储过程(无参)

技术分享
delimiter //
create procedure p1()
BEGIN
    select * from blog;
    INSERT into blog(name,sub_time) values("xxx",now());
END //
delimiter ;

#在mysql中调用
call p1() 

#在python中基于pymysql调用
cursor.callproc(p1) 
print(cursor.fetchall())
技术分享

三 创建存储过程(有参)

对于存储过程,可以接收参数,其参数有三类:

#in          仅用于传入参数用
#out        仅用于返回值用
#inout     既可以传入又可以当作返回值
技术分享 in:传入参数 技术分享 out:返回值 技术分享 inout:既可以传入又可以返回 技术分享 事务

四 执行存储过程

技术分享
-- 无参数
call proc_name()

-- 有参数,全in
call proc_name(1,2)

-- 有参数,有in,out,inout
set @t1=0;
set @t2=3;
call proc_name(1,2,@t1,@t2)

执行存储过程

在MySQL中执行存储过程
技术分享 技术分享 在python中基于pymysql执行存储过程

五 删除存储过程

drop procedure proc_name;

五 函数

MySQL中提供了许多内置函数,例如:

技术分享 部分内置函数 技术分享 需要掌握函数:date_format

更多函数:中文猛击这里 OR 官方猛击这里

一 自定义函数

#!!!注意!!!
#函数中不要写sql语句(否则会报错),函数仅仅只是一个功能,是一个在sql中被应用的功能
#若要想在begin...end...中写sql,请用存储过程
技术分享
delimiter //
create function f1(
    i1 int,
    i2 int)
returns int
BEGIN
    declare num int;
    set num = i1 + i2;
    return(num);
END //
delimiter ;
技术分享 技术分享 View Code

二 删除函数

drop function func_name;

三 执行函数

技术分享
# 获取返回值
select UPPER(egon) into @res;
SELECT @res;


# 在查询中使用
select f1(11,nid) ,name from tb2;
技术分享

六 流程控制

一 条件语句

技术分享 if条件语句

二 循环语句

技术分享 while循环 技术分享 repeat循环 技术分享 loop

mysql-补充

标签:log   中文   实现   原来   复制   部分   mysq   结果   错误   

人气教程排行