zoukankan      html  css  js  c++  java
  • 主键自增长

    a)         创建表

                             i.  有主键,主键自增长

                           ii.   有一个数值类型,数据不能为空

                          iii.   有一个字符串类型,内容随意

    b)         写一个存储过程,插入10000条数据

    c)         统计这张表的

                             i.  记录数

                           ii.  数据类型字段的平均值、最大值、最小值、汇总求和

               D)将c查询出来的记录,写入另外一张或多张表。


    create table users
    ( id integer primary key,
      name varchar2(20),
      age integer
     );
     
    
    
    CREATE SEQUENCE seq
     INCREMENT BY 1       -- 每次加几个  
         START WITH 1     -- 从1开始计数  
         NOMAXVALUE       -- 不设置最大值  
         NOCYCLE          -- 一直累加,不循环  
         NOCACHE;
         
    CREATE or replace  TRIGGER trig BEFORE
    insert ON  users FOR EACH ROW
    begin
    select seq.nextval into:New.id from dual;
    end;   
    
    --insert into users(name,age) values('zhangsan',20);
    --select * from users;
    --delete from users where id<=6 and id>=1;
    
    
    create table huizong
    (
           id integer primary key,
           v_avg integer,
           v_max integer,
           v_min integer,
           v_sum integer
    );
    
    CREATE SEQUENCE seq2
     INCREMENT BY 1       -- 每次加几个  
         START WITH 1     -- 从1开始计数  
         NOMAXVALUE       -- 不设置最大值  
         NOCYCLE          -- 一直累加,不循环  
         NOCACHE;
    CREATE or replace  TRIGGER trig2 BEFORE
    insert ON  huizong FOR EACH ROW
    begin
    select seq2.nextval into:New.id from dual;
    end;   
    create or replace procedure pro_01 is
      i           integer;
      num_of_rows integer; --保存数据条数
      avg_age     integer; --保存年龄平均值
      max_age     integer; --保存年龄最大值
      min_age     integer; --保存年龄最小值
      sum_age     integer; --保存年龄总和
    begin
      for i in 1 .. 1000 LOOP
        insert into users (name, age) values ('zhangsan', mod(i, 50) + 10);
        commit;
      END LOOP;
      EXECUTE   IMMEDIATE 'TRUNCATE TABLE huizong';
      
      select count(*), avg(age), max(age), min(age), sum(age)
        into num_of_rows, avg_age, max_age, min_age, sum_age
        from users;
      insert into huizong
        (v_avg, v_max, v_min, v_sum)
      values
        (num_of_rows, max_age, min_age, sum_age);
      commit;
    
    end;
    
    
    begin
      pro_01;
    end;
    select * from users;



  • 相关阅读:
    HashCode和equal方法
    Quartz.NET 学习笔记整理(一)
    XAML学习笔记(一)
    【转】21个经典的哲理故事
    关于List<T>集合中的差集
    batch files
    Maintenance Plans in MS SQL 2005
    Telerik
    What is DeltaCopy
    How to Insert Values into an Identity Column in SQL Server
  • 原文地址:https://www.cnblogs.com/yldf/p/11900194.html
Copyright © 2011-2022 走看看