반응형
[출처] 2020 시나공 기본서 정보처리산업기사 실기
1. SELECT
SELECT [PREDICATE][테이블명.]속성명[ AS 별칭][, [테이블명.]속성명, ···] FROM 테이블명[, 테이블명, ···] [WHERE 조건] [GROUP BY 속성명[, 속성명, ···]] [HAVING 조건] [ORDER BY 속성명 [ASC | DESC][, 속성명[ASC | DESC], ···]];
- SELECT절
- PREDICATE : 검색할 튜플을 제한할 목적으로 사용되는 조건으로 ALL, DISTINCT, DISTINCTROW 등 올 수 있음
- ALL : 모든 튜플들을 검색, 기본값
- DISTINCT : 중복된 튜플을 제거
- DISTINCTROW : 중복된 튜플을 제거하나, 선택된 속성의 값이 아닌 튜플의 전체 값을 대상으로 할 때 사용
- 속성명 : 검색하여 불러올 속성 또는 수식, 2개 이상의 테이블 대상으로 검색할 때 '테이블명.속성명'으로 사용
- AS : 속성 및 연산의 이름을 다른 제목으로 표시, AS 생략하고 별칭만 사용 가능 (별칭 ALIAS)
- PREDICATE : 검색할 튜플을 제한할 목적으로 사용되는 조건으로 ALL, DISTINCT, DISTINCTROW 등 올 수 있음
- FROM절 : 검색할 데이터가 있는 테이블명
- WHERE절 : 검색할 조건 기술
- 조건 연산자
비교 연산자: = <> > < >= <=
논리 연산자: NOT AND OR
LIKE 연산자: '%'모든 문자를 대표 / '_'문자 하나를 대표 / '#'숫자 하나를 대표 - 그룹함수
COUNT(속성명) : 그룹별 튜플 수를 구하는 함수
MAX(속성명) : 그룹별 최대값을 구하는 함수
MIN(속성명) : 그룹별 최소값 구하는 함수
SUM(속성명) : 그룹별 합계를 구하는 함수
AVG(속성명) : 그룹별 평균을 구하는 함수
- 조건 연산자
- GROUP BY절 : 특정 속성을 기준으로 그룹화하여 검색할 때 사용. 일반적으로 그룹함수와 같이 사용됨
- HAVING절 : 그룹에 대한 조건 기술
- ORDER BY절 : 특정 속성 정렬
- 속성명 : 정렬의 기준이 되는 속성명 기술
- ASC : 오름차순
- DESC : 내림차순
2. 하위 질의
SELECT 이름, 주소 FROM 사원 WHERE 이름 IN (SELECT 이름 FROM 여가활동 WHERE 취미='나이트댄스');
3. 복수 테이블 검색
SELECT A.이름, A.부서, B.취미, B.검색 FROM 사원 A, 여가활동 B WHERE B.경력 >= 10 AND A.이름 = B.이름
4. 통합(UNION) 질의
UNION은 일반 집합이론에서의 합집합과 같습니다. 두 테이블을 합치면 두 테이블에 속해 있는 튜플은 중복이 제거되어 1개만 표시됩니다.
SELECT * FROM 임원 UNION SELECT * FROM 직원;
5. JOIN
JOIN(조인)은 2개의 테이블에 대해 연관된 튜플들을 결합하여, 하나의 새로운 릴레이션 반환
종류 : INNER JOIN, OUTER JOIN
- INNER JOIN
- EQUI 조인
-WHERE절을 이용한 EQUI JOIN SELECT 학번, 이름, 학생, 학과코드, 학과명 FROM 학생, 학과 WHERE 학생.학과코드 = 학과.학과코드; -NATURAL JOIN절을 이용한 EQUI JOIN : JOIN 조건이 '='일 때 동일한 속성이 두 번 나타나게 되는데, 이 중 중복된 속성을 제거하여 같은 속성을 한 번만 표기하는 방법 SELECT 학번, 이름, 학생, 학과코드, 학과명 FROM 학생 NATURAL JOIN 학과; -JOIN ~ USING절을 이용한 EQUI JOIN SELECT 학번, 이름, 학생, 학과코드, 학과명 FROM 학생 JOIN 학과 USING(학과코드);
- NON-EQUI 조인
JOIN조건에 '=' 조건이 아닌 나머지 비교 연산자 > < <> >= <= 를 사용하는 방법SELECT 학번, 이름, 성적, 등급 FROM 학생, 성적등급 WHERE 학생.성적 BETWEEN 성적등급.최저 AND 성적등급.최고;
- EQUI 조인
- OUTER JOIN
LEFT OUTER JOIN : INNER JOIN의 결과를 구한 후, 어떤 튜플과도 맞지 않는 좌측 항의 튜플들에 NULL값을 붙여 반환 SELECT [테이블명1.]속성명, [테이블명2.]속성명, ··· FROM 테이블명1 LEFT OUTER JOIN 테이블명2 ON 테이블명1.속성명 = 테이블명2.속성명; SELLECT [테이블명1.]속성명, [테이블명2.]속성명, ··· FROM 테이블명1, 테이블명2 WHERE 테이블명1.속성명 = 테이블명2.속성명(+); RIGHT OUTER JOIN : INNER JOIN의 결과를 구한 후, 어떤 튜플과도 맞지 않는 우측 항의 튜플들에 NULL값을 붙여 반환 SELECT [테이블명1.]속성명, [테이블명2.]속성명, ··· FROM 테이블명1 RIGHT OUTER JOIN 테이블명2 ON 테이블명1.속성명 = 테이블명2.속성명; SELLECT [테이블명1.]속성명, [테이블명2.]속성명, ··· FROM 테이블명1, 테이블명2 WHERE 테이블명1.속성명(+) = 테이블명2.속성명; FULL OUTER JOIN : LEFT OUTER JOIN과 RIGHT OUTER JOIN을 합쳐 놓은 것 SELECT [테이블명1.]속성명, [테이블명2.]속성명, ··· FROM 테이블명1 FULL OUTER JOIN 테이블명2 ON 테이블명1.속성명 = 테이블명2.속성명;
- SELF JOIN
같은 테이블에서 2개의 속성을 연결하여 JOIN 하는 방법 SELECT A.학번, A.이름, B.이름 AS 선배 FROM 학생 A JOIN 학생 B ON A.선배 = B.학번; SELECT A.학번, A.이름, B.이름 AS 선배 FROM 학생 A, 학생 B WHERE A.선배 = B.학번;
반응형
'정보처리산업기사_실기_기록용' 카테고리의 다른 글
[데이터베이스] SQL - DML(DELETE & UPDATE) (0) | 2021.10.04 |
---|---|
[데이터베이스] SQL - DML(INSERT) (0) | 2021.10.04 |
[데이터베이스] SQL - DDL (0) | 2021.09.24 |
[데이터베이스] 관계대수 (0) | 2021.09.24 |
[데이터베이스] 관계형 데이터베이스 (0) | 2021.09.23 |