CONSTRAINT ???

CONSTRAINT?????????CREATE TABLE ??????ALTER TABLE ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????????????????????????????????
  • ?????????????????????

    ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????(?????????????????????????????????????????????)??????????????????????????????????????????????????????

  • ?????????????????????

    ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????0?????????????????????????????????

???????????????????????????????????????
  • NOT NULL

    ??????????????????NULL??????????????????????????????????????????(????????????????????????????????????????????????????????????????????????)

  • PRIMARY KEY

    ??????????????????????????????????????????????????????????????????????????????????????????NOT NULL?????????????????????????????????????????????

    ???: ALTER TABLE????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ALTER TABLE ?????????????????????????????????
  • UNIQUE

    ??????????????????????????????????????????????????????????????????NULL????????????????????????

  • FOREIGN KEY

    ???????????????????????????????????????????????????????????????NULL??????????????????????????????????????????????????????

  • CHECK

    ???????????????????????????????????????

???????????????????????????????????????
  • PRIMARY KEY

    ???????????????????????????????????????????????????????????????????????????????????????NULL????????????????????????

  • UNIQUE

    ?????????????????????????????????????????????????????????NOT NULL?????????????????????????????????????????????

  • FOREIGN KEY

    ????????????????????????????????????????????????????????????NULL??????????????????????????????????????????????????????

    ???: ?????????????????????????????????????????????????????????????????????????????????NULL????????????????????????NULL????????????????????????NULL???????????????????????????????????????????????????????????????????????????????????????
  • CHECK

    ???????????????????????????????????????????????????????????????

????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????PRIMARY KEY???UNIQUE???CHECK???FOREIGN KEY?????????????????????????????????????????????????????????(??????????????????????????????)?????????????????????????????????????????????????????????

??????

???????????????????????????

????????????????????????????????????????????????????????????????????????????????????

???????????????????????????????????????????????????????????????????????????????????????NULL?????????????????????????????????????????????????????????NULL????????????????????????????????????????????????

???????????????NOT NULL????????????????????????????????????????????????ALTER TABLE ADD PRIMARY KEY ????????????????????????????????????????????????????????????NULL????????????????????????????????????NULL????????????????????????????????????????????????????????????????????????????????????????????????ALTER TABLE ?????????????????????????????????

?????????PRIMARY KEY?????????????????????????????????????????????????????????????????????UNIQUE?????????????????????????????????????????????

??????????????????

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????(??????????????????????????????????????????????????????????????????????????????????????????????????????????????????)?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

????????????(??????????????????????????????????????????)???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????(??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????)

?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????NULL???????????????????????????????????????NULL????????????????????????
???: SQL-92??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????NOT NULL????????????????????????????????????

?????????????????????DML

?????????????????????????????????????????????????????????????????????????????????????????????????????????Derby???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?????????????????????????????????????????????Derby??????????????????????????????????????????????????????????????????

?????????????????????(??????????????????????????????????????????????????????????????????????????????)????????????????????????????????????????????????????????????Derby???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????Derby???????????????????????????

Derby???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

??????????????????

UNIQUE???PRIMARY KEY???FOREIGN KEY??????????????????????????????????????????????????????????????????????????????????????????(????????????????????????????????????????????????????????????) UNIQUE?????????PRIMARY KEY??????????????????????????????????????????FOREIGN KEY??????????????????????????????????????????????????????????????????????????????????????????UNIQUE?????????PRIMARY KEY?????????FOREIGN KEY???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????Derby?????????????????????????????????????????????????????????????????????????????????????????????

????????????????????????????????????????????????????????????????????????????????????????????????????????????(CREATE INDEX ?????????????????????????????????)??????????????????????????????????????????????????????????????????????????????????????????

???????????????DROP INDEX??????????????????????????????????????????????????????????????????????????????????????????????????????

??????????????????

????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????(???????????????????????????)???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????INSERT???UPDATE??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

?????????????????????

????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?????????????????????????????????????????????????????????????????????CREATE TABLE??????????????????????????????????????????????????????????????????????????????

?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
  • ???????????????????????? (?)
  • ???????????? (CURRENT_DATE???CURRENT_TIME???CURRENT_TIMESTAMP)
  • ??????????????????
  • ?????????????????? (?????????USER???SESSION_USER???CURRENT_USER)

????????????????????????

????????????????????????????????????(CASCADE???RESTRICT???SET NULL?????????NO ACTION)????????????????????????ON DELETE??????/???ON UPDATE??????????????????????????? ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

????????????????????????????????????????????????????????????????????????????????????????????????????????????

?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????NO ACTION????????????RESTRICT?????????

????????????????????????????????????????????????????????????RESTRICT?????????????????????Derby??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

????????????????????????NO ACTION?????????????????????Derby????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????NO ACTION??????????????????NO ACTION?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

????????????????????????NO ACTION???RESTRICT???CASCADE????????????SET NULL?????????SET NULL????????????????????????????????????null??????????????????????????????????????????????????????????????????

