精华内容
下载资源
问答
  • SQL Server中创建数据库的方法主要有两种:一是SQL Server Management Studio窗口中使用可视化界面,通过方便的图形化向导创建,二是通过执行Transact-SQL语句创建。 (一)向导方式创建 1、从“开始”菜单选择...
  • 用户无意中会用错误数据修改数据库,从而毁坏数据库。 3. 介质故障。如果磁盘驱动器变得不能使用,那么可能会丢失所有部分数据。 4. 自然灾难。系统所在的设施可能会遭受火灾、洪水其它类似灾难的损坏。 2. ...
  • oracle数据库经典题目

    2011-02-17 15:05:20
    14. 每个Oracle 10g数据库在创建后都有4个默认的数据库用户:system、sys、sysman和DBcnmp 15. Oracle提供了两种类型的权限:系统权限和对象权限。系统权限提供了在Oracle数据库系统范围内执行某种任务的操作能力...
  • “数据”文件夹中,创建一个名为“ db”的新文件夹 打开命令提示符其他终端,然后导航到您的mongodb安装文件夹(c:program files \ mongo \ server \ 4.4 \ bin) 命令提示符下,运行“ mongod”,这将启动...
  • 14.如何修改数据库的名称: sp_renamedb 'old_name', 'new_name' 二、提升 1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用) 法一:select * into b from a where 1<>1(仅用于SQlServer) 法二...
  • Oracle创建视图(View)

    2018-12-06 14:14:23
    通过视图执行的INSERTS和UPDATES操作不能创建该视图检索不到的数据行,因为它会对插入或修改的数据行执行完整性约束和数据有效性检查。 例如: CREATE OR REPLACE VIEW vw_emp20 AS SELECT * FROM emp WHERE ...
  • 触发器概述

    2016-11-18 15:03:58
    数据库触发器是一个已编译的存储程序单元,使用PL/SQL Java编写,在下列操作之一发生数据库自动调用(触发)它: 1 由任何用户一个特定的表视图上,发出DML 语句DML 语句修改模式对象中的数据。...

    数据库触发器是一个已编译的存储程序单元,使用PL/SQL 或 Java编写,在下列操作之一发生时,数据库自动调用(触发)它:

     1 由任何用户在一个特定的表或视图上,发出DML 语句

    DML 语句修改模式对象中的数据。例如,插入和删除行即是 DML 操作。

     2 由任何用户或特定用户发出 DDL 语句

    DDL 语句定义模式对象。例如,创建表并添加一列即是 DDL 操作。

     3 数据库事件

    用户登录或注销、错误、和数据库启动或关闭,是触发器可以调用的事件。

    触发器是模式对象,类似于子程序;但其调用方法不同。子程序由用户、 应用程序、或触发器显式运行。而触发器是在触发的事件发生时由数据库隐式调用的。

    触发器的优势

    正确使用触发器使您能够生成和部署更健壮、 更能有效使用数据库的应用程序。您可以使用触发器:

     自动生成派生列中的值
     防止无效事务
     提供审计和事件日志记录
     记录有关访问表的信息

    您可以使用触发器强制执行对所有客户端应用程序都适用的底层业务规则。例如,几个应用程序都可能要访问employees表。如果此表上的某个触发器可以确保插入数据的格式,则不需要在每个客户端中重复这种业务逻辑。因为该触发器不能被应用程序绕过,触发器中的业务逻辑会被自动应用

    您可以使用触发器或完整性约束,来定义和执行任何类型的完整性规则。但是,当不能使用一个完整性约束来定义时,Oracle 强烈建议您仅使用触发器来强制执行这种复杂的业务规则

    过度使用的触发器,可能导致复杂的相互依赖关系,在一个大的应用程序中可能很难维护。例如,当调用触发器时,在其触发器操作中的 SQL 语句可能会触发其他触发器,导致级联触发,且产生意想不到的结果。

    触发器类型

    触发器可以根据其调用方式和他们所执行的操作类型进行分类。Oracle 数据库支持以下类型的触发器:

     行触发器

    行触发器在表每次受到触发语句影响时触发。例如。如果一个语句更新多个行,则行触发器为受UPDATE影响的每一行触发一次。如果触发语句未影响任何行,则行触发器不会运行。如果触发器操作中的代码依赖于触发语句提供的数据或受影响的行,则行触发器是有用的

     语句触发器

    语句触发器针对触发语句只触发一次,而无论受触发语句影响的行数。例如,如果一个语句从表中删除 100 行,语句级DELETE触发器仅触发一次。如果触发器操作中的代码并不依赖触发语句所提供的数据或受影响的行,则语句触发器是有用的

     INSTEAD OF触发器

    数据库会触发INSTEAD OF 触发器,而不是执行触发语句这些触发器可用于透明地修改不能直接通过 DML 语句修改的视图

     事件触发器

    您可以使用触发器将有关数据库事件的信息发布到订阅服务器。事件触发器可分为以下几类:

    o 系统事件触发器可以由诸如数据库实例启动和关闭或错误消息之类的事件引起。

    o 用户事件触发器会因为与用户登录和注销、DDL 语句、和 DML 语句等相关的事件而激发。

    触发时间

    您可以定义触发时间 —— 触发器操作是要在触发语句之前运行,还是之后运行简单触发器是一个在表上的触发器,使您能够仅为以下时间点之一指定操作:

     触发语句之前
    在受触发语句影响的每行之前
    在受触发语句影响的每行之后
     触发语句之后

    对语句和行触发器, BEFORE 触发器可以增强安全性,并在对数据库进行更改之前启用业务规则。而AFTER 触发器则对日志记录操作很理想

    复杂触发器可以在多个时间点触发复杂触发器提供一种编程方法,使你可以在多个不同的时间点,对共享的公共数据实施操作

    创建触发器

    使用CREATE TRIGGER语句创建或替换数据库触发器。PL/SQL 触发器具有以下的一般语法形式:

    CREATE TRIGGER trigger_name
    triggering_statement
    [trigger_restriction]
    BEGIN
    triggered_action;
    END;

    PL/SQL 触发器具有以下基本组件:

     触发器名称

    在相同的模式中,触发器的名称必须是唯一的。例如,名称可能是 part_reorder_trigger。

     触发事件或语句

    触发事件或语句是导致触发器被调用的 SQL 语句、数据库事件、或用户事件。例如,用户更新一个表。

     触发器限制

    触发器限制指定一个布尔表达式,其值必须为 true ,触发器才会触发。例如,某触发器仅当可用部件的数量不足订购量时才触发。

     触发的操作

    触发的操作是包含 SQL 语句和代码的过程,当发出一个触发语句、且触发器限制的计算结果为 true时将被运行。例如,用户向待办订单表中插入行。

    假设您创建orders表和 lineitems表,如下所示:

    CREATE TABLE orders
    ( order_id NUMBER PRIMARY KEY,
    /* other attributes */
    line_items_count NUMBER DEFAULT 0 );
    CREATE TABLE lineitems
    ( order_id REFERENCES orders,
    seq_no NUMBER,
    /* other attributes */
    CONSTRAINT lineitems PRIMARY KEY(order_id,seq_no) );

    orders表为每个唯一订单包含一行,而 lineitems表为所订单中的每个项目包含一行。示例8-3 显示一个简单触发器,自动更新orders表的订单中的项目数。

    CREATE OR REPLACE TRIGGER lineitems_trigger
    AFTER INSERT OR UPDATE OR DELETE ON lineitems
    FOR EACH ROW
    BEGIN
    IF (INSERTING OR UPDATING)
    THEN
    UPDATE orders SET line_items_count = NVL(line_items_count,0)+1
    WHERE order_id = :new.order_id;
    END IF;
    IF (DELETING OR UPDATING)
    THEN
    UPDATE orders SET line_items_count = NVL(line_items_count,0)-1
    WHERE order_id = :old.order_id;
    END IF;
    END;
    /

    在示例 8-3 中,触发语句是一个在lineitems表上的INSERT、UPDATE、或 DELETE 操作。没有触发限制存在。触发器为更改的每一行调用一次。触发器对正在被触发语句影响的当前行,具有访问其旧列值和新列值的权限正在修改的表的每一列存在两个相关名字: 旧值 (:old)和新值 (:new)

    执行触发器

    Oracle 数据库在内部使用与执行子程序相同的步骤来执行触发器唯一的细微区别在于,如果用户有权运行触发语句,则他或她有权触发该触发器。除了这个区别之外,数据库使用与存储子程序相同的方式来验证和运行触发器。

    触发器存储

    与PL/SQL存储过程类似,Oracle 数据库将触发器以已编译形式存储在数据库模式中当CREATE TRIGGER语句提交后,其编译后的 PL/SQL 代码被存储在数据库中,而该PL/SQL 触发器源代码从共享池中被移除

    图 8-7 显示了一个数据库应用程序,其中的一个SQL 语句隐式调用了 PL/SQL 触发器。触发器与其相关联的表是分开存储的

    这里写图片描述

    Java 触发器以与PL/SQL 触发器相同的方式被存储在数据库中。但是,Java 触发器使用 CALL 语句引用单独编译的 Java 代码。因此,创建一个 Java 触发器涉及到创建 Java 代码,并创建引用此 Java 代码的触发器。

    展开全文
  • Microsoft SQL Server 2005 Express Edition SP3

    热门讨论 2012-03-04 10:55:14
    3.8 sp_configure 的设置可能会导致安装程序升级系统数据库时失败 如果更早 Community Technology Preview (CTP) 版本的 SQL Server Express 中禁用了 sp_configure 选项“SMO 和 DMO XP”,则在使用 SAVESYSDB ...
  • Oracle专家高级编程--详细书签版

    热门讨论 2012-08-21 11:57:09
    Oracle公司,Kyte专门负责Oracle数据库,他的任务是帮助使用Oracle数据库的客户,并与他们共同设计和构建系统,或者对系统进行重构和调优。进入Oracle公司之前,Kyte是一名系统集成人员,主要为美国军方和政府...
  • ABAP中文幫助文檔

    2018-10-27 19:07:09
     不要使用下列字符: 句点(.);逗号(,);空格( );括号'('')';单引号(');双引号("); 等号(=);星号(*);元音变音( , , , , , )和' ';百分号(%)和下划线(_): 因为这些符号是SQL语句的通配符,所以也会导致问题...
  • MySQL命令大全

    2018-01-15 11:19:17
    修改数据库  ()mysql的表中增加字段:  alter table dbname add column userid int(11) not null primary key auto_increment;  这样,就表dbname中添加了一个字段userid,类型为int(11)。  7.mysql...
  • 创建线程线程池,推荐给线程指定一个有意义的名称,方便出错回溯。 D .推荐使用Executors.newFixedThreadPool(int x)生成指定大小的线程池。(线程池不允许使用 Executors 去创建,而是通过 ...
  • oracle详解

    2013-03-25 09:40:36
    1.FULL,这个用于导出整个数据库ROWS=N一起使用时,可以导出整个数据库的结构。例如: exp userid=test/test file=./db_str.dmp log=./db_str.log full=y rows=n compress=y direct=y 2. OWNER和TABLE,这两个...
  • oracle实验报告

    2019-01-10 19:29:58
    PL/SQL块中使用SELECT语句注意几点: (1)SELECT语句必须含有INTO子句。 (2)INTO子句后的变量个数和位置及数据类型必须和SELECT命令后的字段名表相同。 (3)INTO子句后可以是简单类型变量组合类型变量。 ...
  • MYSQL常用命令大全

    2011-05-30 13:31:24
    修改数据库  (1)mysql的表中增加字段:  alter table dbname add column userid int(11) not null primary key auto_increment;  这样,就表dbname中添加了一个字段userid,类型为int(11)。  7.mysql...
  • 说明: 指定表已更新正在更新是否获取行锁。如果设置为 ALWAYS, 只有表被更新后才获取行锁。如果设置为 INTENT, 只有行锁将用于SELECT FOR UPDATE, 但更新将获取表锁。 值范围: ALWAYS | DEFAULT | ...
  • 经典SQL语句大全

    热门讨论 2014-12-20 12:00:30
    14.如何修改数据库的名称: sp_renamedb 'old_name', 'new_name' 二、提升 1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用) 法一:select * into b from a where 1<>1(仅用于SQlServer) 法二:...
  • 他曾IBM工作多年,能使用多种语言进行编程(多种机器上使用汇编语言和高级语言),设计和实现了实时闭环工业控制系统。Horton拥有丰富的教学经验(教学内容包括C、C++、Fortran、PL/1、APL等),同时还是机械、加工...
  • sql试 题答案和试题

    2009-12-11 16:40:54
    6、为数据表创建索引的目的是(1___),可以在创建用(2___)来创建唯一索引,也可以用(2___)来创建唯一索引。 ⑴ A、提高查询的检索性能 B、创建唯一索引 C、创建主键 D、归类 ⑵ A、设置主键约束,设置...
  • sql经典语句一部分

    2011-07-31 11:16:50
    14.如何修改数据库的名称: sp_renamedb 'old_name', 'new_name' 二、提升 1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用) 法一:select * into b from a where 1<>1(仅用于SQlServer) 法二:...
  • McAfee 8.0 简体中文

    热门讨论 2006-02-16 11:06:30
    通过创建规则指定要阻挡的端口以及是否限制对入站出站进程的访问,可 以阻挡端口。如果您希望允许一个特定进程一组进程访问准备阻挡的端口, 也可以从规则中排除这些进程。 阻挡端口,即同时阻挡 TCP 和 ...
  • 1) database:里面存放的是Activiti使用到的数据库信息的sql文件,它支持的数据库类型如下图,使用时只需执行你自己的数据库类型的文件即可。如:你的数据库是mysql,那么就执行activiti.mysql.create.*.sql即可。 2...
  • IIS6.0 IIS,互联网信息服务

    热门讨论 2010-08-23 21:20:55
    Internet Information Services(IIS,互联网信息服务),是由微软公司提供的基于运行Microsoft ... 二、本部分常见问题解答 Q:如何修改FTP服务器登录成功退出的系统提示信息? A:相应的FTP站点上单击右键,选...
  • 网络组建域管理课件2

    2009-02-08 22:29:19
    (1)将BIOS中计算机启动的系统引导顺序修改为CD-ROM、C、ACD-ROM、A、C。 (2)根据系统提示进行安装操作 方法四安装步骤 (1) 首先将计算机内的BIOS设置为从CD-ROM启动,把Windows 2000 Server安装盘放入...
  • servlet temple

    2011-06-29 20:46:07
     Servlet 的生命周期始于将它装入 Web 服务器的内存,并终止重新装入 Servlet 结束。  (1) 初始化  在下列时刻装入 Servlet:  如果已配置自动装入选项,则启动服务器自动装入  服务器启动后,...
  • ABAP开发环境的安装

    2011-10-28 17:57:07
    • 不要使用下列字符 • 句点(.) • 逗号(,) • 空格() • 括号'('')' • 单引号(') • 双引号(") • 等号(=) • 星号(*) • 元音变音(_,_,_,_,_,_)和'_' • 百分号(%)和下划线(_):这些符号是SQL...
  • 您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,从现有对象中获取类型。然后,可以调用类型的方法访问其字段和属性 序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,...

空空如也

空空如也

1 2 3 4
收藏数 71
精华内容 28
关键字:

在创建或修改数据库时使用下列