본문 바로가기

SQL

SQLD 시험 대비 - SQL 기본 (2)

연산자의 종류 

- 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
반응형