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

DB几个重要的对象

    博客分类:
  • DB
阅读更多

MySQL
因为过程和函数可能有多个分号,所以下改一下定界符号

mysql> delimiter !


接着创建过程

mysql> create procedure p2(name varchar(32))--定义了一个变量

    -> begin

    -> insert into test(name) values(name);

    -> end

    -> !

Query OK, 0 rows affected (1.53 sec)



mysql> call p2('麦兜');

    -> !

Query OK, 1 row affected (0.05 sec)[/b]



创建函数

--给定参数查询记录数

mysql> create function f1(d_name varchar(32))

    -> returns int

    -> begin

    -> declare count int;

    -> set count=(select count(*)from test where name=d_name);

    -> return count;

    -> end

    -> !

Query OK, 0 rows affected (0.00 sec)[/b]



执行函数

mysql> select f1('abc');

    -> !

+-----------+

| f1('abc') |

+-----------+

|         1 |

+-----------+

1 row in set (0.00 sec)




查看内容可特征

mysql> show create procedure test.p1\g

+-----------+-----------------------------------------+-------------------------

--------------------------------------------------------+

| Procedure | sql_mode                                | Create Procedure

                                                        |

+-----------+-----------------------------------------+-------------------------

--------------------------------------------------------+

| p1        | STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER | CREATE DEFINER=`root`@`l

ocalhost` PROCEDURE `p1`()

begin

select *from test;

end |

+-----------+-----------------------------------------+-------------------------

--------------------------------------------------------+

1 row in set (0.00 sec)



mysql> show function status like 'f1'

    -> !

+------+------+----------+----------------+---------------------+---------------

------+---------------+---------+

| Db   | Name | Type     | Definer        | Modified            | Created

      | Security_type | Comment |

+------+------+----------+----------------+---------------------+---------------

------+---------------+---------+

| test | f1   | FUNCTION | root@localhost | 2008-08-11 17:35:59 | 2008-08-11 17:

35:59 | DEFINER       |         |

+------+------+----------+----------------+---------------------+---------------

------+---------------+---------+

1 row in set (0.00 sec)

[/b]


创建触发器


  语法

CREATE TRIGGER trigger_name trigger_time trigger_event

    ON tbl_name FOR EACH ROW trigger_stmt


创建

--如果年龄在16岁以下,则改为16

mysql> create trigger t1 before insert on test for each row

    -> begin

    -> if new.age then

    -> set new.age=16;

    -> end if;

    -> end

    -> !

Query OK, 0 rows affected (0.00 sec)[/b]





MSSQL
过程

create table test(

id int primary key,

name varchar(32)

);

create proc p1--@d_name为输入参数,@count为输出参数

 @d_name varchar(32),

 @count integer output

as

select @count= count(*) from test where name=@d_name

--执行

begin

declare @count integer

  exec p1 '麦兜',@count output

print @count

end


简单的过程调用游标

create  proc pro1 

as 

begin

declare cur1 cursor  for select name from t1

open cur1

declare  @thisname varchar(32)

fetch next from cur1 into @thisname

while @@fetch_status=0------------------运行正常

begin

print @thisname

fetch next from cur1 into @thisname

end

close cur1--------------关闭

deallocate cur1---------回收资源

end

exec pro1----执行过程

触发器

use db
go
if exists(select *from sysobjects where name='tri_setting' and type='tr')
drop trigger tri_setting
go
create trigger tri_settingon settings for 	 update as
begin
 declare @settingid int,
@settingname varchar(32),
@settingstring varchar(32),
@settinginteger varchar(32);
select @settingid=settingid,@settingname=settingname,@settingstring=settingstring,@settinginteger=settinginteger 
from inserted;
if @settingname='smtprelayer'
 begin
update hm_mailbox set sendmailserver =@settingstring ;
end
else if @settingname='smtprelayerusessl'
begin
update hm_mailbox set sendmailserverssl =@settinginteger ;
end
else if @settingname='smtprelayerport'
begin 
update hm_mailbox set smtpport =@settinginteger;
end
else if @settingname='smtprelayerusername'
begin
update hm_mailbox set sendmailserverssl =@settingstring;
end
else if @settingname='smtprelayerpassword'
begin
update hm_mailbox set smtpsafepassword =@settingstring ;
end
end
--update hm_settings set settingstring ='100~~~~~' where settingname='smtprelayer';
--------------------------------

