`
endual
  • 浏览: 3578872 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

mysql必知必会 over 存储过程和触发器

 
阅读更多

==========

咒骂一句mysql必知必会,存储过程的代码是无法实现的,坑爹么?

==========

推荐大家看上面那本书,通熟易懂,看的时候,请先看最后的那一张,里面有几个表先建立起来,那么

你学的时候就可以用到了,该死我的现在才知道,所以在敲书上的代码的时候,都是自己设计的表。

 

 

---------------------

于是今天看好了,除了一个爽子,还是爽,因为这是我2年来看的唯一一本mysql的书。对sql语句有一个全面的了解的。

可能平时在写代码过程中更加好吧。

 

--------------------------

存储过程

使用的大多数SQL语句都是针对一个或者多个表的单条语句,并非所有操作都这么简单,经常会有一个完整的操作需要多条语句才能完成。

1.为了处理订单,需要核对以保证库存中有相应的物品

2.如果库存有物品,这些物品需要预定以便不能将她们再卖给别的人,并且要减少可用的物品数量以反映正确的库存量

3.库存中没有的物品需要订购,这需要与供应商进行某种交互

4.关于哪些物品入库和哪些物品退订,需要通知相应的客户

 

 

存储过程的优势的简单 爱情 可靠

确定是复杂 而且要权限

 

mysql执行存储过程叫做CALL,称为调用,所用用的CALL的关键词。

 

执行存储过程

CALL productpricing (

@pricelow,

@priceHigh,

@priceave

 

)

 

存储过程的调用可以存入参数,也可以不传入参数的

 

创建存储过程

 

CREATE PROCEDURE proce()

BEGIN

  SELECT AVG(id) AS idave FROM test1

END

 

SELECT VERSION();

 

 

 CREATE PROCEDURE pxx (

 

 OUT a VARCHAR(50),

 OUT b VARCHAR(50),

 OUT c VARCHAR(50)

 

 )

BEGIN

SELECT sname INTO a FROM tb_x ;

SELECT sname INTO b FROM tb_y ;

SELECT sname INTO c FROM tb_z ;

END ;

 

CALL pxx(

 @a,

 @b,

 @c

)

 

SELECT @a 就可以返回a的结果了

 

CREATE PROCEDURE ordertoal (

 IN inid INT ,

 OUT outvalue VARCHAR(60)

)--这个是注释

BEGIN

SELECT sname FROM test1

WHERE id = inid

INTO outvalue;

 

END;

 

//

触发器的学习

 

mysql语句在需要时被执行,存储过程也是如此,但是,如果你想要某条语句在事件发生时自动执行,怎么办?例如,

 

每当增加一个顾客到某个数据表时,都检查其电话号码格式是否正确,州的缩写是否为大写

每当订购一个产品时,都从库存数量中减去订购的数量

无论何时删除一行,都在某个存档表中保留一个副本

 

所有的这些例子的共同之处就是他们都需要再某个表发生更改是自动处理,这确切的说就是触发器,触发器是mysql响应一下任意语句而

自动执行的一条SQL语句

delect 

INSERT

UPDATE

 

其他mysql语句是不支持触发器的

 

 

创建触发器:

 

在创建触发器时,需要给出4条信息

1.唯一的触发器的名字

2.触发器关联的表

3.触发器应该响应的活动(DELETE INSERT UPDATE)

4.触发器何时执行 (处理之前还是之后)

 

 

CREATE TRIGGER newpre 

AFTER  INSERT ON producets 

FOR

  EACH ROW SELECT 'producet added'

 

 

CREATE TABLE tb_tr (

 

 id INT NOT NULL,

 sname VARCHAR(60)

)

 

CREATE TRIGGER newtri 

AFTER INSERT ON tb_tr

FOR EACH ROW SELECT new.

 

SHOW CHARACTER SET;

 

SHOW COLLATION;

 

SELECT USER FROM USER;

 

USE mysql;

 

CREATE USER endual IDENTIFIED BY '123456';

 

SELECT * FROM USER;

 

SHOW GRANT FOR endual;

 

我们的国家控制着绝大部分的资源,他们圈养了暴力机器,然后让我们在水深火热中生活,

这样的社会,如果我们不努力,那么等待我们的将是贫困和艰难。所以,除了努力,我们这一代人没的选择。

分享到:
评论

相关推荐

    mysql触发器+存储过程

    文件“MySQL存储过程.pdf”和“OReilly.MySQL.Stored.Procedure.Programming.rar”可能会提供关于如何创建、调用和管理MySQL存储过程的详细指南,而“MySQL触发器.rar”则可能包含触发器的创建、使用和优化方面的...

    MYSQL必会必知

    标题《MYSQL必会必知》指出了本文的重点在于介绍MySQL数据库的基础知识,强调了学习MySQL的必要性。描述部分重复强调了“mysql基础”,可能是由于文档错误,不过这仍然突出了本文的主旨:掌握MySQL的基础操作和概念...

    MySQL存储过程和触发器

    MySQL中的存储过程和触发器是数据库管理中两个重要的概念,它们极大地增强了数据库的功能和灵活性。 存储过程是一种预编译的SQL语句集合,它可以视为数据库中的一个可执行对象。存储过程有以下几个显著优点: 1. *...

    Mysql存储过程游标触发器

    Mysql存储过程游标触发器

    MYSQL触发器与存储过程.ppt

    MySQL中的存储过程和触发器是数据库管理中两个重要的高级特性,它们极大地增强了数据库的灵活性和安全性,同时也优化了性能。 **存储过程**是预编译的SQL语句集合,存储在数据库服务器上,可以在需要时被调用执行,...

    必知必会mysql学习.zip

    "必知必会MySQL学习"的压缩包文件显然旨在提供一个全面的学习资源,帮助初学者或进阶者深入理解MySQL的核心概念和技术。在这个教程中,我们可以期待涵盖以下几个关键知识点: 1. **基础概念**:首先,我们会学习...

    MySQL触发器、存储过程、自定义函数、视图示例

    #### 二、MySQL存储过程 存储过程是一组预编译的SQL语句,它们可以作为一个单元调用并执行。使用存储过程可以提高代码重用性和执行效率,并且可以封装复杂的逻辑处理。 **示例:** 本例中创建了一个存储过程`sp_...

    MySQL数据库函数,触发器,存储过程

    通过深入学习和掌握MySQL的函数、触发器和存储过程,开发者能够更加高效地管理和操作数据库,解决复杂的数据处理问题,提升应用程序的性能。在实际项目中,熟练运用这些特性是数据库设计和优化的关键。通过"mysql...

    数据库实验报告-存储过程、触发器

    通过这些实验步骤,学生能够深入理解存储过程和触发器的工作原理及其在实际数据库应用中的作用。同时,这些操作也展示了如何在数据库管理系统中编写和管理这些数据库对象,有助于提升数据库设计和管理能力。

    MYSQL必知必会笔记的数据库文件仅供参考

    MYSQL必知必会笔记的数据库文件仅供参考MYSQL必知必会笔记的数据库文件仅供参考MYSQL必知必会笔记的数据库文件仅供参考MYSQL必知必会笔记的数据库文件仅供参考MYSQL必知必会笔记的数据库文件仅供参考MYSQL必知必会...

    mysql存储过程、触发器.pdf

    MySQL 存储过程和触发器详解 MySQL 存储过程是指一组为了完成特定功能的 SQL 语句集合。存储过程的优点包括: 1. 封装性:存储过程可以将多个 SQL 语句封装在一起,方便调用和维护。 2. 可增强 SQL 语句的功能和...

    mysql触发器之创建多个触发器操作实例分析

    mysql 5.7.2+版本解决了这样限制,并允许我们为表中的相同事件和动作时间创建多个触发器。当事件发生时,触发器将依次激活。我们来参考创建第一个触发器中的语法。如果表中有相同事件有多个触发器,mysql 将按照...

    MySQL 必知必会 21-30.pdf

    本摘要涵盖了MySQL必知必会的第21至30章,主要知识点如下: 1. **创建和操纵表**: - `CREATE TABLE` 用于创建新表,例如示例中的`orderitems`表,包括自增主键(AUTO_INCREMENT)和非空约束(NOT NULL)。 - `...

    MySQL SQL高级特性-存储过程-触发器-事务

    MySQL是目前最流行的开源关系型数据库管理系统之一,它提供了...在本文中,我们学习了MySQL存储过程的定义和优点,触发器的概念,以及事务的基本原理。通过这些高级特性,我们可以开发出更稳定、高效的数据库应用程序。

    mysql触发器之触发器的增删改查操作示例

    MySQL触发器是数据库管理系统提供的一种机制,用于在特定的数据操作(如INSERT、UPDATE、DELETE)发生之前或之后...学习更多关于MySQL的内容,包括查询技巧、事务处理以及存储过程,将有助于进一步提升数据库管理能力。

    mysql必知必会_MYSQL_MySQL必知必会_

    《MySQL必知必会》是一本经典的MySQL入门教程,旨在帮助新手快速掌握这个强大的数据库系统的基础知识。以下是一些关键知识点的详细说明: 1. **MySQL基础概念**: - 数据库:存储数据的组织方式,MySQL中的数据库...

    mysql必知必会数据库

    总之,“mysql必知必会数据库”涵盖了MySQL的诸多基础和进阶知识,通过实际操作,不仅可以巩固理论知识,还能提升解决问题的能力。在实践中学习和研究MySQL,对于任何想要涉足数据库管理或者需要处理数据的人来说,...

    MySQL必知必会笔记.md

    根据MySQL必知必会里整理的笔记,里面有MySQL必知必会前24章的内容(含代码及其解释)可做学习和复习使用。

    读书笔记系列1——MySQL必知必会.pdf

    《MySQL必知必会》这本书提供了全面的MySQL基础知识,涵盖了从数据库基础到高级功能的诸多方面。以下是根据书中的章节内容概述的一些关键知识点: 1. **数据库基础**: - **数据库**:是一个组织化的数据存储单元...

Global site tag (gtag.js) - Google Analytics