Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

SQL The database you will use for this assignment contains information related t

ID: 3722041 • Letter: S

Question

SQL

           

The database you will use for this assignment contains information related to Major League Baseball (MLB) about players, teams, and games. The relations are:

Players(playerID, playerName, team, position, birthYear)

     playerID is a player identifier used in MLB, and all players throughout the history of baseball have a unique ID

     playerName is player’s name

     team is the name of the MLB team the player is currently playing on (or the last team the player played for if they are not currently playing)

     position is the position of the player

     birthYear is the year that player was born

Teams(teamID, teamName, home, leagueName)

     teamID is a unique ID internal to MLB.

     teamName is the name of the team

     home is the home city of the team

     leagueName is the league the team is in, i.e. either “National” or “American”, which stands for “National League” and “American League”, respectively

Games(gameID, homeTeamID, guestTeamID, date)

     gameID is a unique ID used internally in MLB

     homeTeamID is the ID of the hometeam

     guestTeamID is the ID of the visiting team

     date is the date of the game.

A sample instance of this database is given at the end of this homework handout. Since it is just one instance of the database designed to give you some intuition, you should not “customize” your answer to work only with this instance.

1. Write appropriate SQL DDL statements (CREATE statements) for declaring the above described relational database schema. Specify the keys and referential triggered actions.

Players

playerID

playerName

team

position

birthYear

1

Javy Lopez

Braves

Catcher

1970

2

Cliff Lee

Phillies

Pitcher

1978

3

Derek Jeter

Yankees

Infielder

1974

4

Skip Schumaker

Cardinals

Infielder

1980

5

Dominic Brown

Phillies

Outfielder

1987

Teams

teamID

teamName

home

leagueName

1

Phillies

Philadelphia

National

2

Braves

Atlanta

National

3

Yankees

New York

American

4

Twins

Minnesota

American

5

Rangers

Texas

American

6

Cubs

Chicago

National

Games

gameID

homeTeamID

guestTeamID

date

1

3

6

04/21/2010

2

1

4

04/21/2010

3

2

5

04/30/2010

4

6

3

05/02/2010

5

4

5

05/02/2010

6

1

5

05/06/2010

playerID

playerName

team

position

birthYear

1

Javy Lopez

Braves

Catcher

1970

2

Cliff Lee

Phillies

Pitcher

1978

3

Derek Jeter

Yankees

Infielder

1974

4

Skip Schumaker

Cardinals

Infielder

1980

5

Dominic Brown

Phillies

Outfielder

1987

Explanation / Answer


CREATE TABLE Players
(
FOREIGN KEY (playerID) REFERENCES MLB(playerID),
playerName VARCHAR NOT NULL,
team VARCHAR NOT NULL,
position VARCHAR NOT NULL,
birthYear INT NOT NULL
)


CREATE TABLE Teams
(
FOREIGN KEY (teamID) REFERENCES MLB(teamID),
teamName VARCHAR NOT NULL,
home VARCHAR NOT NULL,
leagueName VARCHAR NOT NULL
)


CREATE TABLE Games
(
FOREIGN KEY (gameID) REFERENCES MLB(gameID),
homeTeamID INT NOT NULL,
guestTeamID INT NOT NULL,
date DATE
)