WUT_Computer_Science/NotProgramming/EDABA-LAB/SQL stuff/populate_script_DOMANSKI_RUDNICKI.sql

119 lines
3.8 KiB
MySQL
Raw Permalink Normal View History

-- USE alterscript.sql BEFORE RUNNING THIS SCRIPT (FIRST 7 LINES)
-- AFTER USING THIS SCRIPT RUN LAST 7 LINES FROM THE SAME FILE
truncate table takes_part_in cascade;--
truncate table takes_place_in cascade;--
truncate table player cascade;--
truncate table match cascade;--
2022-12-14 12:02:52 +01:00
truncate table stadium cascade;--
truncate table manager cascade;--
truncate table club cascade;--
truncate table competition cascade;--competition is last since it has no foreign keys (but club holds a foreign key to competition)
2022-12-07 12:14:11 +01:00
declare loops number := 1000;
2022-12-15 09:56:59 +01:00
begin
declare many_to_many number := 150;
begin
2022-12-01 09:39:24 +01:00
insert into competition
select
2022-12-07 12:14:11 +01:00
level +(select nvl(max(id),0) from competition) as id,
DBMS_RANDOM.value(0,1000000) as prize,
dbms_random.string('A', 6) as country,
DBMS_RANDOM.value(1,5) as reputation
from dual
connect by level <=loops
2022-12-07 12:14:11 +01:00
;
2022-12-14 12:02:52 +01:00
insert into manager
select
level +(select nvl(max(id),0) from manager) as id,
DBMS_RANDOM.value(1,5) as skill,
DBMS_RANDOM.value(1,5) as reputation,
DBMS_RANDOM.value(18,80) as age,
DBMS_RANDOM.value(0,1000000) as wage,
level as club_id
from dual
2022-12-15 09:15:56 +01:00
connect by level <=loops
2022-12-14 12:02:52 +01:00
;
2022-12-07 12:56:44 +01:00
2022-12-14 12:02:52 +01:00
insert into club
select
level +(select nvl(max(id),0) from club) as id,
DBMS_RANDOM.value(0,1000000) as budget,
DBMS_RANDOM.value(1,5)as training_ground_quality,
DBMS_RANDOM.value(1,5) as reputation,
dbms_random.string('A', 6) as country_of_origin,
2022-12-15 09:15:56 +01:00
dbms_random.value(1,loops) as competition_id, --https://stackoverflow.com/questions/27879874/how-to-get-random-foreign-key-in-sql-developer
2022-12-14 12:02:52 +01:00
level as manager_id
from dual
2022-12-15 09:15:56 +01:00
connect by level <=loops
2022-12-14 12:02:52 +01:00
;
2022-12-07 12:56:44 +01:00
insert into stadium
select
level +(select nvl(max(id),0) from stadium) as id,
DBMS_RANDOM.value(0,40000) as capacity,
DBMS_RANDOM.value(1,5) as reputation,
dbms_random.string('A', 6) as location,
DBMS_RANDOM.value(1900,2100) as build_year,
DBMS_RANDOM.value(0,1000000) as value,
DBMS_RANDOM.value(0,200) as ticket_price,
level as club_id
from dual
2022-12-15 09:15:56 +01:00
connect by level <=loops
;
2022-12-07 13:35:28 +01:00
insert into match
select
level +(select nvl(max(id),0) from match) as id,
DBMS_RANDOM.value(0,100) as score,
DBMS_RANDOM.value(1,5) as rating,
DBMS_RANDOM.value(0, 40000) as attendance,
dbms_random.string('A', 6) as weather,
DBMS_RANDOM.value(0,120) as duration,
2023-01-04 20:55:58 +01:00
To_date(TRUNC(DBMS_RANDOM.VALUE(TO_CHAR(DATE '1900-01-01','J') ,TO_CHAR(DATE '2023-12-31','J'))), 'J') as date2,
dbms_random.string('A', 6) as referee_name,
level as competition_id
from dual
2022-12-15 09:15:56 +01:00
connect by level <=loops
;
2022-12-07 13:35:28 +01:00
insert into player
select
level +(select nvl(max(id),0) from player) as id,
DBMS_RANDOM.value(1, 5) as skill,
dbms_random.string('A', 6) as position,
DBMS_RANDOM.value(1, 5) as reputation,
dbms_random.string('A', 6) as contract_status,
2023-01-04 20:56:44 +01:00
DBMS_RANDOM.value(0, 700) as injuries, -- in days, max injury can take about 2 years (700 days)
DBMS_RANDOM.value(15, 50) as age,
DBMS_RANDOM.value(0, 100000000) as wages,
DBMS_RANDOM.value(0, 1000000000) as transfer_value,
dbms_random.value(1,loops) as club_id
from dual
connect by level <=loops
;
2022-12-15 09:52:58 +01:00
insert into takes_part_in
SELECT club_id, match_id
FROM (
SELECT club.id as club_id, match.id as match_id
FROM club, match
ORDER BY DBMS_RANDOM.RANDOM)
2022-12-15 09:56:59 +01:00
WHERE rownum <= many_to_many;
2022-12-15 09:52:58 +01:00
2022-12-15 09:56:59 +01:00
insert into takes_place_in
SELECT stadium_id, competition_id
FROM (
SELECT stadium.id as stadium_id, competition.id as competition_id
FROM stadium, competition
ORDER BY DBMS_RANDOM.RANDOM)
WHERE rownum <= many_to_many;
end;
end;
-- USE alterscript.sql BEFORE RUNNING THIS SCRIPT (FIRST 7 LINES)
-- AFTER USING THIS SCRIPT RUN LAST 7 LINES FROM THE SAME FILE