연산자의 종류
- BETWEEN a AND b : a와 b 사이값 출력
- IN (list) 리스트에 있는 값중 어느 하나라도 일치
- IS NULL : NULL 값인 경우 (Oracle은 Varcher2 빈 문자열을 Null로 판단)
- IS NOT NULL : Null이 아닌경우
- NOT IN (List) : list의 값과 일치하지않는다.
- Like '비교 문자열' : 비교 문자열과 형태가 일치
Select Exam_Name 시험명 From Exam
where Name = 'A'; 이름이 A인사람 찾기
where Name In ('A','B') 이름이 A,B인 사람 찾기
where Height Between 180 And 190 ; 키가 180~190인사람 찾기
where Position is null ; 포지션 없는 사람
where Position = null ; x False이라 검색결과가 없다.
Null 값과의 수치 연산은 Null을 리턴한다.
Null 값과의 비교연산(=,<,>,!= 등등)은 False을 리턴한다.
연산자 우선순위 : () -> Not -> 비교연산자 -> AND ->OR
ROWNUM : 원하는 만큼의 행을 가져올때 사용
Ex_ Select * from Exam where ROWNUM = 1;
단일 행 함수
1. Select, Where, Order By 절에서 사용가능
2. 행의 개별적 조작
3. 여러 인자가 있어도 결과는 1개만 출력
4. 함수 인자에 상수, 변수, 표현식 사용가능
5. 함수 중첩 가능
문자형 함수
문자형 함수 | 함수 설명 |
TRIM([지정문자] from 문자열) LTRIM(문자열,[제거할 문자]) RTRIM(문자열,[제거할 문자]) |
문자열의 첫 문자부터 확인해서 지정문자가 나타나면 해당 문자를 제거한다. 왼쪽에 있는 대상 제거 오른쪽에 있는 대상 제거 |
CONCAT(‘문자1’,‘문자2’) | 두 문자(열)을 연결하여 반환하는 함수 |
CHR(아스키 코드값) | 아스키 코드값을 문자로 반환하는 함수 |
ASCII(‘문자’) | 문자를 아스키코드 값으로 반환하는 함수 |
UPPER(컬럼명 혹은 문자열) LOWER(컬럼명 혹은 문자열) |
입력되는 값을 전부 대분자로 변환하는 함수 입력되는 값을 전부 소문자로 변환하는 함수 |
INITCAP(컬럼명 혹은 문자열) | 첫 글자만 대문자로 출력하고 나머지는 전부 소문자로 출력하는 함수 |
LPAD(‘문자열’, 자리수, ‘채울문자’) RPAD(‘문자열’, 자리수, ’채울문자‘) |
왼쪽 공백에 특별한 문자로 채워 반환 오른쪽 공백에 특별한 문자로 채워 반환 |
LENGTH(컬럼명 혹은 문자열) | 지정된 문자열의 길이를 반환하는 함수 |
SUBSTR(컬럼명 혹은 문자열, 시작위치, 골라낼 글자 수) SUBSTRB(문자열, 시작위치, 골라낼 바이트 수) |
지정된 문자열의 특정 길이의 문자(열)만 반환하는 함수. (‘-’)를 붙이면 오른쪽 -> 왼쪽) 바이트 수를 골라낸다 |
TRANSLATE(컬럼명 혹은 문자열, 지정문자, 대체문자) | 지정된 문자와 일치하는 자리에 있는 대체문자를 반환한다. (해당 자리에 대체할 문자가 없으면, 문자열의 문자는 제거되어 표시된다.) |
REPLACE(‘문자열’, ‘문자1’, ‘문자2’) | 문자열의 ‘문자1’을 ‘문자2’로 바꾸는 함수 |
INSTR(컬럼명 혹은 ‘문자열’, 찾는 글자, 시작위치, 몇 번째 인자) | 특정 글자의 위치를 찾아 반환하는 함수 마지막 인자의 기본값은 1 (시작위치 값이 ‘-’일 경우 오른쪽에서 왼쪽으로 계속 찾아간다.) |
숫자형 함수
날짜형 함수
함수 명 | 기능 | 사용 예 |
SYSDATE | 현재 일자와 시간을 반환 | SELECT SYSDATE FROM DUAL; => 2023-03-05 (날짜와 시간 정보를 모두 포함하고 있음. 시간까지 보려면 TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS')로 변환 필요) |
ADD_MONTHS ( date, n ) |
date 날짜에 n개월을 더한 날짜를 반환. n이 음수이면 더하지 않고 뺀 날짜를 반환 | SELECT ADD_MONTHS( SYSDATE, 1 ) FROM DUAL; => 2023-05-08 |
MONTHS_BETWEEN ( date1, date2 ) |
date1과 date2 두 날짜 사이의 개월 수를 반환. date1이 date2보다 이후 날짜면 양수, 반대면 음수 반환 | SELECT MONTHS_BETWEEN( SYSDATE + 31, SYSDATE ) FROM DUAL; => 1.096…. |
LAST_DAY( date ) | date가 속한 월의 마지막 일자를 반환 | SELECT LAST_DAY( SYSDATE ) FROM DUAL; => 2023-04-30 |
NEXT_DAY ( date, expr ) |
date 날짜를 기준으로 expr에 명시한 날짜 반환. expr은 요일을 나타내는데, ‘월요일’ 형태로 쓸 수도 있고 1~7까지 숫자를 쓸 수도 있음(1은 일요일, 7은 토요일) | SELECT NEXT_DAY( SYSDATE, '월요일' ) FROM DUAL; => 2023-04-15 |
ROUND ( date, format ) |
date를 format 기준으로 반올림한 날짜 반환. format은 YEAR, MONTH, DD, HH, HH24, MI 등 사용 가능 | SELECT ROUND( SYSDATE, 'YEAR' ) FROM DUAL; => 2023-01-01 |
TRUNC ( date, format ) |
date를 format 기준으로 잘라낸 날짜 반환. format은 ROUND 함수와 동일하게 사용 가능 | SELECT TRUNC( SYSDATE, 'YEAR' ) FROM DUAL; => 2023-01-01 |
반응형
'SQL' 카테고리의 다른 글
SQLD 시험 대비 - SQL 활용편(1) (0) | 2023.03.06 |
---|---|
SQLD 시험 대비 - SQL 기본 (3) (0) | 2023.03.06 |
SQLD 시험 대비 - SQL 기본 (1) (0) | 2023.03.05 |
SQLD 시험 대비 - 데이터 모델과 성능 (3) (1) | 2023.03.05 |
SQLD 시험 대비 - 데이터 모델과 성능 (2) (0) | 2023.03.03 |