목록Oracle SQL (16)
개발 블로그
[ NULL 처리 함수 ] NULL 처리 함수란 해당 컬럼값이 NULL인 경우 대체 값을 사용하는 함수이다. 1) NVL NVL(P1, P2) NULL로 되어있는 컬럼의 값을 인자로 지정한 숫자 혹은 문자로 변경하여 반환한다. - P1 : NULL데이터를 처리할 컬럼명 혹은 값 - P2 : NULL 값을 대체 하고자 하는 값 -- EMPLOYEE 테이블에서 직원명, 보너스, 보너스가 포함된 연봉 조회 SELECT EMP_NAME, NVL(BONUS, 0), (SALARY + (SALARY * NVL(BONUS, 0))) * 12 FROM EMPLOYEE; -- EMPLOYEE 테이블에 직원명, 부서 코드를 조회 SELECT EMP_NAME, NVL(DEPT_CODE, '부서없음') FROM EMPLOYE..
[ 형 변환 함수 ] 1) TO_CHAR TO_CHAR(DATE [, 포맷]) TO_CHAR(NUMBER [, 포맷]) : 날짜 혹은 숫자형 데이터를 문자형 데이터로 변환하여 반환한다. DATE : 문자형으로 변환하려는 날짜형 데이터 NUMBER : 문자형으로 변환하려는 숫자형 데이터 FORMAT : 문자형으로 변환 시 지정할 출력 형식 숫자 -> 문자 SELECT TO_CHAR(1234) FROM DUAL; -- 1234 SELECT TO_CHAR(1234, '999999') FROM DUAL; -- 1234 6칸 공간 확보, 오른쪽 정렬, 빈칸은 공백으로 채운다. SELECT TO_CHAR(1234, '000000') FROM DUAL; -- 001234 6칸 공간 확보, 오른쪽 정렬, 빈칸은 0으로..
[ 날짜 처리 함수 ] 1) SYSDATE 시스템에 저장되어 있는 현재 날짜를 반환한다. SELECT SYSDATE FROM DUAL; * 날짜 포맷 변경 ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH:MI:SS'; ALTER SESSION SET NLS_DATE_FORMAT = 'RR/MM/DD'; 2) MONTHS_BETWEEN MONTHS_BETWEEN(DATE, DATE) : 인자로 날짜 두 개를 전달받아 개월 수 차이를 숫자 데이터형으로 반환한다. SELECT FLOOR(MONTHS_BETWEEN(SYSDATE, '20210602')) FROM DUAL; -- EMPLOYEE 테이블에서 직원명, 입사일, 근무개월수 조회 SELECT EMP_NAME A..
[ 숫자 처리 함수 ] 1) ABS ABS(NUMBER) : 인자로 전달 받은 숫자를 절대값으로 반환한다. SELECT ABS(10.9)FROM DUAL; -- 10.9 SELECT ABS(-10.9)FROM DUAL; -- 10.9 SELECT ABS(10) FROM DUAL; -- 10 SELECT ABS(-10) FROM DUAL; -- 10 2) MOD MOD(NUMBER, DIVISION) : 인자로 전달받은 숫자를 나누어 나머지를 반환한다. -- SELECT 10 % 3 FROM DUAL; SELECT MOD(10, 3) FROM DUAL; -- 1 SELECT MOD(-10, 3) FROM DUAL; -- -1 SELECT MOD(10, -3) FROM DUAL; -- 1 SELECT MOD..
[ 문자 처리 함수 ] 1) LENGTH / LENGTHB LENGTH('문자값') : 글자 수 반환 LENGTHB('문자값') : 글자의 바이트 수 반환 한글 한 글자 -> 3BYTE 영문자, 숫자, 특수문자 한 글자 -> 1BYTE SELECT LENGTH('오라클'), LENGTHB('오라클') FROM DUAL; SELECT EMP_NAME, LENGTH(EMP_NAME), LENGTHB(EMP_NAME), EMAIL, LENGTH(EMAIL), LENGTHB(EMAIL) FROM EMPLOYEE; 2) INSTR INSTR('문자열', '검색할 문자' [, POSITION(시작 지점), OCCURRENCE(n번째 검색 단어)]) 문자열의 시작 지점(위치)부터 찾으려는 문자의 위치를 반환하는 함수..
SQL의 SELECT 쿼리문이 어떤 순서로 실행이 되는지를 알면 올바르고 효율적인 쿼리를 짜는데에 많은 도움이 된다. 따라서 SQL 문법 순서와 실제 실행 순서를 다음과 같이 정리해 본다. SQL 문법 순서 SELECT FROM WHERE GROUP BY HAVING ORDER BY SQL 실제 실행 순서 FROM : 각 테이블 확인 ON : 조인 조건 확인 JOIN : 테이블 조인 (병합) WHERE : 데이터 추출 조건 확인 GROUP BY : 특정 칼럼으로 데이터 그룹화 HAVING : 그룹화 이후 데이터 추출 조건 확인 SELECT : 데이터 추출 DISTINCT : 중복 제거 ORDER BY : 데이터 정렬
[ SELECT ] SELECT 컬럼 [, 컬럼, ...] FROM 테이블명; - 테이블에서 데이터를 조회할 때 사용하는 SQL 문이다. - SELECT를 통해서 조회된 결과를 RESULT SET이라고 한다. - 조회하고자 하는 컬럼은 반드시 FROM 절에 기술한 테이블에 존재하는 컬럼이어야 한다. - 모든 컬럼을 조회할 경우 컬럼명 대신 * 기호 사용할 수 있다. -- 현재 계정이 소유한 테이블 목록 조회 SELECT TABLE_NAME FROM TABS; -- 테이블의 컬럼 정보 확인 DESC EMPLOYEE; -- EMPLOYEE 테이블에서 전체 사원의 모든 컬럼의 정보를 조회 SELECT * FROM EMPLOYEE; -- EMPLOYEE 테이블에서 전체 사원들의 사번, 이름, 급여만 조회 SEL..
-- 한 줄 주석 /* 여러 줄 주석 */ -- 사용자 계정 생성하는 구문 -- [표현법] CREATE USER 계정명 IDENTIFIED BY 비밀번호; CREATE USER KH IDENTIFIED BY KH; CREATE USER STUDY IDENTIFIED BY STUDY; SELECT * FROM DBA_USERS; -- 생성한 사용자 계정에게 최소한의 권한(데이터관리, 접속) 부여 GRANT RESOURCE, CONNECT TO KH; GRANT CREATE VIEW TO KH; GRANT RESOURCE, CONNECT TO STUDY;