加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

MySQL呼吁,一篇文章替你所有搞定

发布时间:2019-03-01 15:32:57 所属栏目:编程 来源:Java高级技术
导读:MySQL的根基操纵可以包罗两个方面:MySQL常用语句如高频率行使的增编削查(CRUD)语句和MySQL高级成果,如存储进程,触发器,事宜处理赏罚等。而这两个方面又可以细分如下: MySQL常用语句 表(可能数据库)的CRUD 表数据的CRUD,个中表数据查询行使最多,也更

存储进程的弱点?(1)存储进程编写比根基的SQL语句越发伟大,必要更高的手艺;(2)也许没有建设存储进程的权限,数据库打点员也许会限定建设存储进程的权限,应承用户行使存储进程,而不应承用户自由建设存储进程;

建设存储进程

建设存储进程。如必要统计用户订单总金额,假如该用户必要交税的话,订单总金额则必要再加上税费

有这样一些细节: 1. 行使CREATE PROCEDURE语句举办建设,()圆括号中为存储进程的参数,个中参数范例有:1.IN范例,暗示转达给存储进程;2.OUT范例,暗示存储进程返回的功效,在挪用存储进程时必要传入@开始的变量;3.INOUT范例,暗示在存储进程中可以传入和传出; 2.DECLARE用来声明一个变量,如这里的total,taxrate。留意MySQL中界说变量时都是变量名在前,数据范例在后。 3. 存储进程详细逻辑写在BEGIN END之间; 4. 将值赋给变量行使INTO要害字; 5. 因为存储进程中每个SQL语句顶用;作为脱离符,会和单个SQL造成斗嘴,因此可行使DELIMITER从头界说分类符,如该例子中界说//为脱离符,天然存储进程末了就用END //末了,而不再是END。同时,脱离符//成对呈现后,规复到默认的";"作为脱离符;

执行存储进程

行使CALL子句执行存储进程,CALL子句接管存储进程的名称以及必要转达的参数。

假如存储进程中界说了OUT范例的输入参数,那么在执行存储进程时必要传入变量,如这里@total,而且变量都是用@开始的。假如存储进程中没有参数的话,就用空圆括号暗示即可,CALL ordertotal();

删除存储进程

删除存储进程,可以行使DROP PROCEDURE子句。如DROP PROCEDURE ordertotal;

查询存储进程

表现建设一个存储进程的语句,可以行使SHOW CREATE PROCEDURE。如SHOW CREATE PROCEDURE ordertotal;

查询全部存储进程的状态,假如在界说存储进程中行使COMMENT添加注释,可以查察。同时可以LIKE举办过滤功效。如SHOW PROCEDURE STATUS LIKE '%order%';

6. 事宜处理赏罚

什么是事宜?

事宜处理赏罚是用来维护数据库的完备性,它担保成批的MySQL操纵要么完全执行,要么完全不执行。事宜处理赏罚是一种机制,用来打点必需成批执行的MySQL操纵,它们要么时作为整体执行可能完全不执行。

要害观念:

事宜:是指一组SQL语句;

回退:是指取消指定的SQL语句的进程;

提交:指将未存储的SQL语句的功效写入数据库表中;

保存点:指事宜处理赏罚中配置的姑且占位符,可以对它宣布回退;

怎样建设执行事宜?

MySQL呼吁,一篇文章替你所有搞定

执行功效为:插入数据('1',5,18)有用,由于,只会从保存点SAFEPOINT之后开始回退,也就是说保存点SAFEPOINT之前的SQL语句执行的功效如故有用。

有这样一些细节:

STAET TRANSACTION用来暗示下面的SQL语句集为一段事宜;

SAFEPOINT用于指定保存点insertinto;

ROLLBACK TO暗示从指定保存点开始回退,也就是说保存点之前的SQL语句执行功效依然有用。假如仅仅行使ROLLBACK举办回退的话就暗示从STAET TRANSACTION之后全部的SQL语句执行结果城市取消;

MySQL提交(写或生涯)操纵是自动举办的,这称之为隐含提交。可是在事宜处理赏罚块中,提交不会隐含举办,要行使COMMIT子句举办提交。如:

MySQL呼吁,一篇文章替你所有搞定

回收COMMIT提交事宜,假如两条SQL语句都执行乐成,才会将数据都写入表中。

7. 触发器

什么是触发器?

当某条SQL语句产生时,自动执行某些其他的SQL语句的时辰就必要行使到触发器。触发器只能相应:DELETE,INSERT,UPDATE这三个特定操纵。

建设触发器?

建设触发器时必要给出最重要的四条信息:1.全局独一的触发器名;2.触发器关联的表;3.触发器在何时执行(操纵执行之前可能之后)4.触发器应该相应的勾当(DELETE, INSERT可能UPDATE);

因为触发器只能相应特定的三种范例的操纵,因此可建设的触发器也就三种范例:INSERT触发器,DELETE触发器以及UPDATE触发器。

INSERT触发器

在执行INSERT触发器时,也这样几点必要留意:1.在INSERT触发器代码内,可以引用一个名为NEW的假造表,可以用NEW来会见刚插入的行数据;2.在BEFORE INSERT触发器中,NEW中的值可以被更新;3.对付AUTO_INCREMENT列,NEW在INSERT执行之前包括0,在INSERT执行之后包括新的自定天生值。

建设一个INSERT触发器,每次插入一行数据,每次会返回当前插入的行数据的id。

MySQL呼吁,一篇文章替你所有搞定

有这样一些细节:

行使CREATE TRIGGER来建设触发器;

AFTER INSERT表白在插入行数据之后,触发器才会执行特性操纵;

FOR EACH ROW 暗示对插入的每一行数据,触发器都起浸染;

针对INSERT触发器,可以行使假造表NEW,来行使刚插入的行数据。好比例子中,SELECT NEW.cust_id INTO @newinsertid暗示将新插入的行数据的id赋值给变量@newinsertid;

DELETE触发器

DELETE触发器在DELETE语句执行之前可能之后,必要知道以下两点:

在DELETE触发器代码内,可以引用一个名为OLD的假造表,来会见被删除的行;

OLD表中的数据只能读,不能被更新,而在INSERT触发器中,就可以通过NEW来更新被插入的行数据;

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读