본문 바로가기

자격증/SQLD

SQLD 2과목 1-5장. WHERE절

[ 목차 ]

1.  WHERE 조건절

2. WHERE 조건절을 사용하지 않을 경우의 문제

3. 연산자의 종류

4. 연산자의 우선순위

5. 비교 연산자

6. 문자 유형 비교 방법

7. SQL 연산자

8. 논리 연산자

9. 부정 연산자

10. ROWNUM, TOP 사용

 

1.  WHERE 조건절

1) SELECT [ DISTINCE/ALL] 칼럼명 [ALIAS명] FROM 테이블명 WHERE 조건식;

2) 원하는 자료만 검색하기 위해 SQL문장에 WHERE 절을 이용하여 자료들을 제한할 수 있음

3)  WHERE 절을 사용하지 않아서 발생하는 문제점을 방지하기 위해 조건이 없는 FTS 문장은 SQL튜닝의 1차적 검토대상

4) ORACLE의 경우 필수적으로 SELECT 절과 FROM 절로 이뤄지게 구성

5) SQL 문장은 SELECT 목록에 상수, 변수, 산술식만 포함되는 경우 FROM절은 필요 없지만 테이블의 칼럼이 사용된 경우

    필요

6) WHERE 절은 조회하려는 데이터에 특정 조건을 부여할 목적으로 사용하기 때문에 FROM 절 뒤에 옴

 

2. WHERE 조건절을 사용하지 않을 경우의 문제

1) 자료 검색 시 SELECT 절과 FROM절만을 사용하며 SQL문장을 구성하면 테이블에 있는 모든 자료들이 결과로 출력되

    어 실제로 원하는 자료를 확인하기 어려움

2) 원하는 자료만 검색하기 위해 SQL문장에 WHERE 절을 이용하여 자료들을 제한할 수 있음

3) 두 개 이상의 테이블에 대한 조인 조건을 기술하거나 결과를 제한하기 위한 조건을 기술할 수 있음

4) WHERE 조건절을 사용하지 않고 필요 없는 많은 자료들을 데이터베이스로부터 요청하는 SQL 문장은 대량의 데이터

    를 검색하기 위해 데이터베이스가 설치되어 있는 서버의 CPU나 MEMORY 같은 시스템 자원을 과다하게 사용

5) 많은 사용자들의 QUERY에 대해 바로바로 처리를 해주지 못함

6) 검색된 많은 자료들이 네트워크를 통해서 전달되어 문제점들을 유발

 

3. 연산자의 종류

 

4. 연산자의 우선순위

 

5. 비교 연산자 

 

6. 문자 유형 비교 방법

1) CHAR 변수나 VARCHAR2와 같은 문자형 타입을 가진 칼럼은 특정 값과 비교하기 위해 인용 부호로 묶어서 비교 처리

2) NUMERIC과 같은 숫자형 형태의 값은 인용 부호 사용 X

 

7. SQL 연산자

1) SQL 문장에서 사용하도록 기본적으로 예약되어 있는 연산자

2) 모든 데이터 타이벵 대해서 연산이 가능한 4가지

3) 다중 리스트를 이용한 IN 연산자는 SQL문장을 짧게 만들어 주면서도 성능 측면에서도 장점을 지녀 매우 유용

4) LIKE 연산자는 와일드 카드 사용 가능

5) 와일드 카드 : 한 개 혹은 0개 이상의 문자를 대신해서 사용하기 위한 특수 문자를 의미하며, 이를 조합하여 사용하는

                        것이 가능하여 SQL문장에서 사용하는 스트링 값으로 용이하게 사용 가능

6) NULL은 값이 존재하지 않는 것으로, 확정되지 않은 값을 표현할 때 사용하며 어떤 값보다 크거나 작지도 않고 공백이

    나 0과 달리 비교 불가능한 값으로, NULL값의 비교 연산은 IS NULL, IS NOT NULLL이라는 문구를 사용해서 계산

7) NULL값과의 수치연산은 NULL을, 비교 연산은 FALSE 값을 리턴

 

8. 논리 연산자

1) 비교 연산자나 SQL 비교 연산자들로 이루어진 여러 개의 조건들을 논리적으로 연결시키기 위해서 사용되는 연산자

2) 논리 연산자들이 여러 개가 같이 사용되었을 때의 처리 우선순위는 ( ), NOT, AND, OR의 순서

 

9. 부정 연산자

1) 비교 연산자, SQL 비교 연산자에 대한 부정 표현을 부정 논리 연산자, 부정 SQL 연산자로 구분 가능

 

10. ROWNUM, TOP 사용

1) ROWNUM - 오라클

  1] 칼럼과 비슷한 성격의 Pseudo 카럼으로써 SQL처리 결과 집합의 각 행에 대해 임시로 부여되는 일련번호

  2] 테이블이나 집합에서 원하는 만큼의 행만 가져오고 싶을 때 WHERE 절에서 행의 개수를 제한하는 목적으로 사용

  3] 두 건 이상의 N행을 가져오고 싶을 때 ROWNUM = N; 처럼 사용할 수 없으며 아래 두 방법으로 사용

SELECT PLAYER_NAME FROM PLAYER WHERE ROWNUM <=N;
SELECT PLAYER_NAME FROM PLAYER WHERE ROWNUM

  4] 테이블의 고유한 키나 인덱스 값을 생성할 수 있음

UPDATE MY_TABLE SET COLUMN1 = ROWNUM;

2) TOP - SQL

  1] 결과 집합으로 출력되는 행의 수를 제한할 수 있음

  2] 한 건의 행만 가져오고 싶을 때는 SELECT TOP(1) PLAYER_NAME FROM PLAYER; 처럼 사용 가능

  3] 두 건 이상의 N 행을 가져오고 싶을 때는 SELECT TOP(N) PLAYER_NAME FROM PLAYER;처럼 출력되는 행의 개수

       지정 가능

  4] SQL에서 ORDER BY절이 사용되지 않으면 오라클의 ROWNUM과 SQL의 TOP는 같은 기능을 수행하지만 ORDER BY

      가 같이 사용될 경우 기능의 차이가 발생

TOP (Expression) [PERCENT] [WITH TIES]

Expression : 반환할 행의 숫자를 지정하는 숫자
PERCENT : 쿼리 결과 집합에서 처음 Expression%의 행만 반환됨을 의미
WITH TIES : ORDER BY절이 지정된 경우에만 사용 가능하며 TOP N(PERCENT)의 마지막 행과 같은 잆이 있는 경
                   우 추가 행이 출력되도록 지정 가능

'자격증 > SQLD' 카테고리의 다른 글

SQLD 2과목 1-8장. ORDER BY절  (0) 2020.03.12
SQLD 2과목 1-7장. GROUP BY, HAVING절  (0) 2020.03.12
SQLD 2과목 1-4장. TCL  (0) 2020.03.12
SQLD 2과목 1-3장. DML  (0) 2020.03.09
SQLD 2과목 1-2장. DDL  (0) 2020.03.09