???????????????????????????

NO ACTION??????Derby??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

RESTRICT?????????Derby???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

CASCADE???????????????????????????????????????????????????(????????????????????????????????????????????????????????????)

SET NULL???????????????????????????????????????????????????????????????????????????????????????(?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????)

???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????RESTRICT???NO ACTION?????????????????????????????????????????????????????????????????? ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????RESTRICT???NO ACTION????????????????????????????????????????????????????????????

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
  • ????????????????????????RESTRICT????????????NO ACTION?????????????????????????????????????????????????????????????????????????????????????????????(?????????Derby????????????????????????????????????????????????????????????)
  • ????????????????????????SET NULL?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
  • ????????????????????????CASCADE????????????????????????????????????????????????????????????????????????????????????????????????
  • ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

???

-- OUT_TRAY_PK????????????????????????????????????????????????:
CREATE TABLE SAMP.OUT_TRAY
	(
	SENT TIMESTAMP,
	DESTINATION CHAR(8),
	SUBJECT CHAR(64) NOT NULL CONSTRAINT OUT_TRAY_PK PRIMARY KEY,
	NOTE_TEXT VARCHAR(3000) 
   );

-- ???????????????????????????????????????????????????
-- ???????????????????????????????????????
CREATE TABLE SAMP.SCHED 
	(
	CLASS_CODE CHAR(7) NOT NULL, 
	DAY SMALLINT NOT NULL, 
	STARTING TIME, 
	ENDING TIME,
	PRIMARY KEY (CLASS_CODE, DAY)
	);

-- ?????????????????????????????????????????????????????????????????????
-- ??????????????????????????????????????????????????????????????????????????????????????????
-- ???????????????
CREATE TABLE SAMP.EMP 
	(
	EMPNO CHAR(6) NOT NULL CONSTRAINT EMP_PK PRIMARY KEY,
	FIRSTNME CHAR(12) NOT NULL,
	MIDINIT vARCHAR(12) NOT NULL,
	LASTNAME VARCHAR(15) NOT NULL,
	SALARY DECIMAL(9,2) CONSTRAINT SAL_CK CHECK (SALARY >= 10000),
	BONUS DECIMAL(9,2), 
	TAX DECIMAL(9,2),
	CONSTRAINT BONUS_CK CHECK (BONUS > TAX)
	);

-- MEAL??????????????????????????????????????????????????????????????????????????????
CREATE TABLE FLIGHTS
	(
	FLIGHT_ID CHAR(6) NOT NULL ,
	SEGMENT_NUMBER INTEGER NOT NULL ,
	ORIG_AIRPORT CHAR(3),
	DEPART_TIME TIME,
	DEST_AIRPORT CHAR(3),
	ARRIVE_TIME TIME,
	MEAL CHAR(1) CONSTRAINT MEAL_CONSTRAINT 
	CHECK (MEAL IN ('B', 'L', 'D', 'S')),
	PRIMARY KEY (FLIGHT_ID, SEGMENT_NUMBER)
	);

CREATE TABLE METROPOLITAN
	(
	HOTEL_ID INT NOT NULL CONSTRAINT HOTELS_PK PRIMARY KEY,
	HOTEL_NAME VARCHAR(40) NOT NULL,
	CITY_ID INT CONSTRAINT METRO_FK REFERENCES CITIES
	);

-- ????????????????????????????????????????????????????????????????????????????????????
-- ????????????????????????
CREATE TABLE FLTAVAIL
	(
	FLIGHT_ID CHAR(6) NOT NULL, 
	SEGMENT_NUMBER INT NOT NULL, 
	FLIGHT_DATE DATE NOT NULL, 
	ECONOMY_SEATS_TAKEN INT,
	BUSINESS_SEATS_TAKEN INT,
	FIRSTCLASS_SEATS_TAKEN INT, 
	CONSTRAINT FLTAVAIL_PK PRIMARY KEY (FLIGHT_ID, SEGMENT_NUMBER), 
	CONSTRAINT FLTS_FK
	FOREIGN KEY (FLIGHT_ID, SEGMENT_NUMBER)
	REFERENCES Flights (FLIGHT_ID, SEGMENT_NUMBER)
	);
-- ????????????????????????????????????
ALTER TABLE SAMP.PROJECT 
ADD CONSTRAINT P_UC UNIQUE (PROJNAME);

-- ???????????????????????????????????????????????????
-- city_id??????Cities???????????????????????????????????????????????????
CREATE TABLE CONDOS
	(
	CONDO_ID INT NOT NULL CONSTRAINT hotels_PK PRIMARY KEY,
	CONDO_NAME VARCHAR(40) NOT NULL,
	CITY_ID INT CONSTRAINT city_foreign_key
	REFERENCES Cities ON DELETE CASCADE ON UPDATE RESTRICT
	);

??????????????????????????????

INSERT??????UPDATE???????????????????????????????????????????????????????????? DELETE??????????????????????????????????????????????????????????????????????????????????????? ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????