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;



  • 相关阅读:
    51NOD 1069 Nim游戏
    51NOD 1066 Bash游戏
    51NOD 1058 N的阶乘的长度
    51NOD 1057 N的阶乘
    51NOD 1027 大数乘法
    RMQ 区间最大值 最小值查询
    Codeforces Round #426 (Div. 2) C. The Meaningless Game
    51NOD 1046 A^B Mod C
    OJ上 编译器 G++和C++的区别
    二分暑假专题 训练记录 2017-7-29
  • 原文地址:https://www.cnblogs.com/yldf/p/11900194.html
Copyright © 2011-2022 走看看