archive
[SQLD] WHERE문 사용 및 GROUP 연산 본문
1- 1) WHERE문이 사용하는 연산자
WHERE문이 사용할 수 있는 연산자는 비교연산자, 부정비교연산자, 논리연산자, SQL 연산자, 부정SQL 연산자가 있다
1-2) LIKE문
LIKE문은 와일드카드를 사용해서 데이터를 조회할 수 있다
와일드카드 | 설명 |
% | 어떤 문자를 포함한 모든 것을 조회한다 예를 들어 '조%'는 조로 시작하는 모든 문자를 조회한다 |
_ (언더바) | 한 개인 단일 문자를 의미한다 |
LIKE문에 와일드카드를 사용하지않으면 '='와 동일한 의미로 사용된다
이는 ENAME 칼럼에서 TEST로 시작하고 하나의 글자만 더 있는 것을 조회한다는 뜻이다
1- 3) BETWEEN 문
BETWEEN문은 지정된 범위에 있는 값을 조회한다
"BETWEEN 1000 and 2000"은 1000과 2000을 포함하고 1000과 2000 사이의 값을 조회한다
1- 4) IN 문
IN문은 'OR'의 의미를 가지고 있어서 하나의 조건만 만족해도 조회가 된다
위와 같은 코드를 실행하면, JOB 칼럼의 값이 'CLERK'이거나 'MANAGER'인 값이 조회가 되게 된다
괄호를 사용하여 원하는 데이터를 칼럼명에 대응되도록 입력함으로써, IN문으로 여러 개의 칼럼에 대한 조건을 지정할 수 있다.
5)NULL 값 조회
<NULL의 특징>
- NULL은 모르는 값을 의미한다
- NULL은 값의 부재를 의미한다
- NULL과 숫자 혹은 날짜를 더하면 NULL이 된다
- NULL과 어떤 값을 비교할 때, '알 수 없음'이 반환된다
NULL을 조회할 경우 IS NULL을 사용하고 NULL이 아닌 것을 조회할 경우에는 NOT NULL을 사용한다
< NULL 관련 함수>
NULL 함수 | 설명 |
NVL 함수 (ORACLE) |
- NULL이면 다른 값으로 바꾸는 함수이다 -NVL (MRG,0)은 MRG 칼럼이 NULL이면 0으로 바꾼다 |
NVL2 함수 (ORACLE) |
-NVL 함수와 DECODE 함수를 하나로 만든 것이다 - NVL2 (MRG,1,0)은 MRG 칼럼이 NULL이 아니면 1을 NULL이면 0을 반환한다 |
NULLIF 함수 (ORACLE, MS-SQL, MYSQL) |
-두 개의 값이 같으면 NULL을 같지 않으면 첫 번째 값을 반환한다 -NULLIF(EX1, EX2)은 두 값이 같으면 NULL을, 같지 않으면 EX1을 반환 |
COALESCE (ORACLE, MS-SQL) |
- NULL이 아닌 최초의 인자 값을 반환한다 - COALESCE(EX1, EX2, EX3...) 은 EX1, EX2, EX3...중 NULL이 아닌 가장 첫 번째 값을 반환한다. |
2-1) GROUP BY 연산
GROUP BY 는 테이블에서 소규모 행을 그룹화하여 합계, 평균, 최댓값, 최솟값 등을 계산할 수 있다
HAVING 구에 조건문을 사용한다
GROUPING된 결과에 대한 조건문을 사용한다
ORDER BY 를 사용해서 정렬을 할 수 있다.
2-2) HAVING절
GROUP BY 에 조건절을 사용하려면 HAVING절을 사용해야한다
만약에 WHERE 절에 조건문을 사용하게 되면 조건을 충족하지 못하는 데이터들은 GROUP BY 연산에서 제외되게 된다
2-3) 집계 함수 종류
집계 함수 | 설명 |
COUNT() | 행 수를 조회한다 |
SUM() | 합계를 계산한다 |
AVG() | 평균을 계산한다 |
MAX() MIN() | 최댓값과 최솟값을 계산한다 |
STDDEV() | 표준편차를 계산한다 |
VARIANCE() | 분산을 계산한다 |
-COUNT() 함수는 행의 수를 계산하는 함수, COUNT(*)는 NULL 값을 포함한 모든 행의 수를 계산, 그러나 괄호 안에 칼럼의 명을 넣게 되면 NULL 값은 제외한 행 수가 계산된다
##명시적 형변환과 묵시적 형변환
형변환이라는 것은 두 개의 데이터가 데이터 타입이 일치하도록 변환하는 것이다
명시적 형번환은 형변환 함수를 사용하여 데이터 타입을 일치시키는 것으로 개발자가 SQL을 사용할 때 형변환 함수를 사용해야 한다
형변환 함수 | 설명 |
TO_NUMBER(문자열) | 문자열을 숫자로 변환 |
TO_CHAR(숫자 혹은 날짜, [FORMAT]) | 숫자 혹은 날짜를 지정된 포맷의 문자로 변환한다 |
TO_DATE(문자열, FORMAT) | 문자열을 지정된 포맷의 날짜형으로 변환한다 |
묵시적 형변환은 개발자가 형변환을 하지 않는 경우에 DBMS에서 자동으로 형변환을 시켜주는 것을 의미한다.
'Data > SQLD 필기 준비' 카테고리의 다른 글
[SQLD] 조인 (Join) (0) | 2023.11.14 |
---|---|
[SQLD] DCL 사용과 TCL 사용 (0) | 2023.11.12 |
[SQLD] DML (Data Manipulation Language) 사용 (0) | 2023.11.11 |
[SQLD] DDL (Data Definition Language) 사용 (0) | 2023.11.11 |