정보처리기사 필기 요약 3과목 데이터 베이스 구축 - 3장 SQL 응용
SECTION 106 SQL의 개념
(2) SQL의 분류
1. DDL(Data Define Language, 데이터 정의어)
데이터베이스 관리자(DBA)가 사용
CREATE, ALTER, DROP
2. DML(Data Manipulation Language, 데이터 조작어)
DML(데이터 조작어)의 네 가지 유형
명령어 | 기능 |
SELECT | 튜플을 검색 |
INSERT | 튜플을 삽입 |
DELETE | 튜플을 삭제 |
UPDATE | 튜플의 내용을 변경 |
3. DCL(Data Control Language, 데이터 제어어)
데이터베이스 관리자가 사용
명령어 | 기능 |
COMMIT | 디스크로 저장, 작업이 정상적으로 완료되었음을 관리자에게 알려준다. |
ROLLBACK | 비정상적으로 종료되었을 때 원래의 상태로 복구한다. |
GRANT | 사용 권한을 부여한다. |
REVOKE | 사용 권한을 취소한다. |
SECTION 107 DDL
(7) ALTER TABLE
테이블에 대한 정의를 변경
ALTER TABLE 테이블명 ADD 속성명 데이터_타입 [DEFAULT '기본값]; ALTER TABLE 테이블명 ALTER 속성명 [SET DEFAULT '기본값']; ALTER TABLE 테이블명 DROP COLUMN 속성명 [CASCADE]; |
ADD : 새로운 속성(열)을 추가할 때 사용한다.
ALTER : 특정 속성의 Default 값을 변경할 때 사용한다.
DROP COLUMN : 특정 속성을 삭제할 때 사용한다.
(ALTER) TABLE 학생 (ADD) 학년 VARCHAR(3); (ALTER) TABLE 학생 (ALTER) 학번 VARCHAR(10) NOT NULL; |
(8) DROP
CASCAE : 참조하는 다른 모든 개체를 함께 제거한다. 외래키와 관계를 맺고 있는 모든 데이터를 제거하는 참조 무결성 제약 조건
RESTRICT : 다른 개체가 제거할 요소를 참조중일 때는 제거를 취소.
SECTION 108 DCL
(1) DCL(Data Control Language, 데이터 제이어)의 개념
DCL은 데이터의 보안, 무결성, 회복, 병행 제어 들을 정의하는데 사용하는 언어이다.
DCL은 데이터베이스 관리자(DBA)가 데이터 관리를 목적으로 사용한다.
DCL에는 GRANT, REVOKE, COMMIT, ROLLBACK, SAVEPOINT -> Rollback 시점 등이 있다.
(2) GRANT / REVOKE
데이터베이스 관리자가 데이터베이스 사용자에게 권한을 부여하거나 취소하기 위한 명령어.
권한 종류 : ALL, SELECT, INSERT, DELETE, UPDATE, ALTER 등
예제3) 사용자 ID가 "NABI"인 사람에게 <고객> 테이블에 대한 모든 권한과 다른 사람에게 권한을 부여할 수 있는 권한까지 부여하는 SQL문을 작성하시오.
GRANT ALL ON 고객 TO NABI WITH GRANT OPTION; |
예제4) 사용자 ID가 "STAR"인 사람에게 부여한 <고객> 테이블에 대한 권한 중 UPDATE 권한을 다른 사람에게 부여할 수 있는 권한만 취소하는 SQL문을 작성하시오.
REVOKE GRANT OPTION FOR UPDATE ON 고객 FROM STAR; |
(3) COMMIT
변경된 모든 내용을 데이터베이스에 반영 이때 사용하는 명령이 COMMIT이다.
DML이 실패하면 자동으로 ROLLBACK이 되도록 AUTO Commit기능을 설정할 수 있다.
(4) ROLLBACK
아직 COMMIT 되지 않은 모든 내용들을 취소하고 데이터베이스를 이전 상태로 되돌리는 명령어이다.
SECTION 109 DML
(1) DML(Data Manipulation Language, 데이터 조작어)의 개념
명령문 | 기능 |
SELECT | 튜플을 검색 |
INSERT | 튜플을 삽입 |
DELETE | 튜플을 삭제 |
UPDATE | 튜플의 내용을 갱신 |
(2) 삽입문
예제1) <사원> 테이블에 (이름 - 홍승현, 부서 - 인터넷)을 삽입하시오.
INSERT INTO 사원(이름, 부서) VALUES ('홍승현', 인터넷); |
예제2) <사원> 테이블에 (장보고, 기획, 05/03/73, 홍제동, 90)을 삽입하시오.
INSERT INTO 사원 VALUES('장보고', '기획', #05/03/73#, '홍제동', 90); |
예제3) 사원 테이블에 있는 편집부의 모든 튜플을 편집부원(이름, 생일, 주소, 기본급) 테이블에 삽입하시오.
INSERT INTO 편집부원(이름, 생일, 주소, 기본급) SELECT 이름, 생일, 주소, 기본급 FROM 사원 WHERE 부서 = '편집'; |
(3) 삭제문(DELETE FROM~)
ex) <사원> 테이블에서 "임꺽정"에 대한 튜플을 삭제하시오.
DELETE FROM 사원 WHERE 이름='임꺽정'; |
(4) 갱신문
ex) <사원> 테이블에서 "황진이"의 '부서'를 "기획부"로 변경하고 '기본급'을 5만원 인상시키시오.
UPDATE 사원 SET 부서 = '기획', 기본급 = 기본급 +5 WHERE 이름 = '황진이'; |
SECTION 110 DML -SELECT-1
(1) 일반 형식
DISTINCT : 중복된 튜플이 있으면 그 중 첫번째 한 개만 검색한다.
ORDER BY절 : 특정 속성을 기준으로 정렬하여 검색할 때 사용한다.
-[ASC | DESC]: 정렬 방식으로 'ASC'는 오름차순, 'DESC'는 내림차순이다. 생략하면 오름차순으로 정렬한다.
(3) 조건 지정 검색
ex1) <사원> 테이블에서 '기획'부의 모든 튜플을 검색하시오.
SELECT * FROM 사원 WHERE 부서='기획'; |
ex2) <사원> 테이블에서 "기획" 부서에 근무하면서 "대흥동"에 사는 사람의 튜플을 검색하시오.
SELECT * FROM 사원 WHERE 부서 = '기획' AND 주소 = '대흥동'; |
(5) 하위 질의
하위 질의는 조건절에 주어진 질의를 먼저 수행하여 그 검색 결과를 조건절의 피연산자로 사용한다.
ex1) '취미'가 "나이트댄스"인 사원의 '이름'과 '주소'를 검색하시오.
SELECT 이름, 주소 FROM 사원 WHERE 이름 = (SELECT 이름 FROM 여가활동 WHERE 취미='나이트댄스'); |
ex3) 취미활동을 하는 사원들의 부서를 검색하시오.
SELECT 부서 FROM 사원 WHERE EXISTS (SELECT 이름 FROM 여가활동 WHERE 여가활동.이름 = 사원.이름); |
SECTION 112 DML - JOIN
(1) JOIN의 개념
JOIN(조인) 2개의 테이블에 대해 연관된 튜플들을 결합하여, 하나의 새로운 릴레이션을 반환한다.
INNER JOIN OUTER JOIN
'자격증 > 정보처리기사 필기' 카테고리의 다른 글
정보처리기사 필기 요약 1과목 소프트웨어 설계 - 2장 화면 설계 (0) | 2021.07.28 |
---|---|
정보처리기사 필기 요약 1과목 소프트웨어 설계 - 1장 요구사항 확인 (0) | 2021.07.28 |
정보처리기사 필기 요약 3과목 데이터 베이스 구축 - 4장 SQL 활용 (0) | 2021.07.28 |
정보처리기사 필기 요약 3과목 데이터 베이스 구축 - 2장 물리 데이터베이스 설계 (0) | 2021.07.25 |
정보처리기사 필기 요약 3과목 데이터 베이스 구축 - 1장 논리 데이터베이스 설계 (0) | 2021.07.21 |