SQL(Structured Query Language)
▷ WHERE문 사용
- 비교 연산자 : =, <, >, <=, >=
- 부정 비교 연산자 : !=, ^=, <>, NOT 칼럼명 = , NOT 칼럼명 >
- 논리 연산자 : AND, OR, NOT
- SQL 연산자 : LIKE '%문자열%' , BETWEEN A AND B, IN (A,B,C), IS NULL
- 부정 SQL 연산자 : NOT BETWEEN A AND B, NOT IN(A,B,C,) , IS NOT NULL
≫ LIKE문 사용
- % : 어떤 문자를 포함한 모든 것을 조회
- EX:) 'A%' = A로 시작하는 모든문자 조회, '%A%' = A가 포함된 모든 문자 조회
- _ : 단일 문자를 의미
≫ BETWEEN문
- 해당 범위의 값을 조회
- EX:) A와 B사이의 값을 조회한다.
SELECT * FROM EMP WHERE DEPTNO BETWEEN 10 AND 30
≫ IN문
- OR의 의미를 가지고 있어 하나의 조건만 만족해도 조회가 된다.
SELECT * FROM EMP WHERE ENAME IN ('장비', '여포', '유비')
-- 여려개의 칼럼 지정
SELECT * FROM EMP WHERE (ENAME, DEPTNO) IN (('장비',10),('유비',20))
SQL문의 의미로 올바른 것은? (답 : 1)
SELECT * FROM EMP WHERE ENAME LIKE '%여%'① ENAME에 '여'가 포함된 직원을 조회
② 첫글자가 '여'로 시작하는 직원을 조회
③ ENAME이 '여'를 포함하지 않은 직원을 조회
④ ENAME이 '여'로 시작되지 않는 직원을 조회
≫ NULL 값 조회
- NULL은 모르는 값을 의미
- 값의 부재를 의미
- 숫자 혹은 날짜를 더하면 NULL이 된다.
- 값을 비교시 알수 없음이 반환
- 조회시 IS NULL을 사용하며, NULL이 아닌 경ㅇ우 IS NOT NULL을 사용
| NULL 함수 | 내용 |
| NVL(칼럼,바꿀내용) | NULL이면 다른 값으로 바꾼다. |
| NVL2(칼럼명, NULL일경우, 아닐경우) | NVL함수와 DECODE 함수를 하나로 만든 것 |
| NULLIF(EX1, EX2) | 두개의 값이 같으면 NULL, 같지 않으면 첫번째 값 반환 |
| COALESCE(EX1, EX2, EX3...) | NULL이 아닌 최초의 인자값 반환 EX :) EX1이 NULL이 아니면 EX1값, 그렇지않으면 그뒤의 값의 NULL 여부를 판단하여 반환 |
NULL 관련 함수에 대한 설명으로 올바른 것은? (답 : 4)
① NVL함수는 칼럼에 NULL값이 있으면 NULL로 반환한다.
② NVL2함수는 칼럼값이 NULL이면 두번째 값, NULL이 아니면 세번째 값을 반환한다.
③ NULIF함수는 두 개의 칼럼값이 같으면 NULL을 되돌리고 같지않으면 0을 반환한다.
④ COALESCE 함수는 칼럼값이 NULL이 아니면 EX1을 반환한다.
≫ GROUP 연산
- GROUP BY는 테이블에서 소규모행을 그룹화 하여 합계, 평균, 최대값, 최소값 등을 계산할 수 있다.
- HAVIG구에 조건문을 사용
- ORDER BY를 사용해서 정렬 할 수 있다.
-- 예시
SELECT
DEPTNO,
SUM(SAL) -- SAL의 합계를 구한다
FROM EMP
GROUP BY DEPTNO; -- DEPTNO를 그룹화 한다
- GROUP BY에 조건을 사용하기 위해선 HAVING을 사용해야 한다.
- ※ WHERE절에 조건을 사용시 조건을 충족하지 못한 데이터들은 GROUP BY 대상에서 제외
▷ 집계 함수
- COUNT() : 행 수를 조회, COUNT(*)는 NULL값을 포함, COUNT(칼럼명) NULL값 제외
- SUM() : 합계를 계산
- AVG() : 평균을 계산
- MAX()와 MIN() : 최댓값과 최소값을 계산
- STDDEV() : 표준편차를 계산
- VARIAN() : 분산을 계산
≫ SELECT문 실행 순서
FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
SELECT문 실행 순서로 옳은 것은? (답 : 3)
① SELECT → WHERE → GROUP BY → HAVING → ORDER BY → FROM
② SELECT → WHERE → FROM → ORDER BY → GROUP BY → HAVING
③ FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
④ FROM → SELECT → WHERE → ORDER BY → GROUP BY → HAVIG
≫ 형변환
- 두개의 데이터 타입이 일치하도록 변환
- 형변환은 명시적과 암시적 형변환이 있다
- 명시적 형변환은 함수를 사용해 데이터 타입을 일치시키는 것
| 형변환 함수 | 내용 |
| TO_NUMBER(문자열) | 문자열을 숫자로 변환 |
| TO_CHAR(숫자 OR 날짜,[FORMAT]) | 숫자 또는 날짜를 FORMAT의 문자로 변환 |
| TO_DATE(문자열, [FORMAT]) | 문자열을 지정된 FORMAT의 날짜형으로 변환 |
- 암시적 형변환은 개발자가 형변환을 하지 않은 경우 DBMS가 자동으로 형변환하는 것을 의미
형변환에 대한 설명으로 올바르지 않은 것은? (답 : 2)
① TO_NUMBER() 함수는 문자열을 숫자로 변환
② TO_DATE() 함수는 숫자형을 날짜형으로 변환
③ TO_CHAR() 함수는 숫자형과 날짜형을 문자로 변환
④ 암시적 형변환은 개발자가 형변환을 수행하지 않았을 경우 DBMS 내부적으로 형변환을 수행
'기타 > SQLD 자격증' 카테고리의 다른 글
| 10. SQL 기본3 (SQLD 자격증 공부) (0) | 2022.02.10 |
|---|---|
| 9. SQL 내장형 함수 (SQLD 자격증 공부) (0) | 2022.02.10 |
| 7. SQL 기본2 (SQLD 자격증 공부) (0) | 2022.02.09 |
| 6. SQL 기본 (SQLD 자격증 공부) (0) | 2022.02.09 |
| 5. 데이터 모델과 성능 (SQLD 자격증 공부) (0) | 2022.02.03 |