CREATE INDEX
- 인덱스를 정의하는 명령문
- UNIQUE
- 사용된 경우: 중복 값이 없는 속성으로 인덱스를 생성
- 생략된 경우: 중복 값을 허용하는 속성으로 인덱스를 생성
- 정렬 여부 지정
- ASC: 오름차순 정렬 ➡️ Default 값
- DESC: 내림차순 정렬
CREATE [UNIQUE] INDEX 인덱스명
ON 테이블명(속성명 [ASD | DESC][,속성명 [ASD | DESC]])
[CLUSTER];
ALTER TABLE
- 테이블에 대한 정의 변경하는 명령문
- ADD: 새로운 열 추가
- ALTER: 특정 속성의 Default 값 변경
- DROP COLUMN: 특정 열 삭제
ALTER TABLE 테이블명 ADD 속성명 데이터_타입 [DEFAULT '기본값'];
ALTER TABLE 테이블명 ALTER 속성명 [SET DEFAULT '기본값'];
ALTER TABLE 테이블명 DROP COLUMN 속성명 [CASCADE];
DROP
- 스키마, 도메인, 기본 테이블, 뷰 테이블, 인덱스, 제약 조건 등을 제거하는 명령문
- CASCADE: 제거할 요소를 참조하는 다른 모든 개체를 함께 제거
- RESTRICT: 다른 개체가 제거할 요소를 참조중일 때는 제거를 취소
DROP SCHEMA 스키마명 [CASCADE | RESTRICT];
DROP DOMAIN 도메인명 [CASCADE | RESTRICT];
DROP TABLE 테이블명 [CASCADE | RESTRICT];
DROP VIEW 뷰명 [CASCADE | RESTRICT];
DROP INEX 인덱스명 [CASCADE | RESTRICT];
DROP CONSTRAINT 제약조건명;
DML (데이터 조작어)
- 삽입문 (INSERT INTO~)
INSERT INTO 테이블명([속성명1, 속성명2, ...])
VALUES (데이터1, 데이터2, ...);
ex) <사원> 테이블에 (이름:홍승현, 부서:인터넷) 삽입
INSERT INTO 사원(이름, 부서) VALUES ('홍승현', '인터넷');
- 삭제문 (DELETE FROM~)
- 모든 레코드 삭제해도 테이블 구조는 남아있기 때문에 테이블 완전히 제거하는 DROP 과는 다름
DELETE FROM 테이블명 [WHERE 조건];
ex) <사원> 테이블에서 '임꺽정'에 대한 튜플 삭제
DELETE FROM 사원 WHERE 이름 = '임꺽정';
- 갱신문 (UPDATE~ SET~)
UPDATE 테이블명
SET 속성명 = 데이터[, 속성명=데이터, ...]
[WHERE 조건];
ex) <사원> 테이블에서 '황진이'의 부서를 '기획부'로 변경하고 '기본급'을 5만원 인상
UPDATE 사원
SET 부서 = '기획', 기본급 = 기본급 + 5
WHERE 이름 = '황진이';
- SELECT
- PREDICATE: 검색한 튜플 수를 제한하는 명령어
- DISTINCT: 중복된 튜플이 있을 경우 첫 번째만 표시
- 속성명: 검색하여 불러올 속성 또는 속성을 이용한 수식을 지정
- AS: 속성이나 연산의 이름을 다른 이름으로 표시하기 위해 사용
- PREDICATE: 검색한 튜플 수를 제한하는 명령어
SELECT [PREDICATE] [테이블명.]속성명 [AS 별칭][, [테이블명.]속성명, ...]
기본 검색
- SELECT 절 이용
ex) <사원> 테이블의 모든 튜플 검색
SELECT * FROM 사원;
ex) <사원> 테이블에서 주소를 검색하되 같은 주소는 한번만 출력
SLECT DISTINCT 주소 FROM 사원
조건 지정 검색
- WHERE 절 이용
- 비교 연산자
- =, <> (같지 않다), >, <, >=, <=
- 논리 연산자
- NOT, AND, OR
- LIKE 연산자
- 대표 무자를 이용해 지정된 속성의 값이 문자 패턴과 일치하는 튜플을 검색
- % ➡️ 모든 문자 대표
- _ ➡️ 문자 하나 대표
- # ➡️ 숫자 하나 대표
- IN 연산자
- 필드의 값이 IN 연산자의 수로 지정된 값과 같은 레코드만 검색하여, OR 연산을 수행한 결과와 같음
정렬 검색
- ORDER BY 절 이용
- ASC: 오름차순 ➡️ Default 값
- DESC: 내림차순
하위 질의
- 조건절에 주어진 질의를 먼저 수행해 그 검색 결과를 조건절의 피연산자로 사용
- ALL ( )는 하위 질의로 검색된 범위를 기본 질의의 조건으로 사용
ex) 취미가 나이트댄스인 사원의 이름과 주소 검색
SELECT 이름, 주소
FROM 사원
WHERE 이름 = (SELECT 이름 FROM 여가활동 WHERE 취미 = '나이트댄스');
ex) 망원동에 거주하는 사원들의 기본급보다 적은 기본급 받는 사원의 정보 검색
SELECT 이름, 기본급, 주소
FROM 사원
WHERE 기본급 < ALL (SELECT 기본급 FROM 사원 WHERE 주소 = '망원동');
그룹 함수
- COUNT( ) ➡️ 그룹별 튜플 수
- SUM
- AVG
- MAX
- MIN
- STDDEV( ) ➡️ 그룹별 표준편차
- VARIANCE( ) ➡️ 그룹별 분산
그룹 지정 검색
- GROUP BY 절 이용
ex) 상여금 테이블에서 상여금이 100 이상인 사원이 2명 이사인 부서의 튜플 수
SELECT 부서, COUNT(*) AS 사원수
FROM 상여금
WHERE 상여금 >= 100
GROUP BY 부서
HAVING COUNT(*) >= 2;
집합 연산자 이용한 통합 질의
- UNION ➡️ 합집합
- 중복된 행은 한 번만 출력
- UNION ALL ➡️ 합집합
- 중복된 행도 여러번 출력
- INTERSECT ➡️ 교집합
- 공통된 행만 출력
- EXCEPT ➡️ 차집합
- 첫 번째 SELECT문에서 두 번째 SELECT문의 결과를 제외한 행 출력
EQUI JOIN (동등 조인)
- THETA JOIN: 두 릴레이션의 속성 값을 비교하여 조건 만족하는 튜플만 반환
- 조건에는 =, !=, <, <=, >, >=가 있음
- EQUI (동등) JOIN: = 비교에 의해 같은 값을 가지는 행을 연결하여 결과를 생성
- NATURAL JOIN: 중복된 속성을 제거하여 같은 속성을 한 번만 표기
OUTER JOIN
- LEFT OUTER JOIN: INNER JOIN의 결과에서 우측 항 릴레이션의 어떤 튜플과도 맞지 않는 좌측 항의 릴레이션에 있는 튜플들에 NULL 값을 붙여 추가
- RIGHT OUER JOIN: 반대
'공부 > 정보처리기사' 카테고리의 다른 글
10장 프로그래밍 언어 활용 (0) | 2025.07.08 |
---|---|
9장 소프트웨어 개발 보안 구축 (공격, 보안) (1) | 2025.07.08 |
7장 애플리케이션 테스트 관리 (화이트박스, 블랙박스) (1) | 2025.07.03 |
6장 화면 설계 (0) | 2025.07.03 |
5장 인터페이스 구현 (0) | 2025.07.03 |