存储过程_查-改-删

一、存储过程的查询

1、通过数据字典表查询

  存储过程的定义信息保存在数据字典表information_schema.routines中:

mysql> select ROUTINE_NAME, ROUTINE_TYPE
    -> from information_schema.ROUTINES
    -> where ROUTINE_SCHEMA=‘db1‘;
+----------------+--------------+
| routine_name   | routine_type |
+----------------+--------------+
| difference     | PROCEDURE    |
| inout_param    | PROCEDURE    |
| in_param       | PROCEDURE    |
| out_param      | PROCEDURE    |
| VerboseCompare | FUNCTION     |
| Ver_Compare    | FUNCTION     |
+----------------+--------------+

mysql> SELECT name FROM mysql.proc WHERE db=‘db1‘;
+----------------+
| name           |
+----------------+
| difference     |
| inout_param    |
| ……             |
+----------------+

2、使用show语句查询

SHOW PROCEDURE STATUS WHERE db=‘数据库名‘;

3、查看存储过程详细的定义信息

SHOW CREATE PROCEDURE 数据库.存储过程名;

二、存储过程的修改

注意:

  ALTER {PROCEDURE | FUNCTION}……语句只能改变存储过程的特征,不能修改过程的参数以及过程体。如果想做这样的修改,必须先使用DROP PROCEDURE 删除过程,然后使用and CREATE PROCEDURE重建过程。

ALTER {PROCEDURE | FUNCTION} sp_name [characteristic ...]

characteristic:
  COMMENT ‘string‘
  |LANGUAGE SQL
  |{ CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
  |SQL SECURITY { DEFINER | INVOKER }

存储过程的特征characteristic:指定存储的特性

1、COMMENT ‘string‘是注释信息;

  LANGUAGE SQL是指明过程体是用sql语言编写的,而不是java或php;

2、SQL SECURITY { DEFINER | INVOKER }指明谁有权限来执行:

  DEFINER表示只有定义者自己才能够执行;

  INVOKER表示调用者可以执行。

在存储过程定义时:

CREATE
    [DEFINER = { user | CURRENT_USER }]
    PROCEDURE
    ……

[DEFINER = { user | CURRENT_USER }]:指定存储过程的定义者,指定CURRENT_USER和不指定定义者选项的效果是一样的

3、{ CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }:

MySQL现在不使用:

  CONTAINS SQL表示子程序包含SQL语句,但不包含读或写数据的语句;

  NO SQL表示子程序中不包含SQL语句;

  READS SQL DATA表示子程序中包含读数据的语句;

  MODIFIES SQL DATA表示子程序中包含写数据的语句。

三、存储过程的删除

DROP PROCEDURE [IF EXISTS] db_name.sp_name;

如果是在当前数据库中的存储过程:DROP PROCEDURE [过程1[,过程2…]]

从MySQL的表格中删除一个或多个存储过程。

四、存储过程的安全

不是每个用户都可以调用一个存储过程;一个用户想调用其它用户创建的过程,必须被授予过程的execute权限:

GRANT  EXECUTE
        ON PROCEDURE  <过程名>
    TO  <user>
时间: 2024-10-08 11:13:27

存储过程_查-改-删的相关文章

EF里单个实体的增查改删以及主从表关联数据的各种增删 改查

本文目录 EF对单个实体的增查改删 增加单个实体 查询单个实体 修改单个实体 删除单个实体 EF里主从表关联数据的各种增删改查 增加(增加从表数据.增加主从表数据) 查询(根据主表找从表数据.根据从表找主表数据) 修改(修改从表的外键) 删除(删除主从表关系.删除主表数据.删除主从表数据.修改从表数据外键) 补充内容 SaveChanges方法提交多次操作 DbSet.Add方法返回当前实体 源码和系列文章导航 注:本章节多次演示了各种删除,要重复查看效果,需要解开注释初始化数据方法. 一.EF

ThinkPHP 增 查 改 删

1 返回主页 2 SYsunyi 3 4 博客园 5 首页 6 新随笔 7 联系 8 订阅 9 管理 10 11 随笔 - 0 文章 - 0 评论 - 0 12 ThinkPHP--栏目增删改查ADSF 13 复制代码 14 15 <?php 16 /** 17 * 栏目发布 18 */ 19 //V层,action/name值 20 action = " :U( ' Admin/Cat/Cateadd ' )"; 21 22 /** 23 * 添加栏目数据 24 * C层,写相

Django 学习笔记(七)数据库基本操作(增查改删)

一.前期准备工作,创建数据库以及数据表,详情点击<Django 学习笔记(六)MySQL配置> 1.创建一个项目 2.创建一个应用 3.更改settings.py 4.更改models.py 5.同步数据 二.安装IPython方便debug sudo apt-get install ipython3 安装成功后用python manage.py shell 会自动进入Ipython交互解释器中,没有安装Ipython只有前两行代码,只进入到Python shell 中. Python 3.5

ThinkTP 增 查 改 删

<?php //ThinkTP框架增加以Admin/contooler/catcontroller.class.php**和Admin/view/cat/cateadd.html为例. // 在cateadd.hmtl的from action 中写传输语句 {:U('Admin/cat/cateadd')} //Admin/conroller/catcaotroller.class.php控制器 namespace Admin/controller; use Think/cintroller;

“增查改删”的语句

select * from UserInfor --查找所有字段 select username,UserId from UserInfor -- 查找username,UserId两个字段 select top 2* from UserInfor where (Major='计算机' or Major='土木工程') and Sex=0 order by Age desc --降序 select top 2* from UserInfor where major in('计算机','土木工程'

数据库的增查改删(二)

desc aa;select * from bb;/*给aa表格增加sgender列,在指定位置*/alter table bb add ss int first;alter table bb add sge char(3) after sage;/*给aa表格删除sgender列*/alter table aa drop sgender;alter table bb drop column sge;/*修改列的名字*/alter table aa change sage age;/*修改列的数

flask+sqlalchemy查改删

效果: main.py 1# coding: utf-8 from sqlalchemy import CheckConstraint, Column, Integer, Text, or_ from sqlalchemy.schema import FetchedValue from flask_sqlalchemy import SQLAlchemy from flask import Flask,url_for,redirect,render_template,request,flash,

EF增删查改加执行存储过程和sql语句,多种方法汇总

1 ActionUrl c = new ActionUrl() { ActionName="test", RequestUrl="/123/123", SubTime=DateTime.Now }; 2 //增 3 using (EntityContext db = new EntityContext()) 4 { 5 6 /*方法1*/ 7 db.ActionUrls.Add(c); 8 db.SaveChanges(); 9 /*方法2*/ 10 db.Set&

SQL Server 表的管理_关于表的操作增删查改的操作的详解(案例代码)

SQL Server 表的管理_关于表的操作增删查改的操作的详解(案例代码) 概述: 表由行和列组成,每个表都必须有个表名. SQL CREATE TABLE 语法 CREATE TABLE table_name ( column_name1 data_type(size), column_name2 data_type(size), column_name3 data_type(size), .... ); 1.查看表 exec sp_help table1; 2.创建表 create tab