Sei sulla pagina 1di 5

QUIZ-OPEN

1
SOAL
1. Buat Database dgn nama “firstname-lastname”
2. Buat Tabel sesuai schema
3. Buat View Untuk menampilkan data “players”
berupa playerno, name, birth_date,sex, “street
houseno postcode town”, phoneno
4. Buat Store Procedure untuk menghapus data
pemain sesuai “playerno” yang di input user
(nilai playerno jadi parameter)

PLAYER
CREATE TABLE PLAYERS
(PLAYERNO INTEGER NOT NULL PRIMARY KEY,
NAME CHAR(15) NOT NULL,
INITIALS CHAR(3) NOT NULL,
BIRTH_DATE DATE,
SEX CHAR(1) NOT NULL
CHECK(SEX IN ('M','F')),
JOINED SMALLINT NOT NULL
CHECK(JOINED > 1969) ,
STREET CHAR(30) NOT NULL,
HOUSENO CHAR(4),
POSTCODE CHAR(6) CHECK(POSTCODE LIKE '______'),
TOWN CHAR(10) NOT NULL,
PHONENO CHAR(13),
LEAGUENO CHAR(4))
;

2
TEAMS
CREATE TABLE TEAMS
(TEAMNO INTEGER NOT NULL
PRIMARY KEY,
PLAYERNO INTEGER NOT NULL,
DIVISION CHAR(6) NOT NULL
CHECK(DIVISION IN
('first','second')),
FOREIGN KEY (PLAYERNO)
REFERENCES PLAYERS (PLAYERNO))
;

MATCHES
CREATE TABLE MATCHES
(MATCHNO INTEGER NOT NULL PRIMARY
KEY,
TEAMNO INTEGER NOT NULL,
PLAYERNO INTEGER NOT NULL,
WON SMALLINT NOT NULL
CHECK(WON BETWEEN 0 AND 3),
LOST SMALLINT NOT NULL
CHECK(LOST BETWEEN 0 AND 3),
FOREIGN KEY (TEAMNO) REFERENCES TEAMS
(TEAMNO),
FOREIGN KEY (PLAYERNO) REFERENCES
PLAYERS (PLAYERNO))
;

3
PENALTIES
CREATE TABLE PENALTIES
(PAYMENTNO INTEGER NOT NULL PRIMARY
KEY,
PLAYERNO INTEGER NOT NULL,
PAYMENT_DATE DATE NOT NULL
CHECK(PAYMENT_DATE >= DATE('1969-
12-31')),
AMOUNT DECIMAL(7,2) NOT NULL
CHECK (AMOUNT > 0),
FOREIGN KEY (PLAYERNO) REFERENCES
PLAYERS (PLAYERNO))
;

COMMITTEE_MEMBERS
CREATE TABLE COMMITTEE_MEMBERS
(PLAYERNO INTEGER NOT NULL,
BEGIN_DATE DATE NOT NULL,
END_DATE DATE,
POSITION CHAR(20),
PRIMARY KEY (PLAYERNO, BEGIN_DATE),
FOREIGN KEY (PLAYERNO) REFERENCES
PLAYERS (PLAYERNO),
CHECK(BEGIN_DATE < END_DATE),
CHECK(BEGIN_DATE >= DATE('1990-01-01')))
;

4
VIEW
CREATE VIEW playerdata AS
SELECT playerno, name, birth_date,sex,
CONCAT (street, ‘ ’,houseno, ‘ ’, postcode
town), phoneno
FROM PLAYERS;

STORE PROCEDURE
CREATE PROCEDURE DELETE_TEAMS
(IN P_PLAYERNO INTEGER)
BEGIN
DELETE FROM TEAMS
WHERE PLAYERNO =
P_PLAYERNO;
END

Potrebbero piacerti anche