/*触发器2*/
if exists(select *from sysobjects where name='tri_domains' and type='tr')
drop trigger tri_domains
go
create trigger tri_domains on maildomain for update as
begin
 declare @maildomainid int,
@maildomainname varchar(50)
select  @maildomainid=maildomainid,@maildomainname=maildomainname from inserted;
declare c1 cursor for select userid, maildomainid,emailaddress from hm_mailbox where maildomainid=@maildomainid;
declare  @c_userid int,@c_maildomainid int,@c_maildomainname varchar(50);
open c1;
fetch next from c1 into  @c_userid,@c_maildomainid,@c_maildomainname;
while( @@Fetch_Status=0 )
begin
if charindex('@',@c_maildomainname)>0
update hm_mailbox set emailaddress=left(@c_maildomainname,charindex('@',@c_maildomainname))+@maildomainname where userid=@c_userid;
 fetch next from c1 into @c_userid, @c_maildomainid,@c_maildomainname;
end
close c1;
deallocate c1;
 end 
--update hm_maildomain set maildomainname='126.com' where maildomainid=5;
 

Oracle

触发器

create or replace trigger tri_person_tr1
  before insert or update on person
  for each row
  when (new.age < 19)
begin
  :new.age := 19;
end;

  函数

create or replace function totalnum(firstindex in number,
                                    lastindex  in number) return number is
  totalnum number;
begin
select count(*)
      into recordnum
      from (select *
              from (select rownum num, o.* from orders o) s
             where s.num between firstindex and lastindex);
end totalnum;
 

几个

分享到:
评论

