精华内容
下载资源
问答
  • 一、事务1、事务简介:是指作为单个逻辑工作单元执行一系列操作,要么完全地执行,要么完全地...一个逻辑工作单元要成为事务,必须满足所谓ACID(原子性、一致性、隔离性持久性)属性。2、事务语句:开始事物:B...

    一、事务

    1、事务简介:

    是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性。

    2、事务语句:

    开始事物:BEGIN TRANSACTION

    回滚事务:ROLLBACK TRANSACTION

    提交事物:COMMIT TRANSACTION

    3、事务属性(ACID):

    原子性

    (Atomic)(Atomicity)

    事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。如果在事务处理的其中的一个环节出了问题,那么就执行回滚,回到事务执行之前的状态。

    一致性

    (Consistent)(Consistency)

    事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。

    隔离性

    (Insulation)(Isolation)

    由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为隔离性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。当事务可序列化时将获得最高的隔离级别。在此级别上,从一组可并行执行的事务获得的结果与通过连续运行每个事务所获得的结果相同。由于高度隔离会限制可并行执行的事务数,所以一些应用程序降低隔离级别以换取更大的吞吐量。

    持久性

    (Duration)(Durability)

    事务commit之后,它对于系统的影响是永久性的。该修改即使出现致命的系统故障也将一直保持。

    二、存储过程

    1、存储过程(Stored Procedure):

    是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。

    2、基本语法:

    创建存储过程

    create procedure sp_name

    @[参数名] [类型],@[参数名] [类型]

    as

    begin

    .........

    end

    以上格式还可以简写成:

    create proc sp_name

    @[参数名] [类型],@[参数名] [类型]

    as

    begin

    .........

    end

    /*注:“sp_name”为需要创建的存储过程的名字,该名字不可以以阿拉伯数字开头*/

    调用存储过程

    1.基本语法:exec sp_name [参数名]

    删除存储过程

    1.基本语法:

    drop procedure sp_name

    2.注意事项

    (1)不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程

    其他常用命令

    1.show procedure status

    显示数据库中所有存储的存储过程基本信息,包括所属数据库,存储过程名称,创建时间等

    2.show create procedure sp_name

    显示某一个mysql存储过程的详细信息

    3、exec sp_helptext sp_name

    显示你这个sp_name这个对象创建文本

    3、存储过程分类

    a.系统存储过程

    以sp_开头,用来进行系统的各项设定.取得信息.相关管理工作。

    b.本地存储过程

    用户创建的存储过程是由用户创建并完成某一特定功能的存储过程,事实上一般所说的存储过程就是指本地存储过程。

    c.临时存储过程

    分为两种存储过程:

    一是本地临时存储过程,以井字号(#)作为其名称的第一个字符,则该存储过程将成为一个存放在tempdb数据库中的本地临时存储过程,且只有创建它的用户才能执行它;

    二是全局临时存储过程,以两个井字号(##)号开始,则该存储过程将成为一个存储在tempdb数据库中的全局临时存储过程,全局临时存储过程一旦创建,以后连接到服务器的任意用户都可以执行它,而且不需要特定的权限。

    d.远程存储过程

    在SQL Server2005中,远程存储过程(Remote Stored Procedures)是位于远程服务器上的存储过程,通常可以使用分布式查询和EXECUTE命令执行一个远程存储过程。

    e.扩展存储过程

    扩展存储过程(Extended Stored Procedures)是用户可以使用外部程序语言编写的存储过程,而且扩展存储过程的名称通常以xp_开头。

    两者的区别(个人认为):

    事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位

    存储过程是一组为了完成特定功能的sql语句集(或者自定义数据库操作命令集)

    展开全文
  • 存储过程和函数具体的区别: 核心提示:本质上没区别。只是函数有限制只能返回一个标量,而存储过程可以返回多个。并且函数是可以嵌入在SQL中使用的,可以在SELECT等SQL语句中调用,而存储过程不行。执行的本质都...

     

                                           存储过程和函数具体的区别:

    核心提示:本质上没区别。只是函数有限制只能返回一个标量,而存储过程可以返回多个。并且函数是可以嵌入在SQL中使用的,可以在SELECT等SQL语句中调用,而存储过程不行。执行的本质都一样。

     

        函数限制比较多,如不能用临时表,只能用表变量等,而存储过程的限制相对就比较少。

        1. 一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。

        2. 对于存储过程来说可以返回参数,而函数只能返回值或者表对象。

        3. 存储过程一般是作为一个独立的部分来执行,而函数可以作为查询语句的一个部分来调用,由于函数

           可以返回一个表对象,因此它可以在查询语句中位于FROM关键字的后面

        4. 当存储过程和函数被执行的时候,SQL Manager会到procedure cache中去取相应的查询语句,如果在

           procedure cache里没有相应的查询语句,SQL Manager就会对存储过程和函数进行编译。

    Procedure cache:中保存的是执行计划,当编译好之后就执行procedure cache中的execution plan,之后SQL SERVER会根据每个execution plan的实际情况来考虑是否要在cache中保存这个plan,评判的标准一个是这个execution plan可能被使用的频率;其次是生成这个plan的代价,也就是编译的耗时。保存在cache中的plan在下次执行时就不用再编译了。

     

        存储过程:可以使得对的管理、以及显示关于及其用户信息的工作容易得多。存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。存储过程可包含程序流、逻辑以及对数据库的查询。它们可以接受参数、输出参数、返回单个或多个结果集以及返回值。

       可以出于任何使用 SQL 语句的目的来使用存储过程,它具有以下优点

        (1)功能强大,限制少。

        (2)可以在单个存储过程中执行一系列 SQL 语句。

        (3)可以从自己的存储过程内引用其它存储过程,这可以简化一系列复杂语句。

        (4)存储过程在创建时即在上进行编译,所以执行起来比单个 SQL 语句快。

        (5)可以有多个返回值,即多个输出参数,并且可以使用SELECT返回结果集。

     

        函数:是由一个或多个 SQL 语句组成的子程序,可用于封装代码以便重新使用。自定义函数诸多限制,有许多语句不能使用,许多功能不能实现。函数可以直接引用返回值,用表变量返回记录集。但是,用户定义函数不能用于执行一组修改全局数据库状态的操作。 

    转自(http://blog.sina.com.cn/s/blog_48a45b950100ip4o.html)

     

    1.                                              事务
           1、什么是事务
                事务是一个不可分割的工作逻辑单元,它包含了一组数据库的操作命令,并且所有命令作为一个整体一起向系统提交或撤销操作请求,即要么都执行,要么都不执行
        2、事务的4个属性
                (1)、原子性(Atomicity):事务是一个完整的操作,事务个元素不可分
                (2)、一致性(Consistency):当事务完成时,数据必须处于一致状态
                (3)、隔离性(Isolation):对数据进行修改的所有并发事务时彼此隔离的,这表明事务必须时独立的,它不应该以任何方式依赖于或影响其他事务
                (4)、持久性(Durability):事务完成后,它对于系统的影响是永久性的
          3、创建事务的语法:
               --开始事务--
               begin transaction
                   --定义变量,累计事务执行过程中的错误--
            declare @errorSum int
                   set @errorSum=0      --初始化为0,即无错误
            --增删改操作---
            set  @errorSum = @errorSum +@@error   --累计是否有错误
            ........
        
            --根据是否有错误,确定事务是提交还是撤销--
            if(@errorSum=0)
                        commit transaction    --提交事务
            else 
                        rollback transaction   --撤销事务
            
            注意:变量@errorSum只对增删改进行操作,查询并不需要
            
      
       4、什么时候使用事务
           当一个操作由多个增删改组成的时候,则应用事务
      
                                                            索引
      
          1、什么是索引
             它是SQL Server编排数据的内部方法,为SQL Server提供一种方法来编排查询数据的路径,相当于字典里的目录
          2、索引的分类
                 (1)、唯一索引:唯一索引不允许两行具有相同的索引值
                (2)、主键索引:在数据库关系图中为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型         
                (3)、聚集索引:  表中各行的物理顺序与键值的逻辑(索引)顺序相同,每个表只能由一个
                (4)、非聚集索引:非聚集索引指定表的逻辑顺序。数据存储在一个位置,索引存储在另一个位置,索引中包含指向数据存储位置的指针。可以是多个,小于249个
           3、创建索引
                语法:
                create [unique] [clustered | nonclustered] index index_name
                    on table_name (column_name[,column_name]....)
                     [
                          fillfactor=x
                  ]
      
                 unique指定唯一索引,可选
               clustered、nonclustered指定是聚集索引还是非聚集索引,可选
               fillfactor表示填充因子,指定一个0~100的值,该值指示索引页填满的空间所占的百分比
           
              示例:
                 use stuDB
                 go
                 /*--检测是否存在该索引(索引存放在系统表sysindexes中)--*/
                if exists(select name from sysindexes
                               where name='ix_stumarks_writtenexam')
                      drop index  stumarks.ix_stumarks_writtenexam     --删除索引
               /*--笔试列创建非聚集索引:填充因子为30%--*/
               create nonclustered index ix_stumarks_writtenexam
                on stumarks(writtenexam)
                with  fillfactor=30
                go
      
            3、应该创建索引和不应该创建索引
               应该创建索引:
                   经常以这个列进行查询
                   经常以这个列进行排序
               不应该创建索引:
                  表的数据量小时,不应创建(会先查索引页,然后再表)
                  当某列的值经常发生变更(修改数据会影响到索引页)
                  当该列的值比较单一的情况(比如该列的值为性别 男和女)
                                                    视图
            1、什么是视图
                 视图是另一种查看数据库中一个或多个表中的数据的方法,视图是一种虚拟表
            2、语法
                 create view view_name
                  as <select语句>
                 注意:视图可以对表进行增删改查, 但建议不对其使用增删改,多用来进行查询
    2. 转自(http://blog.csdn.net/flanet/article/details/7595907)

    转载于:https://www.cnblogs.com/whytohow/p/4761912.html

    展开全文
  • 通过java代码会比较影响数据库资源,所以我使用了存储过程、临时表逻辑。期间学习总结一下 第一 会话临时表 (说明临时表是会话指定,当中断会话时ORACLE将截断表,删除所有数据) 第二 事物临时表 (说明临时表...

    直接贴代码了啊 ,逻辑是实时统计每个业务员的团队佣金并且将统计的数据展示在页面上

    通过java代码会比较影响数据库资源,所以我使用了存储过程、临时表逻辑。期间学习的总结一下

    第一   会话临时表 (说明临时表是会话指定,当中断会话时ORACLE将截断表,删除所有数据)

    第二   事物临时表 (说明临时表是事务指定,每次提交后ORACLE将截断表,删除所有数据)

    我使用的是会话临时表,因为我需要将统计的佣金插入临时表中,并返回查询显示结果

    -------创建会话级临时表  
    create global temporary table fht_team_reward_commissiontem (
            id number,
            username varchar2(20),
            teamName varchar2(60),
            commission number,
            premium number,
            twolevelpremium number,
            twolevelcommission number,
            threelevelpremium number,
            threelevelcommission number,
            levelcommission number,
            teampolicys number,
            userid number,
            createtime DATE
        )   On Commit Preserve Rows;

    -------创建存储过程

    create or replace procedure mydemo09( cityid in varchar2 ,p_cur out sys_refcursor ,userName in varchar2 )
    is
    ra number := cityid ;------城市id
    levelCommission number ;----等级佣金
    teamCommission number;----团队佣金
    reCommission number ;---返点佣金
    premium number ;----自营保费
    twoLevelPremium number ;-----二级团队总保费
    threeLevelPremium number ;-----三级团队总保费
    twoLevelRebate varchar2(255) ;------二级团队返点
    threeLevelRebate varchar2(255) ;----三级团队返点
    twoLevelCommission number;----二级佣金
    threeLevelCommission number;----三级佣金
    teamPolicys varchar2(255) ;----团队总保单数量
    begin
      levelCommission := 0 ;
     for user in (select u.* from fht_users u , fht_enterprise e where u.enterpriseid = e.id and e.cityid=ra and u.gradetype is not null ) loop
      -----个人返点佣金
      select sum(reCommission) into reCommission from fht_level_commission where currentUserName=user.userName ;
       -----等级佣金
      select sum(commission) into levelCommission from fht_level_commission where directlySuperiorUserName=user.userName ;
      -----自营保费
      select sum(totalPremium) into premium from fht_level_commission where currentUserName=user.userName ;
      -----本月二级用户所做的总保费
      select sum(totalPremium) into twoLevelPremium from fht_level_commission where currentUserName in (select  tm.userName  from (  select m.*, level leaf   from fht_teamUsers m start with m.teamLeaderId = user.userid connect by m.teamLeaderId = prior m.userId  ) tm where tm.leaf = 1 );
      -----本月三级用户所做的总保费
      select sum(totalPremium) into threeLevelPremium from fht_level_commission where currentUserName in (select  tm.userName  from (  select m.*, level leaf   from fht_teamUsers m start with m.teamLeaderId = user.userid connect by m.teamLeaderId = prior m.userId  ) tm where tm.leaf = 2)  ;
      ------二级团队返点
      select teamSecondRebate into twoLevelRebate from fht_teamConfigurationRatio where cityid=ra and del=0 ;
      ----三级团队返点
      select teamThirdRebate into threeLevelRebate from fht_teamConfigurationRatio where cityid=ra and del=0 ;
      ----二级佣金
      select countTeamCommission(twoLevelPremium,twoLevelRebate) into twoLevelCommission from dual ;
      select countteamcommission(threeLevelPremium ,threeLevelRebate) into threeLevelCommission from dual ;
      teamCommission := twoLevelCommission + threeLevelCommission  ;
      ----团队总保单数量
      select count(id) into teamPolicys from fht_level_commission where currentUserName in (
          select tm.userName from (select m.*, level leaf  from fht_teamUsers m start with m.teamLeaderId = user.userid connect by m.teamLeaderId = prior m.userId) tm where tm.leaf = 1
          union all
          select username from fht_users  where userid = user.userid
          union all
          select tm.userName from (select m.*, level leaf  from fht_teamUsers m  start with m.teamLeaderId = user.userid connect by m.teamLeaderId = prior m.userId) tm  where tm.leaf = 2
       )  ;

     
      ---------不管本月数据是否在团队佣金临时表中是否存在,直接删除相关数据,从新存储
      delete from fht_team_reward_commissiontem where userName = user.userName ;
      ----插入数据
      insert INTO  fht_team_reward_commissiontem (
             id,username,teamName ,commission,premium,twolevelpremium ,twolevelcommission ,threelevelpremium,threelevelcommission,
             levelcommission,teampolicys,userid ,createtime
             )
      values (hibernate_sequence.nextval ,user.userName ,user.realName,teamCommission ,premium ,twoLevelPremium,twoLevelCommission,threeLevelPremium,threeLevelCommission ,
             levelcommission,teamPolicys,user.userid,sysdate
             );
      end loop;
     open p_cur for 'select * from fht_team_reward_commissiontem where userName like  ' || '''' || '%' || userName || '%' || '''   or  teamName like  ' || '''' || '%' || userName || '%' || ''' order by commission desc';
     commit;
    end;

     

    存储过程中用到了一个函数给一下

    CREATE OR REPLACE FUNCTION countTeamCommission(vid in VARCHAR2 , rebate IN VARCHAR2)
    ------根据 传入的 保费总金额 和 相关 二级配置返点 计算所得佣金 的函数
    return VARCHAR2
    is
     firstParam varchar2(25);
     firstrate varchar2(25);
     premium number := 0;
    begin

        for rateArr in (select column_value from table(split(rebate,','))) loop
           select substr(column_value,2) into firstParam from table(split(rateArr.column_value,'=')) where rownum<=1 ;
           select column_value into firstrate from table(split(rateArr.column_value,'=')) where rownum<=2 minus select column_value from table(split(rateArr.column_value,'=')) where rownum<=1;
           if to_number(vid) <= to_number(firstParam) then
             premium := firstrate * vid ;
             EXIT;
           END IF;
        end loop ;
        return  premium;
     end;
     

    这个函数根据保费 以及返点来计算佣金

    select countteamcommission(100000,'<1000000=0.01,<2000000=0.12') from dual

    上面函数用到了分割字符串函数,给一下源码

    创建一个类型  create or replace type type_str is table of varchar2(100) ;

    create or replace function split(p_str varchar2,p_delimiter varchar2 default ',') return type_str

    is

      rs type_str:=type_str();

      l_str varchar2(4000):='';

      l_len number:=0;

    begin

      l_str:=p_str;

      l_len:=length(p_delimiter);

      while length(l_str)>0 loop

         if instr(l_str,p_delimiter)>0 then

           rs.extend;

           rs(rs.count):=substr(l_str,1,instr(l_str,p_delimiter)-1);

           l_str:=substr(l_str,instr(l_str,p_delimiter)+l_len);

         else

           rs.extend;

           rs(rs.count):=l_str;

           exit;

         end if;

      end loop;

      return rs;

    end;
     

    存储过程的调用

    declare
      p_cur sys_refcursor;
      a     fht_team_reward_commissiontem%rowtype;
    begin
      mydemo09('3465', p_cur ,'');

      loop
        fetch p_cur
          into a;
        exit when p_cur%notfound;
       dbms_output.put_line(a.userName || '---' || '---' || a.twoLevelPremium);
      end loop;
      close p_cur;
    end;

     

    -------使用到了游标

    p_cur out sys_refcursor 游标参数    open p_cur for   循环打开游标查询的结果

    展开全文
  • 看完牛腩前18集,就发现用存储过程和触发器真很棒棒哒!那么到底什么时候用存储过程,什么时候用触发器呢? 【我理解】 SQL语句: 一句SQL语句就是一个命令,而一般来说一个命令只执行一件事。 存储过程: 里面...

    原文地址:https://blog.csdn.net/u013034286/article/details/46968725

    看完牛腩前18集,就发现用存储过程和触发器真的很棒棒哒!那么到底什么时候用存储过程,什么时候用触发器呢?

    【我的理解】

    SQL语句: 一句SQL语句就是一个命令,而一般来说一个命令只执行一件事。
    存储过程: 里面可以有多个SQL语句,用事物可以保证多句语句必须都执行成     
              功,这个存储过程才执行。
    触发器:是在对表进行插入、更新或删除操作时自动执行的存储过程,触发器通常用于强制业务规则。触发器还是一个特殊的事务单元,当出现错误时,可以执行ROLLBACK TRANSACTION回滚撤销操作。 

    【站在巨人的肩膀上】 

    触发器原理:

    触发器与存储过程可以说是非常相似,可以说是一种变种的存储过程,触发器和存储过程一样都是SQL语句集,通常通过创建触发器来强制实现不同表中的逻辑相关数据的引用完整性和一致性。由于用户不能绕过触发器,所以可以用它来强制实施复杂的业务规则,以确保数据的完整性。触发器不同于存储过程,触发器主要是通过事件执行触发而被执行的,而存储过程可以通过存储过程名称名字而直接调用。当对某一表进行诸如UPDATE、INSERT、DELETE这些操作时,SQLSERVER就会自动执行触发器所定义的SQL语句,从而确保对数据的处理必须符合这些SQL语句所定义的规则。

    触发器的作用:

    触发器的主要作用是其能够实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性。它能够对数据库中的相关表进行级联修改,强制比CHECK约束更复杂的数据完整性,并自定义操作消息,维护非规范化数据以及比较数据修改前后的状态。与CHECK约束不同,触发器可以引用其它表中的列。在下列情况下使用触发器实现复杂的引用完整性;强制数据间的完整性。创建多行触发器,当插入,更新、删除多行数据时,必须编写一个处理多行数据的触发器。执行级联更新或级联删除这样的动作。级联修改数据库中所有相关表。撤销或者回滚违反引用完整性的操作,防止非法修改数据。

    触发器与存储过程的区别:

    触发器与存储过程的主要区别在于触发器的运行方式。存储过程必须有用户、应用程序或者触发器来显示的调用并执行,而触发器是当特定时间出现的时候,自动执行或者激活的,与连接用数据库中的用户、或者应用程序无关。当一行被插入、更新或者删除时触发器才执行,同时还取决于触发器是怎样创建的,当UPDATE发生时使用一个更新触发器,当INSERT发生时使用一个插入触发器,当DELETE发生时使用一个删除触发器。

    展开全文
  • 今天在PostgreSQL遇到一个奇怪现象,简而言之,是想用函数(存储过程)实现插入记录,整个过程没报错但事后却没找到记录!忙活半天,才发现原因是PostgreSQL函数(存储过程)有自动COMMIT或ROLLBACK特殊规定。 ...
  • 这个是我在学习数据库过程的相关记录总结(我会一直完善补充),敬请关注 SQL教程:http://www.yiibai.com/sql/sql_function_insert.html 注:@@定义是全局变量或者系统变量 自定义全局变量...
  • 对待存储过程和函数态度优点:1.存储过程只在创建时进行编译,sql语句则每次执行都需要编译。能提高数据库执行速度。2.简单复杂操作结合事物一起封装。3.复用性高。4.安全性高,可指定存储过程使用权。在实际...
  • 目录 1.视图 2.触发器-trigger 3.存储过程 4.函数 4.1 MySQL内建函数 一、数学函数 ...二、聚合函数(常用于GROUP BY从句的SELECT查询中) ...四、日期时间函数 ...4.5 函数与存储过程的区别:   ...
  • 数据库数据仓库的区别 数据库:数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库 主要的类型:关系型数据库 本质:二元关系,二维表格,如:Excel表格 特点:结构化程度高,...
  • 1.InnoDB支持外键和事物,而MyISam不支持 2.事务性表应该使用InnoDB,频繁读取如select操作很频繁应该使用MyISam引擎。我们新建了2张表:user_sys和user_sys2,字段都一样,只是一个使用InnoDB引擎,一个使用...
  • 数据库是通过表来解决事物的存储问题的。 数据库是用过约束来解决事物取值的有效性合法性的问题。 建表的过程就是指定事物属性及其事物属性各种约束的过程。 check 约束意义:保证事物属性的取值在合法的范围之内...
  • 1.事务: 一系列连续操作,不可分割,要不全部成功,全部失败 ...函数和存储过程的区别:标识符不同;函数值有返回值,过程没有;函数在sql语句中可以直接调用,而过程不能直接调用。   ins...
  • 值类型引用类型的区别: 似乎“值类型引用类型的区别”是今年面试的流行趋势,我已然是连续三次(目前总共也就三次)面试第一个问题就遇到这个了,这是多大的概率啊,100%. 言归正传,咱还是先来探讨探讨这二者...
  • 如何选择mysql的存储引擎在开发过程中,我们经常使用的存储引擎MyISAM / INNODB /MemoryMyISAM存储引擎:如果表对事物的要求不高,同时是以查询添加为主,我们考虑使用MyISAM存储引擎,比如bbs中的发帖表,回复表...
  • MongoDB命令安装过程

    2019-01-12 15:57:00
    mysql Mongodb区别 MongoDB 一:基于分布式文件存储 二:高负载情况下添加更多节点 三:将数据存储于一个文档 MogoDB对事物的支持比较弱 MogoDB运维慢 mongodb与mysql命令对比 传统的关系数据库一般由...
  • Array--List--ArrayList 三者的区别(一)——引言篇

    千次阅读 热门讨论 2016-03-25 14:28:39
    数据在计算机中的存储和组织问题:其实就是——数据结构 这是一个很基础问题,本质是现实生活中的事物如何装入计算机中并且表示出来问题。其实就是我们通常说编码。在计算机中我们采用二进制编码,为什么?...
  • 每个对象都有自己由其他对象所构建的存储,也就是对象可以包含对象 每个对象都有它类型 也就是类 某一特定类型所有对象都可以接收相同消息,因为同一类事物有共同特性 面向对象开发 •就是不断...
  • 依赖于该表的存储过程/函数将保留,但是变为invalid状态。 delete语句是DML语言,这个操作会放在rollback segement中,事物提交后才生效;如果有相应触发器(trigger),执行时候将被触发。truncate、...
  • 面向对象程序设计(Object Oriented Programming)作为一种新方法,其本质是以建立模型体现出来抽象思维过程和面向对象方法。模型是用来反映现实世界中事物特征。 类和对象是面向对象程序设计两个重要概念...
  • Day12学习目录面向对象面向过程和面向对象区别属性和方法self参数特殊方法init魔法方法封装 面向对象 面向过程和面向对象区别 通过以下例子说明: 面向过程 执行者 打开冰箱门 xxxxxx 装大象 xxxxxx 关冰箱门 ...
  • 知识链接 E-R模型基本元素是实体属性联系 1实体 实体entity是指客观存在并相互区别的事物如汽车人教室等在E-R模型中实体用方框表示 数据库实体就是数据库管理系统中不同管理对象如数据库表视图存储过程等都是...
  • 通向码农道路(-)

    2012-08-11 23:18:16
    数据结构数据库的区别在哪里? 数据结构是解决计算机程序在内存中存储数据的一门学科,它是解决现实生活中非数值的程序设计问题。 为什么数据结构这么难?因为现实生活都是以一对多,多对多的关系存在,而...
  • 对象 对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。对象具有属性行为,在程序设计中对象...面向对象与面向过程的区别 ...
  • 对象 对象表示现实世界中某个具体的事物 抽象是从特定实例中抽取共同性质以形成一般化概念的过程 对象具有两方面含义 在现实世界中 是客观世界中一个实体 在计算机世界中 是一个可标识的存储区域 ...
  • 第01节、线程与进程的区别 第02节、为什么要用到多线程 第03节、多线程应用场景 第04节、使用继承方式创建线程 第05节、使用Runnable接口方式创建线程 第06节、使用匿名内部类方式创建线程 第07节、多线程常用api 第...
  • 这本经典、畅销的数据结构教材详细介绍了数据抽象的基础知识,强调作为面向对象方法基础原理的规范实施之间的区别。书中使用的软件工程原则概念以及UML图便于增强学生的理解。 ◆ 详细介绍了数据抽象,强调规范...

空空如也

空空如也

1 2 3
收藏数 56
精华内容 22
关键字:

存储过程和事物的区别