삽입문은 기본 테이블에 새로운 튜플을 삽입할 때 사용한다.
INSERT INTO 테이블명 ([속성명1, 속성명2, ... ])
VALUES (데이터1, 데이터2, ... );
💡 예제1 <사원> 테이블에 (이름-홍승현, 부서-인터넷)을 삽입하시오.
INSERT INTO 사원(이름,부서) VALUES ('홍승현','인터넷')
💡 예제2 <사원> 테이블에 (장보고, 기획, 05/03/73, 홍제동, 90)을 삽입하시오.
INSERT INTO 사원 VALUES ('장보고', '기획', #05/03/73#, '홍제동', 90);
삭제문은 기본 테이블에 있는 튜플들 중에서 특정 튜플(행)을 삭제할 때 사용한다.
DELETE
FROM 테이블명
[WHERE 조건];
💡 예제1 <사원> 테이블에서 "임꺽정"에 대한 튜플을 삭제하시오.
DELETE
FROM 사원
WHERE 이름="임꺽정";
💡 예제2 <사원> 테이블에서 "인터넷" 부서에 대한 모든 튜플을 삭제하시오.
DELETE
FROM 사원
WHERE 부서="인터넷";
💡 예제3 <사원> 테이블의 모든 레코드를 삭제하시오.
DELETE
FROM 사원;
갱신문은 기본 테이블에 있는 튜플들 중에서 특정 튜플의 내용을 변경할 때 사용한다.
UPDATE 테이블명
SET 속성명=데이터 [, 속성명=데이터, ... ][**WHERE** 조건];
💡 예제1 <사원> 테이블에서 "홍길동"의 주소를 "수색동"으로 수정하시오.
UPDATE 사원
SET 주소="수색동"
WHERE 이름="홍길동";
💡 예제2 <사원> 테이블에서 "황진이"의 부서를 "기획부"로 변경하고 기본급을 5만원 인상시키시오.
UPDATE 사원
SET 부서="기획부", 기본급=기본급+5
WHERE 이름="황진이";
SELECT [PREDICATE][테이블명.]속성명 [AS 별칭], [테이블명.]속성명, ...]
FROM 테이블명 [, 테이블명, ...][WHERE 조건]
[ORDER BY 속성명 [ASC|DESC]];
PREDICATE
SELECT 절에 원하는 속성을 지정하여 검색한다.
💡 예제1 <사원> 테이블의 모든 튜플을 검색하시오.
SELECT * FROM 사원;
SELECT 사원.* FROM 사원;
SELECT 이름, 부서, 생일, 주소, 기본급 FROM 사원;
SELECT 사원.이름, 사원.부서, 사원.생일, 사원.주소, 사원.기본급 FROM 사원;
💡 예제2 <사원> 테이블에서 '주소'만 검색하되 같은 '주소'는 한 번만 출력하시오.
SELECT DISTINCT 주소
FROM 사원;
💡 예제3 <사원> 테이블에서 '기본급'에 특별수당 10을 더한 월급을 "XX부서의 XXX의 월급 XXX" 형태로 출력하시오.
SELECT 부서+'부서의' AS 부서2, 이름+'의 월급' AS 이름2, 기본급 + 10 AS 기본급2
FROM 사원;
WHERE 절에 조건을 지정하여 조건에 만족하는 튜플만 검색한다.
💡 예제1 <사원> 테이블에서 '기획'부의 모든 튜플을 검색하시오.
SELECT *
FROM 사원
WHERE 부서='기획';
💡 예제2 <사원> 테이블에서 "기획" 부서에 근무하면서 "대흥동"에 사는 사람의 튜플을 검색하시오.
SELECT *
FROM 사원
WHERE 부서='기획' AND 주소='대흥동';
💡 예제3 <사원> 테이블에서 '부서'가 "기획" 이거나 "인터넷" 인 튜플을 검색하시오.
SELECT *
FROM 사원
WHERE 부서='기획' OR 부서='인터넷';
SELECT *
FROM 사원
WHERE 부서 IN ('기획','인터넷');
💡 예제4 <사원> 테이블에서 성이 '김'인 사람의 튜플을 검색하시오.
SELECT *
FROM 사원
WHERE 이름 LIKE "김%";
💡 예제5 <사원> 테이블에서 '생일'이 '01/01/69'에서 '12/31/73' 사이인 튜플을 검색하시오.
SELECT *
FROM 사원
WHERE 생일 BETWEEN #01/01/69# AND #12/31/73#;
💡 예제6 <사원> 테이블에서 '주소'가 NULL인 튜플을 검색하시오.
SELECT *
FROM 사원
WHERE 주소 IS NULL;
ORDER BY 절에 특정 속성을 지정하여 지정된 속성으로 자료를 정렬하여 검색한다.
💡 예제1 <사원> 테이블에서 '주소'를 기준으로 내림차순 정렬시켜 상위 튜플만 검색하시오.
SELECT TOP 2 *
FROM 사원
ORDER BY 주소 DESC;
💡 예제2 <사원> 테이블에서 '부서'를 기준으로 오름차순으로 정렬하고, 같은 '부서'에 대해서는 '이름'을 기준으로 내림차순 정렬시켜서 검색하시오.
SELECT *
FROM 사원
ORDER BY 부서 ASC, 이름 DESC;
하위 질의는 조건절에 주어진 질의를 먼저 수행하여 그 검색 결과를 조건절의 피연산자로 사용한다.
💡 예제1 '취미'가 '댄스스포츠'인 사원의 '이름과 '주소'를 검색하시오.
SELECT 이름, 주소
FROM 사원
WHERE 이름 = (SELECT 이름 FROM 여가활동 WHERE 취미='댄스스포츠');
💡 예제2 취미활동을 하지 않는 사원들을 검색하시오.
SELECT *
FROM 사원
WHERE 이름 NOT IN (SELECT 이름 FROM 여가활동);
💡 예제3 취미활동을 하는 사원들의 부서를 검색하시오.
SELECT 부서
FROM 사원
WHERE EXISTS (SELECT 이름 FROM 여가활동 WHERE 여가활동.이름 = 사원.이름);
여러 테이블을 대상으로 검색을 수행한다.
💡 예제 '경력'이 10년 이상인 사원의 '이름','부서','취미','경력'을 검색하시오.
SELECT 사원.이름, 사원.부서, 여가활동.취미, 여가활동.경력
FROM 사원, 여가활동
WHERE 여가활동.경력 >= 10 AND 사원.이름=여가활동.이름;