CP363 : SQL Table Creation Examples

CREATE TABLE member (
  member_id SMALLINT NOT NULL PRIMARY KEY
  GENERATED ALWAYS AS IDENTITY ( START WITH 1, INCREMENT BY 1 ),
  Last_Name VARCHAR(25) NOT NULL,
  First_Name VARCHAR(25) NOT NULL,
  Gender CHAR(1),
  Address VARCHAR( 500 ) NOT NULL,
  Postal_Code CHAR(7) NOT NULL,
  CONSTRAINT GenderChk CHECK( Gender IN ( 'M', 'F' ) )
)

CREATE TABLE pub (
  pub_ID INT NOT NULL PRIMARY KEY
  GENERATED ALWAYS AS IDENTITY ( START WITH 1, INCREMENT BY 1 ),
  member_id SMALLINT,
  Title VARCHAR(40) NOT NULL,
  Journal VARCHAR(40),
  Publisher VARCHAR(50) NOT NULL,
  Price DECIMAL( 5, 2 ),
  FOREIGN KEY ( member_id )
    REFERENCES member ( member_id )
    ON DELETE CASCADE
)

CREATE TABLE Borrowed (
  pub_ID INTEGER NOT NULL,
  Date_Borrowed DATE NOT NULL DEFAULT CURRENT DATE,
  Date_Returned DATE,
  PRIMARY KEY ( pub_ID, Date_Borrowed ),
  CHECK( Date_Returned >= Date_Borrowed ),
  FOREIGN KEY ( pub_ID )
    REFERENCES pub ( pub_ID )
)