Advertisement
eniallator

lab 2 databases

Nov 13th, 2019
299
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 1.42 KB | None | 0 0
  1. CREATE TABLE CD_RecordLabel (
  2.   labelname VARCHAR(30) PRIMARY KEY,
  3.   webpage VARCHAR(60),
  4.   house CHAR(6),
  5.   street VARCHAR(50),
  6.   postcode CHAR(8),
  7.   country VARCHAR(30),
  8.   email VARCHAR(50),
  9.   town VARCHAR(25)
  10. );
  11.  
  12. CREATE TABLE CD_Artist (
  13.   idNumber INT PRIMARY KEY AUTO_INCREMENT,
  14.   artistName VARCHAR(20),
  15.   bio VARCHAR(140),
  16.   email VARCHAR(50),
  17.   webpage VARCHAR(50),
  18.   dateOfBirth DATE
  19. );
  20.  
  21. CREATE TABLE CD_CD (
  22.   catalogNo INT PRIMARY KEY,
  23.   title VARCHAR(20) NOT NULL,
  24.   publicationDate DATE,
  25.   releasedBy VARCHAR(30) NOT NULL,
  26.   original INT,
  27.   isFrontedBy INT,
  28.   FOREIGN KEY (releasedBy) REFERENCES CD_RecordLabel(labelName),
  29.   FOREIGN KEY (original) REFERENCES CD_CD(catalogNo),
  30.   FOREIGN KEY (isFrontedBy) REFERENCES CD_Artist(idNumber)
  31. );
  32.  
  33. CREATE TABLE CD_Genre (
  34.   genre VARCHAR(25) NOT NULL,
  35.   catalogNo INT NOT NULL,
  36.   PRIMARY KEY (genre, catalogNo),
  37.   FOREIGN KEY (catalogNo) REFERENCES CD_CD(catalogNo) ON DELETE CASCADE
  38. );
  39.  
  40. CREATE TABLE CD_Track (
  41.   trackNo INT AUTO_INCREMENT,
  42.   cdNo INT NOT NULL,
  43.   trackTitle VARCHAR(25) NOT NULL,
  44.   PRIMARY KEY (trackNo, cdNo),
  45.   FOREIGN KEY (cdNo) REFERENCES CD_CD(catalogNo)
  46. );
  47.  
  48. CREATE TABLE CD_Performs (
  49.   artistId INT NOT NULL,
  50.   trackNo INT NOT NULL,
  51.   cdNo INT NOT NULL,
  52.   PRIMARY KEY (artistId, trackNo, cdNo),
  53.   FOREIGN KEY (artistId) REFERENCES CD_Artist(idNumber),
  54.   FOREIGN KEY (trackNo, cdNo) REFERENCES CD_Track(trackNo, cdNo)
  55. );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement