Tiny Bunny
본문 바로가기
⚙️Backend/DB

[DB/OracleDB] SQL문 조회, 함수 정리

by soonybutter 2024. 9. 9.
728x90

 



SELECT *
FROM EMPLOYEE;
--모든행 행(WHERE 이하 조건이 없으므로) 과 모든 컬럼조회

 
 
· 논리연산자 AND, OR 는 ' &&와 || ' 가 아닌 AND, OR로 사용한다.

-- 부서코드가 'D6'이면서, 이름이 '유재식'인 사원의 모든 정보 조회
SELECT *
FROM EMPLOYEE
WHERE DEPT_CODE = 'D6' AND EMP_NAME = '유재식';

 
· 여러 컬럼의 결과나 값을 '하나의 컬럼'으로 묶을때 ' || ' 사용한다.

SELECT EMP_ID || EMP_NAME  || '사원' 
FROM EMPLOYEE;

 
· 비교연산자 중 '같지않다' : != , ^=, <> 
 
 
 

· LIKE 연산자

: 입력한 숫자, 문자가 포함된 정보를 조회할때 사용하는 연산자

   1) '_' : 임의의 한 문자
   2) '%': 몇자리 문자든 관계없이

SELECT *
FROM EMPLOYEE
WHERE EMP_NAME LIKE '_중_'; --사원의 이름의 가운데에 '중'이 들어가는 이들의 모든 칼럼 출력
--주민등록번호 기준 여성사원의 정보를 조회하자.
SELECT *
FORM EMPLOYEE
WHERE ENP_NO LIKE '%-2%'; 또는 WHERE EMP_NO LIKE'______-2______';
--이메일 아이디가 5글자를 초과하는 사원의 사원명, 사번, 이메일 조회하자.
SELECT EMP_NAME 사원명, EMP_NO 사번, EMAIL 이메일
FROM EMPLOYEE
WHERE EMAIL LIKE '_____%@%';

 
 
 
 

· IN 연산자

: In(값1, 값2, 값3, ...)
괄호 안에 있는 값 중 하나라도 일치하는 경우, (살짝 OR느낌 있음..(?)) 해당하는 행을 조회해주는 연산자

-- 부서 코드가 D1 이거나 D6인 부서 직원 정보 조회
SELECT *
FROM EMPLOYEE
--WHERE DEPT_CODE = 'D1' OR DEPT_CODE = 'D6';
WHERE DEPT_CODE IN('D1', 'D2');

 

-- 부서 코드가 D1도 아니고 D6도 아닌 부서의 직원 조회
SELECT *
FROM EMPLOYEE
WHERE DEPT_CODE NOT IN('D1,'D6');

 
 
 
 

· BETWEEN  A  AND  B

: 값의 범위 설정시 사용

SELECT *
FROM EMPLOYEE
WHERE SALARY BETWEEN 3500000 AND 5500000;

 
 
 

 
 
 
 


 

함수

 
-DUAL : 임시 테이블(가상의 테이블) , SELECT 문에서 테스트 진행할 때 임시 사용
 
 

· LENGTH() , LENGTHB() 함수

: LENGTHB() : BYTE 크기를 확인해준다.
오라클에서 영어 이외의 다른언어는 3 BYTE. (10버전 이전에는 2BYTE 이후에는 3BYTE)
 

SELECT LENGTH(EMAIL), EMAIL

FROM EMPLOYEE;

 

 

· INSTR() 함수

: 주어진 값에서 원하는 문자가 몇번째인지 찾아 반환하는 함수 (숫자 반환)

-- INSTR(): 주어진 값에서 원하는 문자가 몇번째인지 찾아 반환하는 함수

SELECT INSTR('ABCDE', 'A'), INSTR('ABCDE','C'), INSTR('ABCDE','BC'), INSTR('ABCDE','Z')

FROM DUAL;

--

 
 

· SUBSTR() 함수

: 주어진 값에서 특정부분만 꺼내오는 함수

SELECT 'Hello World',

SUBSTR('Hello World', 3, 5), --3번째에서 5번째만 꺼내옴 :llo W

SUBSTR('Hello World',4) --4번째부터 쭉 꺼내옴 :lo World

FROM DUAL;

 

 
 

· LPAD() / RPAD() 함수

: 빈칸지정한 문자로 채우는 함수

SELECT LPAD(EMAIL, 30, '#')

FROM EMPLOYEE; -- 30으로 크기 지정한 칸의 비는 앞 부분을 #으로 다 채움.

 

SELECT RPAD(EMAIL, 20, '-')

FROM EMPLOYEE; -- 20크기로 지정한 칸의 비는 뒷 부분을 -으로 채움

 

SELECT LPAD(EMAIL, LENGTH(EMAIL)+1 ,'*')

FROM EMPLOYEE; --EMAIL크기보다 하나 크게 크기 지정, 왼쪽에 *추가

 
 
 

· LTRIM() / RTRIM() 함수

: 특정 컬럼값, 값으로부터 특정 문자를 찾아 지워주는 함수

-- 찾을 문자를 지정하지 않을 경우 -> 공백(빈칸)을 지운다.

SELECT ' Hello', LTRIM('        Hello'), RTRIM('          Hello'), RTRIM('Hello         ')

FROM DUAL;

 

-- 찾을 문자를 지정했을 경우 ->

SELECT LTRIM('012345', '0'), LTRIM('11112345','1'), LTRIM('01111345','1')

FROM DUAL; --각각 1이 삭제된 형태로 출력됨

 
 
 
 

· TRIM() 함수

-- TRIM() : 양끝을 기준으로 특정문자를 찾아 지워주는 함수

 

-- 기본형태 : 공백제거

SELECT TRIM(' 오라클 ')

FROM DUAL;

-- 양 끝의 특정값을 지우고자 할때

SELECT TRIM('0' FROM '000123000')

FROM DUAL;

SELECT TRIM(LEADING '0' FROM '000123000') --LTRIM() = LEADING

FROM DUAL;

SELECT TRIM(TRAILING '0' FROM '000123000') --RTRIM() = TRAILING

FROM DUAL;

SELECT TRIM(BOTH '0' FROM '000123000') --=TRIM()

FROM DUAL;

--

 
 
 
 

· LOWER() 함수 / UPPER() 함수 / INITCAP() 함수

:소문자/ 대문자/ 앞글자만 대문자로 바꿔주는 함수
 

SELECT LOWER('NICE TO MEET YOU'), UPPER('nice to meet you'), INITCAP('nice to meet you')

FROM DUAL;   --nice to meet you , NICE TO MEET YOU, Nice To Meet You

 
 
 

· CONCAT() 함수

:하나의 문자열로 합치는 함수

SELECT CONCAT('오라클','너무재밌다')

FROM DUAL;

 

SELECT CONCAT(EMP_NAME,'님') 이름

FROM EMPLOYEE;

 
 
 

· REPLACE() 함수

:특정 문자열을 찾아 변경

SELECT REPLACE('HELLO WORLD', 'HELLO', 'BYE')

FROM DUAL;

 
 
 
 

728x90

TOP

Designed by 티스토리