자격증/정보처리필기

[정보처리산업기사] 81강 SELECT - 1

동호다찌 2022. 4. 1. 13:33
반응형

1. 일반 형식

SELECT는 테이블에서 튜플을 검색

  • 표기방법
SELECT [PREDICATE] [테이블명.]속성명 [AS 별칭][, [테이블명.]속성명, ...]
  FROM 테이블명[, 테이블명, ...][, WINDOW 함수 OVER (PARTITION BY 속성명1, ...
 ORDER BY 속성명2) [AS 별칭]]
[WHERE 조건]
[GROUP BY 속성명, 속섬영, ..]
[HAVING 조건]
[ORDER BY 속성명 [ASC | DESC]];
  • PREDICATE : 불러올 튜플 수를 제한할 명령어를 기술
    • ALL : 모든 튜플 검색할 때 지정, 생략 가능
    • DISTINCT : 중복 튜플 존재 시 한개만 검색
    • DISTINCTROW : 중복 튜플 존재 시 한개만 제거하지만 튜플 전체를 대상으로 함
  • 속성명 : 검색하여 불러올 속성(열) 또는 속성을 이용한 수식을 지정
    • 기본 테이블을 구선하는 모든 속성을 불러올 때는 * 을 사용
    • AS : 속성 및 연산의 이름을 다른 제목으로 표기
  • FROM절 : 검색될 데이터들을 포함하는 테이블명 기술
  • WHERE절 : 검색할 조건을 기술
  • ORDER BY : 특정 속성을 기준으로 정렬하여 검색
    • ASC : 오름차순
    • DESC : 내림차순
  • WINDOW 함수 : GROUP BY 절을 이용하지 않고 속성의 값을 집계할 함수를 기술
    • PARTITION BY : WINDOW 함수가 적용될 범위로 사용할 속성을 지정
    • ORDER BY: PARTITION 안에서 정렬 기준으로 사용할 속성을 지정
    • ROW_NUMBER() : 각 레코드에 대한 일련번호 반환
    • RANK() : 순위를 반환하되 공동 순위를 반영
    • DENSE_RANK() : 순위를 반환하되 공동 순위를 반영하지 않음
  • GROUP BY : 특정 속성을 기준으로 그룹화하여 검색할 때 사용. 그룹 함수와 같이 사용
    • COUNT(속성명) : 그룹별 튜플 수를 구하는 함수
    • SUM(속성명) : 그룹별 합계를 구하는 함수
    • AVG(속성명) : 그룹별 평균을 구하는 함수
    • MAX(속성명) : 그룹별 최대값을 구하는 함수
    • MIN(속성명) : 그룹별 최소값을 구하는 함수
    • ROLLUP(속성명, 속성명, ...) : 인수로 주어진 속성을 대상으로 그룹별 소계를 구하는 함수
    • CUBE(속성명, 속성명, ...) : 인수로 주어진 속성을 대상으로 모든 조합의 그룹별 소계를 구하는 함수
  • HAVING : GROUP BY와 함께 사용하여 그룹에 조건을 지정

조건 연산자

비교 연산자

  • = : 같다
  • <> : 같지않다
  • : 크다
  • < : 작다
  • = : 크거나 같다
  • <= : 작거나 같다

논리 연산자

  • NOT : 아니다
  • AND : 그리고
  • OR : 또는

LIKE 연산자

  • LIKE : 대표 문자를 이용해 지정된 속성의 값이 문자 패턴과 일치하는 튜플을 검색하기 위해 사용됩니다.

연산자 우선순위

  • 산술 > 관계 > 논리 연산자 순서로 우선순위가 정해진다.

2. 기본 형식

SELECT절에 원하는 속성을 지정하여 검색한다.

  • 테이블 형식

사원 테이블에 있는 모든 튜플을 검색하는 SQL

SELECT * FROM 사원;
SELECT 사원.* FROM 사원;
SELECT 이름, 부서, 경력 FROM 사원;

사원 테이블에서 부서를 중복없이 검색하는 SQL

SELECT DISTINCT 부서 FROM 사원;

3. 조건 지정 검색

WHERE 절에 조건을 지정하여 조건에 만족하는 튜플을 검색한다.

  • 테이블 형식

사원 테이블에서 부서가 개발인 튜플을 검색하는 SQL

SELECT * FROM 사원 WHERE 부서 = "개발";

사원 테이블에서 부서가 개발 혹은 it인 튜플을 검색하는 SQL

SELECT * FROM 사원 WHERE 부서 = "개발" OR "it";
SELECT * FROM 사원 WHERE 부서 IN("개발","IT");

사원 테이블에서 성이 김인 튜플을 검색하는 SQL

SELECT * FROM 사원 WHERE 이름 LIKE "김%";

사원 테이블에서 부서가 NULL인 튜플을 검색하는 SQL

SELECT * FROM 사원 WHERE 부서 IS NULL;

4. 정렬 검색

ORDER BY 절에 특정 속성을 지정하여 지정된 속성으로 자료를 정렬하여 검색한다.

  • 테이블 형식

사원 테이블에서 이름을 오름차순으로 정렬하여 튜플을 검색하는 SQL

SELECT * FROM 사원 ORDER BY 이름 ASC;

5. 하위 질의

조건절에 주어진 질의를 먼저 수행하여 그 검색 결과를 조건절의 피연산자로 사용한다.

  • 테이블 형식

취미 테이블에서 취미활동이 축구인 사원 이름의 튜플을 검색하는 SQL

SELECT 이름 
  FROM 사원 
 WHERE 이름 = (SELECT 이름 
                FROM 취미 
               WHERE 취미활동 = "축구");

6. 복수 테이블 검색

여러 테이블을 대상으로 검색을 수행한다.

  • 테이블 형식

경력이 10년 이상인 사원의 이름, 부서, 취미활동을 검색하는 SQL

SELECT 사원.이름, 사원.부서
  FROM 사원, 취미
 WHERE 사원.경력 >= 10 
   AND 사원.이름 = 취미.이름;
반응형