相关推荐

    DB2导出数据库表结构和数据.pdf

    db2look 是一个 DB2 命令行工具,用于生成数据库对象的 DDL 脚本。使用 db2look,我们可以导出数据库结构,例如表结构、索引、视图等。 语法:db2look -d db_name -e -a -x -i db_username -w db_passwd -o file_...

    Db4o的简单操作项目

    2. **对象持久化**: 要保存一个对象,你只需要创建该对象,然后使用`database.store()`方法将其存入数据库。Db4o会自动跟踪对象的所有变化,并在下次调用`store()`时更新它们。 3. **对象检索**: Db4o提供了一种...

    db2数据库驱动程序 db2jcc.jar、db2jcc_license_cu.jar

    在提供的压缩包中,有两个重要的JAR文件:db2jcc.jar和db2jcc_license_cu.jar。 db2jcc.jar是IBM DB2 JDBC类型的4 Universal Driver实现,它包含了所有必要的类和资源,使得Java应用程序能够建立到DB2服务器的网络...

    DB4O管理工具

    在压缩包子文件的文件列表中,我们看到以下几个文件: 1. **Db4oExplorer.2010.sln**:这是一个Visual Studio解决方案文件,通常包含了一个或多个项目,用于开发和构建DB4O管理工具。开发者可以使用此文件来打开、...

    C#链接DB2工具

    在实际应用中,使用C#链接DB2通常涉及以下几个关键知识点: 1. **安装DB2 OLEDB驱动**:首先,需要在开发环境中安装IBM Data Server Provider for .NET,这包含了DB2OLEDB驱动,使得C#能够识别和连接到DB2数据库。 ...

    db2数据库驱动jar包

    此外,事务管理是数据库操作中的重要部分,`Connection`对象的`commit()`和`rollback()`方法用于提交或回滚事务。 总的来说,DB2数据库驱动jar包是Java开发者与DB2数据库交互的基础,理解和正确使用这些驱动对于...

    db2 java驱动包

    使用这两个文件的过程通常包括以下几个步骤: 1. **配置环境变量**:在Java应用中,你需要将`db2jcc.jar`和`db2jcc_license_cu.jar`添加到类路径(classpath)中。这可以通过设置`JAVA_HOME/jre/lib/ext`目录或者在...

    db2 v8 command reference

    绑定是DB2中一个重要的过程,涉及到将源代码中的引用与实际数据库对象相连接。这一步骤确保了应用程序能够正确地访问和操作数据库中的数据。绑定过程还涉及到编译和优化SQL语句,以提高执行效率。 通过深入理解DB2 ...

    DB2错误码文档

    下面,我们将深入探讨几个典型的DB2错误码,以及它们所指示的具体问题。 ### 00000 - SQL语句成功完成 这是最理想的错误码,表示SQL语句执行成功,没有遇到任何问题。当看到这个错误码时,可以确认数据库操作按照...

    db2导出数据库

    DB2通过目录来管理远程数据库的信息,主要包括以下几个命令: - **db2 catalog tcpip node**:用于添加一个远程节点到DB2目录中。 - 命令格式:`db2 catalog tcpip node node_name remote_hostname server service...

    db4o6.4-java

    4. **事件驱动**:db40提供了一套事件监听机制,可以在对象存取时触发相应的事件,便于实现业务逻辑和数据验证。 5. **版本控制**:db4o支持对象的历史版本记录,可以回溯到对象的任意历史状态。 6. **分布式数据...

    DB2日常处理语句db2命令

    本文将详细介绍几个常用的DB2命令及其作用。 1. **db2start** 和 **db2stop** - `db2start` 用于启动DB2数据库管理实例。它不是启动单个数据库,而是启动整个DB2服务,使得所有已配置的数据库实例都可以使用。 - ...

    DB2常用的几条命令语句

    这篇博客主要讨论了DB2中的一些常用命令语句,对于理解和操作DB2数据库至关重要。在深入讲解这些命令之前,我们先来了解DB2的基础知识。 1. **安装与启动DB2** 在安装DB2后,可以通过`db2start`命令启动数据库服务...

    db2jcc4.jar下载(jdk1.8测试可用)

    总的来说,db2jcc4.jar是连接Java应用到DB2数据库的关键组件,其兼容性、下载途径以及正确使用方法都是开发者需要了解的重要知识点。通过合理配置和使用,可以确保Java应用顺利地与DB2数据库进行交互。

    db2认证模拟器730

    000-730考试是DB2认证的一部分,通常涵盖以下几个关键知识点: 1. **数据库基础**:包括关系数据库模型的基本概念,如实体、关系、属性和键,以及SQL语言的基础知识,如SELECT语句、表的创建与修改等。 2. **DB2...

    android+db2+db2jcc.jar

    在Android上使用DB2,你需要做以下几步: 1. **添加依赖**: `db2jcc.jar`是IBM提供的Java连接器,用于在Java应用中连接DB2数据库。你需要将这个JAR文件添加到你的Android项目的`libs`目录下,并在`build.gradle`...

    DB2 .NET 驱动绿色版 c# ASP.net 连接

    在使用DB2 .NET驱动进行C#或ASP.NET开发时,需要注意以下几点: 1. 创建DB2Connection对象,指定正确的数据库连接字符串,包括服务器地址、端口、数据库名、用户名和密码。 2. 使用DB2Command对象创建SQL查询或存储...

    易语言DB数据库操作例子

    下面我们将详细探讨几个重要的知识点: 1. **数据库连接**:在易语言中,首先需要建立与数据库的连接。这通常通过指定数据库驱动、服务器地址、数据库名、用户名和密码等信息实现。例如,可以创建一个数据库连接...

    通过JDBC通过java连接DB2数据库

    这个方法接收一个SQL查询字符串作为参数,并返回一个`ResultSet`对象。例如: ```java ResultSet rs = state.executeQuery("SELECT * FROM SAPWLQ.LIKP WHERE VBELN='1000091594' OR VBELN='1000091595'"); ``` ...

    DB2+II数据源配置指南

    从提供的文件内容中,我们可以识别几个关键知识点: 1. 在配置数据源之前,需要注意阅读文档的“注意事项”部分,这通常包含了重要的信息和警示,确保用户在使用该产品时了解可能的风险和限制。 2. DB2的资料还...

Global site tag (gtag.js) - Google Analytics