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;