CREATE TABLE STUDENT( --创建学生表  ID NUMBER(10) PRIMARY KEY,   --主键ID  NAME VARCHAR2(20),  CLASSNAME VARCHAR2(20) --班级ID);CREATE SYNONYM STU FOR STUDENT; --给学生表STUDENT创建别名(同义词)INSERT INTO STUDENT VALUES(1,'Tom',1);INSERT INTO STUDENT VALUES(2,'Jack',1);…
--存储过程,循环create or replace procedure delTables(ename t_emp.ename%TYPE)AScon number;i NUMBER := 1;tablename USER_TABLES.TABLE_NAME%TYPE;BEGIN select count(TABLE_NAME) into con from USER_TABLES where last_analyzed > to_date('2014/1/17 00:00:00','yyyy/m…
当存储过程.函数.触发器和视图创建后,不单单创建者要执行,其它用户也可能需要执行,换句话说,执行者有可能不是创建者本身,那么在执行存储过程时,MySQL是如何做权限检查的? 在默认情况下,MySQL将检查创建者的权限.假设用户A创建了存储过程p()访问表T,并把execute的权限赋给了B,即使用户B没有访问表T的权限,也能够通过执行存储过程p()访问表T. 下面看一个例子: 首先,我们创建一个表test.t和两个用户a,b,并把权限赋予用户a root@(none) 05:39:45>crea…
SELECT DISTINCT       TOP 100 PERCENT isnull(p.name,'') AS 父对象, o.xtype,       CASE o.xtype WHEN 'C' THEN 'CHECK 约束' WHEN 'D' THEN '默认值或DEFAULT约束'       WHEN 'F' THEN 'FOREIGNKEY约束' WHEN 'L' THEN '日志' WHEN 'FN' THEN '标量函数'       WHEN 'IF' THEN '内嵌表函数…
参考文章:https://www.cnblogs.com/linjiqin/category/349944.html 数据库分类 1.小型数据库:access.foxbase 2.中型数据库:inormix.sqlserver.mysql 3.大型数据库:sybase.db2.oracle 项目合理的使用数据库,参考原则: 1.项目规模 2.负载量.即用户量 3.成本 4.安全 小型数库: 1.负载小,大概100人左右 2.案例:留言板.信息管理系统 3.成本低.千元左右.安全性低 中型数据库:…
-- 感觉有用点个赞呗^v^ select * from emp; drop view persin_vw;--删除视图 create table emp as select * from scott.emp; --复制scott用户下的emp表 --视图:视图就是封装了一条复杂的查询语句 create view emp_vw as ; --创建一个视图,视图显示的是编号为20的全部员工 select * from emp_vw e; --创建好的视图,可以进行查询 create or repl…
作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7476717.html 1.游标(光标)Cursor 在写java程序中有集合的概念,那么在pl/sql中也会用到多条记录,这时候我们就要用到游标,游标可以存储查询返回的多条数据. 语法: CURSOR  游标名  [ (参数名  数据类型,参数名 数据类型,...)]  IS  SELECT   语句; 例如:cursor c1 is select ename from emp; 游标…
存储过程和存储函数 l存储在数据库中供全部用户程序调用的子程序叫存储过程.存储函数. 注意:存储过程与存储函数声明变量时,用的是as   而不是declare 存储过程与存储函数差别 存储过程不带有返回值,存储函数有返回值 存储过程 创建存储过程 l用CREATE PROCEDURE命令建立存储过程 l语法: create [or replace] PROCEDURE过程名(參数列表) AS PLSQL子程序体: 创建存储过程简单演示样例 /* 第一个存储过程:Hello World 调用存储过…
MySql高级-视图.函数.存储过程.触发器 目录 一.视图    1 1.视图的定义    1 2.视图的作用    1 (1)可以简化查询.    1 (2)可以进行权限控制,    3 3.查询视图    4 4.修改视图    4 5.删除视图    4 6.查看视图结构    4 7.查看所有视图    4 8.视图与表的关系    5 9.视图算法    6 二.SQL 编程    7 1.变量声明    7 (1)会话变量    7 (2)普通变量    7 (3)变量赋值形式  …
昨日内容回顾 pymysql:属于python的一个模块 pip3 install pymysql conn = pymysql.connect(...,charset = 'uft8') 创建游标 conn.cursor(dic) (1)修改数据,删除数据,增加数据一定要commit cursor.execut(sql,{}|()|[]) 一定要注意sql注入 (2)fetchone() fetchmany(4) fetchall() cursor.close() conn.close() 一…
经常从 生产环境 到测试环境, 需要重新弄一整套的数据库环境, 除了表结构以及表结构数据,可以用动软代码生成器 生成之外, 像 存储过程,触发器,等,好像没有批量操作的,意义哥哥农比较麻烦, 所以最近也是自己整了一个程序, 通过这种方式,也比较容易发布数据库环境 程序如下: 源代码下载 效果图:            以上就是了!…
序列1.创建序列create sequence seq_alog start with 1 increment by 1 maxvalue 999999999999999999999999999 minvalue 1 cache 20;说明:start with 1 --表示序列从1开始increment by 1 --表示序列每次自增1maxvalue --序列的最大值minvalue --序列的最小值cache 20 --缓存区大小 2.nextval和currval属性 select se…
1.触发器 2.作业 2.1.作业调度功能和应用 2.2.通过 DBMS_JOB 来调度作业 3.序列 3.1.创建序列 3.2.使用序列 & 删除序列 4.连接 4.1.创建连接 4.2.使用连接 & 删除连接 5.总结 1.触发器 可以把触发器看做是一种特殊的存储过程.触发器也是一种定义存放在数据字典中的模式对象,和存储过程一样,都包含声明和执行的 PL/SQL 块.触发器和存储过程最大的不同在于调用方式,存储过程是由用户或应用程序来调用和执行的,而触发器由 Oracle 系统来调用的…
名词解释 子程序:PL/SQL的过程和函数统称为子程序. 匿名块:以DECLARE或BEGIN开始,每次提交都被编译.匿名块因为没有名称,所以不能在数据库中存储并且不能直接从其他PL/SQL块中调用. 命名块:除匿名块之外的其他块.包括过程.函数.包和触发器.可以在数据库中存储并在适当的使用运行. 子程序的优点: 1)具有扩展性 可以自定义PL/SQL语言以满足实际应用 2)高可用和可维护性 子程序的调用不受调用者数目的影响,只要有效就可被调用. 如果定义被更改以后,只有子程序受到影响,简化了维…
  截图来自MySQL5.6的pdf版文档. 说明: 1)基于语句的复制时,trigger会在slave上执行,所以slave上也需要有trigger的定义,不然会导致主从数据不一致的: 2)基于行的复制时,trigger不会在slave上执行.因为复制的数据,不是sql语句.       截图来自MySQL5.6的pdf版文档. 说明: 基于行的复制时,存储过程,函数,触发器都只在master上执行,然后将执行之后的数据传给 slave .不会将它们的sql语句发给slave. slave上看…
http://blog.itpub.net/559237/viewspace-438942/ 今天花了半天时间来研究mysql的存储过程函数和触发器的创建,觉得和oracle的大同小异,只是语法上更艰涩点,可能是先入为主吧,经过多次失败,终于创建成功,需要注意创建前要先执行“delimiter //”,创建后以“//”结束,还有就是怎么没有像plsql dev这样的工具来调试程序呢.和oracle的在语法上主要不同点有如下几方面: 1.declare放到了begin体里面 2.给变量复制是set…
<.Net程序员学用Oracle系列:导航目录> 本文大纲 1.触发器 1.1.创建触发器 1.2.禁用触发器 & 启用触发器 & 删除触发器 2.任务 2.1.DBMS_JOB 包介绍 3.序列 3.1.创建序列 3.2.使用序列 & 删除序列 4.连接 4.1.创建 dblink 4.2.使用 dblink & 删除 dblink 5.总结 触发器 创建触发器 CREATE OR REPLACE TRIGGER trg_sync_staff90 -- 功能说…
ALTER proc [dbo].[SP_SQL](@ObjectName sysname)  as  set nocount on ;  declare @Print nvarchar(max)----@Print用nvarchar  if exists(select 1 from syscomments  where ID=object_id(@ObjectName) and encrypted=1)      begin           Print N'对象已加密!'         …
1.PL/SQL    PL/SQL是Oracle对 ql语言的过程化扩展,指在 SQL 命令语言中增加了过程处理语句,使SQL语言具有过程处理能力.把 SQL 语言的数据操纵能  力与过程语言的数据处理能力结合起来,使得 PLSQL 面向过程但比过程语言简单.高效.灵活和实用.   基本语法结构:        [declare]   -- 声明变量        begin       -- 代码逻辑        [exception] -- 异常处理        end;    注意:…
摘自: http://www.111cn.net/database/mssqlserver/39107.htm sql判断存储过程是否存在 判断数据库教程是否存在 Sql代码 if exists (select * from sys.databases where name = ’数据库名’) drop database [数据库名] if exists (select * from sys.databases where name = ’数据库名’) drop database [数据库名]…
一.Oracle存储函数:存储的PL/SQL语法块,完成特定的功能.1.语法: 函数关键字: function (1)创建函数 CREATE [OR REPLACE] FUNCTION <function name> [(param1,param2)] RETURN <datatype> IS|AS [local declarations] declare ..... BEGIN Executable Statements; RETURN result; EXCEPTION Exc…
@ 目录 视图是什么 视图的优点 1) 定制用户数据,聚焦特定的数据 2) 简化数据操作 3) 提高数据的安全性 4) 共享所需数据 5) 更改数据格式 6) 重用 SQL 语句 MySQL创建视图 基本语法 查询视图 MySQL查看视图 查看视图的字段信息 查看视图的详细信息 MySQL修改视图 基本语法 修改视图内容 MySQL删除视图 基本语法 索引是什么 为什么要使用索引 顺序访问 索引访问 索引的优缺点 优点 缺点 MySQL索引类型详解 存储方式区分 B-树索引 哈希索引 逻辑区分…
MySQL存储过程和函数 存储过程和函数的概念 存储过程和函数是 事先经过编译并存储在数据库中的一段 SQL 语句的集合 存储过程和函数的好处 存储过程和函数可以重复使用,减轻开发人员的工作量.类似于java中方法可以多次调用 减少网络流量,存储过程和函数位于服务器上,调用的时候只需要传递名称和参数即可 减少数据在数据库和应用服务器之间的传输,可以提高数据处理的效率 将一些业务逻辑在数据库层面来实现,可以减少代码层面的业务处理 存储过程和函数的区别 函数必须有返回值 存储过程没有返回值 创建存储…
下面,主要是验证在MySQL主从复制环境下,存储过程,函数,触发器,事件的复制情况,这些确实会让人混淆. 首先,创建一张测试表 mysql),age int); Query OK, rows affected (0.10 sec) 存储过程 创建存储过程 delimiter // ),IN age int) BEGIN insert into test.t1 values(name,age); END// delimiter ; 通过查看二进制日志,可以看到该DDL语句已被记录 # at # :…
oracle中函数和存储过程的区别和联系[转载竹沥半夏] 在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,但也有自己的特点.刚学完函数和存储过程,下面来和大家分享一下自己总结的关于函数和存储过程的区别. 一.存储过程 1.定义 存储过程是存储在数据库中提供所有用户程序调用的子程序,定义存储过程的关键字为procedure. 2.创建存储过程 create [or replace] procedure 存储过程名 [(参数1 类型,参数2 out 类型……)] as…
———————————————-库操作———————————————-1.①导出一个库结构 mysqldump -d dbname -u root -p > xxx.sql ②导出多个库结构 mysqldump -d -B dbname1 dbname2 -u root -p > xxx.sql 2.①导出一个库数据 mysqldump -t dbname -u root -p > xxx.sql ②导出多个库数据 mysqldump -t -B dbname1 dbname2 -u r…
存储过程和函数 mysql> HELP CREATE PROCEDURE; Name: 'CREATE PROCEDURE' Description: Syntax: CREATE [DEFINER = { user | CURRENT_USER }] PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic ...] routine_body CREATE [DEFINER = { user | CURRENT_USER }] FUN…
在其他大部分DBMS里都有序列的概念,即Sequence或Generator. 而mysql里没有,但有时真的很有用.下面分别用存储过程和函数来模拟序列,并用程序模拟并发场景来测试原子性和完整性,是否能达到预期. 序列表定义如下: CREATE TABLE `seq` ( `id` ) NOT NULL, `busi` ) NULL DEFAULT NULL, `val` ) NULL DEFAULT NULL, `remark` ) NULL DEFAULT NULL, PRIMARY KEY…
用sql语句导出oracle中的存储过程和函数: SET echo off ; SET heading off ; SET feedback off ; SPOOL 'C:/PRC.SQL' replace SELECT CASE THEN 'CREATE OR REPLACE ' || TEXT WHEN LINE = MAX_LINE THEN ) || '/' ELSE TEXT END FROM USER_SOURCE A LEFT JOIN (SELECT A.NAME,A.TYPE,…
在SQL Server中,一旦一个Assembly被其他的数据库编程对象(存储过程,函数和触发器)引用了,这个Assembly就不能被删除.但是问题是,在SQL Server要更新一个Assembly的方法是先删除这个Assembly再用心的DLL地址或者编译后的二进制代码重新创建.这样就造成了,每次我们都要根据它的错误提示把那些引用到该Assembly的数据库编程对象的创建脚本导出后再删除这些编程对象,然后才可能删除Assembly.导出脚本的方法需要手动去利用SSMS这个IDE里面的GENE…