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;