집에서 하는 공부/SQLD

[SQLD]2과목.SQL 기본 및 활용-4

집돌이 공대남 2022. 6. 13. 09:40
반응형

5절 WHERE절

1.  WHERE

SQL>> SELECT 칼럼명 FROM 테이블명 WHERE 조건절;

 

2. 연산자

* 종류

비교 연산자: =, >, >=, <, <=

 = 비교 대상 데이터 타입에 따라 자동으로 형 변환되는 경우도 있음

부정 비교 연산자: ‘NOT 칼럼명 비교연산자’와 동일

 = 부등호: !=, ^=, <> (ISO 표준)

SQL 연산자 입력값을 비교하여 논리값 출력

 = BETWEEN A AND B : A와 B 사잇값

 =IN (리스트) : 리스트 내의 값

 =LIKE ‘문자열’ : 문자열의 형태와 일치하는 값

   ※ 와일드카드: 1) ‘%’(퍼센트)는 0개 이상의 문자 2) ‘_’(언더바)는 1개의 단일 문자

 = IS NULL : NULL은 등호로 판단 불가 어떤 상황에서도

 =NOT BETWEEN A AND B, NOT IN (리스트), IS NOT NULL

논리 연산자: AND, OR, NOT

 

*우선순위: 부정 연산자 > 비교 연산자 > 논리 연산자

①‘()’(괄호)

②NOT

③비교 연산자 및 SQL 연산자

④AND

⑤OR

 

* 문자열 비교방법

= CHAR vs CHAR : 첫 서로 다른 문자열 값으로 비교 (뒤 순서가 더 큰 값), 길이가 다를 때 공백을 추가하여 길이 맞춤 (공백 수만 다르면 같은 값)

= CHAR vs VARCHAR : 첫 서로 다른 문자열 값으로 비교, 길이가 다르면 길이가 긴 값이 크다고 판단, VARCHAR의 공백도 문자로 판단, TRIM 함수로 VARCHAR의 공백 제거하고 판단할 수 있음

= CHAR vs 상수 : 상수를 변수 타입으로 바꿔 비교

 

3. 부분 범위 처리

* ROWNUM (Oracle): SQL 처리 결과 집합의 각 행에 임시로 부여되는 번호, 조건절 내에서 행의 개수를 제한하는 목적으로 사용함

* TOP (SQL Server): 출력 행의 수 제한 함수, ’TOP (N)’로 N개 행 출력, 개수 대신 비율로도 제한 가능

※ ORDER BY절이 없으면 ROWNUM과 TOP의 기능이 같음

 

6절 함수

1. 단일 행 함수: 1) SELECT절 2) WHERE절 3) ORDER BY절에 사용 가능, 각 행에 개별적으로 작용, 여러 인자를 입력해도 단 하나의 결과만 출력

* 문자형 함수: 문자열 입력 시 문자열이나 숫자 반환

 ‒ LOWER, UPPER, LENGTH

 ‒ CONCAT : 문자열 결합

‒SUBSTR : 문자열 부분 추출

‒ LTRIM, RTRIM, TRIM : 왼쪽 공백 제거, 오른쪽 공백 제거, 양쪽 공백 제거

‒ ASCII : 아스키 코드값 출력

* 숫자형 함수

 ‒ ABS, SIGN : 절대값, 부호 (1, 0, -1 중 출력)

 ‒ MOD : 나머지, 연산자 ’%’로 대체 가능함

 ‒ ROUND, CEIL, FLOOR : 반올림, 올림, 버림 (‘함수(E,N)’으로 소수점 이후 N번째 자리까지 출력)

 ‒ TRUNC : 숫자형 부분 추출

* 날짜형 함수

 ‒ SYSDATE : 현재 시각 출력 (년, 월, 일, 시, 분, 초)

 ‒ EXTRACT : 날짜형 부분 추출                    SQL>> SELECT EXTRACT(부분 FROM SYSDATE) FROM DUAL;

 ‒ ±숫자, ±숫자/24 : 일자 연산, 시간 연산

 ‒ NEXT_DAY : 지정된 요일 첫 날짜 출력

* 변환형 함수: 데이터 타입 변환, 명시적 형 변환 방식

‒ TO_NUMBER, TO_CHAR, TO_DATE (Oracle): 문자열을 숫자로, 숫자나 날짜를 문자열로, 문자열을 날짜로

‒ CAST, CONVERT (SQL Server)

* NULL 관련 함수

 ‒ NVL(칼럼,값) : NULL 값 변환

 ‒ NVL2(칼럼,값,값) : NULL이면 앞의 값 아니면 뒤의 값 출력

 ‒ NULLIF(값,값) : 같으면 NULL 다르면 첫 값 출력

 ‒ COALESCE(값,값,…) : NULL이 아닌 첫 값 출력

 ‒ ISNULL(칼럼,값) : NULL이면 값으로 대치 아니면 칼럼 값 출력

 

2. 데이터 변환

* 명시적 형 변환: 변환형 함수를 이용하여 데이터 타입 변환

* 암시적 형 변환: DBMS가 자동으로 데이터 타입 변환

 

3. 조건문: IF-THEN-ELSE 형태

* CASE WHEN 조건절1 THEN 출력값1 … ELSE 기본값 END : ELSE 생략 시 NULL 출력

 ※ ‘CASE WHEN NULL THEN 출력값 ELSE 기본값’은 조건이 없으므로 모든 행에서 기본값 출력 (일반적으로 ‘WHEN 칼럼 IS NULL’로 수정 필요)

* DECODE (칼럼, 기준값1, 출력값1, …, 기본값) : Oracle 함수, 기준값n이면 출력값n 출력

반응형