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;
'⚙️Backend > DB' 카테고리의 다른 글
[DB] 로킹(Locking) 단위 , 로킹과 병행성, DB 로킹 기법 (0) | 2025.02.26 |
---|---|
[DB/OracleDB] Oracle DB 삭제한 데이터 복구하기 (TIMESTAMP) (0) | 2025.01.23 |
[DB] MyBatis vs. JPA (2) | 2024.10.16 |
[DB/OracleDB] Oracle Cloud , DBeaver 개발 환경 설정하기 (2) | 2024.09.08 |