13. Database Modifications

2021. 5. 22. 17:52Computer Sciences/Database

Insertion

문법

INSERT INTO R VALUES (v1, v2, ..., vn);

예제

StarsIn(movieTitle, movieYear, starName) Movie(TITLE, YEAR, length, inColor, studioName, producerCNo)
// INSERT 문은 기본적으로 테이블의 속성 순서대로 삽입됨
INSERT INTO StarsIn
VALUES ('The Maltese Falcon', 1942, 'Sydney Greenstreet');

// SELECT 문에서는 NULL을 사용할 수 없었지만 INSERT문에서는 NULL 가능
INSERT INTO Movie VALUES ('Star Wars', 1997, 121, 'T', 'Fox', NULL);

// DEFAULT로 값을 지정하면 미리 지정해둔 DEFAULT 값으로 삽입됨
INSERT INTO Movie VALUES ('Star Wars E5', 1980, 124, 'T', DEFAULT, 101);

// 테이블의 속성을 직접 지정하여 삽입할 수도 있음
// 나타내지 않은 속성의 값은 NULL로 삽입됨
INSERT INTO StarsIn(movieTitle, movieYear)
VALUES ('The Maltese Falcon', 1942),
       ('Big Fish', 2003), 
       ('Inception', 2010);

// 조회한 값을 바로 삽입할 수 있음
INSERT INTO Studio(name)
	SELECT DISTINCT studioName
	FROM Movie
	WHERE studioName
	NOT IN (SELECT name FROM Studio);

상수 테이블: VALUES

문법

VALUES ( expression[,...]) [,...]

예제

// 상수 테이블 생성 VALUES (1, 'one'), (2, 'two'), (3, 'three');
// VALUES를 통해 생성한 상수 테이블을 tb1(num, letter)로 alias를 준 뒤
// 모든 튜플을 조회하는 질의
SELECT * FROM (VALUES (1, 'one'), (2, 'two'), (3, 'three')) AS tb1(num, letter);

Deletion

문법

DELETE FROM R WHERE <condition>;

예제

// StarsIn의 조건에 부합하는 튜플 삭제
DELETE FROM StarsIn 
WHERE movieTitle = 'The Maltee Falcon'
    AND movieYear = 1942
    AND starName = 'Sydney Greenstreet';
    
// StarsIn 테이블의 모든 튜플 삭제
DELETE FROM StarsIn; 

Updates

문법

UPDATE R SET <value assignment> WHERE <condition>;

예제

// MovieExec에서 certNo가 Studio의 presCNo에 존재하면
// 'Pres. + 기존 name' 으로 갱신하는 질의
UPDATE MovieExec
SET name = 'Pres.' || name
WHERE certNo IN (SELECT presCNo FROM Stduio);

 

'Computer Sciences > Database' 카테고리의 다른 글

15. Index and View  (0) 2021.05.23
14. Transaction  (0) 2021.05.22
12. Aggregation and window function  (0) 2021.05.16
11. Set and Subquery  (0) 2021.05.16
10. Join  (0) 2021.05.16