💻Programming/Oracle22 [Oracle/오라클] INSERT ALL - 다중 테이블 데이터 입력 다중테이블에 다중 행 입력 - INSERT ALL 문을 사용하면 하나의 쿼리문으로 두개의 테이블에 원하는 컬럼값 삽입 가능 INSERT ALL INTO A_TABLE VALUES (VAL1, VAL2) INTO B_TABLE VALUES (VAL1, VAL2) SELECT * FROM DUAL; 조건문에 의해 다중테이블에 다중 행 입력 INSERT ALL WHEN NUM > 12 THEN INTO A_TABLE VALUES (VAL1, VAL2) WHEN NAME == '홍길동' INTO B_TABLE VALUES (VAL1, VAL2) SELECT * FROM DUAL; 💻Programming/Oracle 2021. 9. 27. [Oracle/오라클] 문자열 변환 함수 ( LOWER, UPPER, INITCAT ) 함수 1. LOWER, UPPER, INITCAT - LOWER : 주어진 문자열 내의 자료 중 대문자를 모두 소문자를 변환 - UPPER : 주어진 문자열 내의 자료 중 소문자를 모두 대문자를 변환 - INITCAT : 주어진 문자열 내의 자료 중 단어의 첫 글자만 대문자로 변환 ex) 상품테이블(prod)에서 분류코드가 'P201'에 속한 자료를 조회하시오. Alias는 상품코드, 상품명, 분류코드, 판매가격이다. SELECT prod_id AS 상품코드, prod_name AS 상품명, prod_lgu AS 분류코드, prod_price AS 판매가격 FROM prod WHERE LOWER(prod_lgu) = 'p201'; -- prod_lgu의 데이터를 소문자로 변환 💻Programming/Oracle 2021. 9. 27. [Oracle/오라클] WITH 절 WITH 절 - 가상의 테이블 생성 - 복잡한 SQL에서 동일한 블록을 반복하여 사용하는 경우 그 블록에 이름을 부여하여 재사용 할 수 있게 함. - VIEW 객체와 쓰임새 비슷. 하지만 VIEW는 한번 만들어 놓으면 DROP 할 때까지 없어지지 않음. WITH 절은 쿼리문 내에서만 실행 - 단일 WITH절 WITH SAMPLE AS ( SELECT USER_ID FROM TB_USER ) SELECT * FROM SAMPLE; - 다중 WITH절 WITH SAMPLE1 AS -- 첫번째 WITH문 ( SELECT 'EX1' A FROM DUAL ), SAMPLE2 AS (-- 두번째 WITH문 SELECT 'EX2' FROM DUAL UNION ALL SELECT A FROM SAMPLE1 -- 첫번째.. 💻Programming/Oracle 2021. 9. 16. [Oracle/오라클] DECODE (조건함수) 사용법 DECODE ( 컬럼, 조건, TRUE일때 결과값, FALSE 결과값 ) DECODE ( 컬럼, NULL, NULL일때 결과값, NULL이 아닐때 결과값 ) 예시 -- NAME이 홍길동이면 '맞습니다', 아니면 '아닙니다'. SELECT DECODE(NAME, '홍길동', '맞습니다', '아닙니다') FROM TB_USER -- PHONE_NO가 NULL 이면 '-', NULL이 아니면 PHONE_NO SELECT DECODE(PHONE_NO, NULL, '-', PHONE_NO) FROM TB_USER 💻Programming/Oracle 2021. 9. 7. [Oracle/오라클] VIEW 객체 VIEW 객체 - 가상의 테이블 - SELECT 문의 결과로 생성되는 독립적 객체 - 특정 자료의 접근을 제한할 때 (보안), 복수개의 테이블에 분산된 자료를 빈번히 JOIN한 결과를 사용 할 때, 소수의 컬럼이나 행만 필요할 때 주로 사용 CREATE [ OR REPLACE ] VIEW 뷰이름 [(컬럼명1, ... )] AS SELECT 문 [ WITH CHECK OPTION ] [ WITH READ ONLY ] ; - 컬럼명1,... : 생성되는 뷰에 부여되는 컬럼명, 생략되면 원본테이블 (SELECT문)의 컬럼명이 적용됨. - WITH CHECK OPTION : 뷰를 생성하는 SELECT문에서 조건이 사용된 경우 그 조건에 부합하지 않는 DML명령 (INSERT, UPDATE) 을 사용하지 못함. .. 💻Programming/Oracle 2021. 3. 27. [Oracle/오라클] 집합연산자 집합연산자 - 집합이론에서 제공하는 합집합 ( UNION, UNION ALL ) , 교집합 ( INTERSECT ), 차집합 ( MINUS ) 연산자 제공 - UNION ALL : 중복해서 결과 반환, UNION : 중복을 허락하지 않음 SELECT 컬럼LIST -- A집합 FROM 테이블명 [ WHERE 조건 ] UNION | UNION ALL | INTERSECT | MINUS SELECT 컬럼LIST -- B집합 FROM 테이블명 [ WHERE 조건 ] [ UNION | UNION ALL | INTERSECT | MINUS SELECT 컬럼LIST -- C집합 FROM 테이블명 [ WHERE 조건 ]] : - 각 SELECT 절의 컬럼의 갯수와 순서 및 TYPE이 같아야 함. (컬럼명과 데이터 크기.. 💻Programming/Oracle 2021. 3. 27. [Oracle/오라클] 서브쿼리 서브쿼리 - SQL 구문 안에 또 다른 SQL 구문이 존재하는 경우 - 반드시 ( ) 안에 기술해야 함 - JOIN 사용을 대신하거나 구문의 복잡성을 줄일 수 있다. - WHERE 절에서 사용될 경우 연산자 오른쪽에 사용 - 서브쿼리가 사용되는 곳 : SELECT절 , WHERE절 => 일반적 서브쿼리, FROM절 => 인라인 (IN-LINE 서브쿼리, 독립적으로 실행 가능해야 함) - 종류 : 연관 서브쿼리, 비연관 서브쿼리, 단일행 | 다중행/단일열 | 다중열 서브쿼리 (반환하는 행과 열의 수가 기준) 1. 비연관 서브쿼리 - 메인쿼리 (밖의 쿼리)와 서브쿼리에 사용된 테이블이 JOIN으로 연결되지 않는 경우 ex) 부서테이블에서 상위부서번호 (parent_id)가 NULL인 부서에 속한 사원정보를 .. 💻Programming/Oracle 2021. 3. 20. [Oracle/오라클] 그룹함수 그룹 함수 - 복수개의 행을 대상으로 연산 - SUM, AVG, COUNT, MAX, MIN - 그룹함수와 일반컬럼이 SELECT 절에 사용되면 반드시 GROUP BY절이 SELECT 절 다음에 기술되어야 함. SELECT [ 컬럼명1,... ] SUM (컬럼명) | AVG (컬럼명) | COUNT (컬럼명 | * ) | MAX (컬럼명) | MIN (컬럼명) , FROM 테이블명 [ WHERE 조건 ] [ GROUP BY 컬럼명 [ , 컬럼명 , ... ] [ HAVING 조건 ] [ ORDER BY 컬럼명 | 컬럼인덱스 [ [ ASC ] | [ DESC ] ,... ] ; 1. SUM (COL) - 자료를 그룹으로 묶고 그 그룹내의 컬럼에 대한 합계를 구함 - SELECT 절에 일반 컬럼없이 SUM .. 💻Programming/Oracle 2021. 3. 19. [Oracle/ 오라클] 변환 함수 변환함수 - 자료형의 변환을 담당하는 함수 - CAST, TO_CHAR, TO_NUMBER, TO_DATE 등 1. CAST (expr AS TYPE) - expr로 표현된 값을 TYPE 형식으로 변환 ex) 회원테이블의 회원 마일리지(숫자형식)를 문자형식으로 변환 SELECT mem_id, mem_name, mem_mileage, CAST(mem_mileage AS CHAR(10)) FROM member; -- 출력 결과 -- 2. TO_CHAR ( c | d | n [, fmt] ) - 날짜, 숫자, 문자 자료를 지정된 형식의 문자열 자료로 변환 ------------------------------------------------------------------------- 형식지정문자 의미 ---.. 💻Programming/Oracle 2021. 3. 16. [Oracle/오라클] 날짜형 함수 날짜형 함수 1. SYSDATE - 시스템에서 제공하는 날짜 (년, 월, 일) 및 시간 정보 (시, 분, 초)를 반환 - 덧셈과 뺄셈의 대상이 됨. 연산결과는 날짜의 수 또는 날짜 자료 타입 ex) SELECT SYSDATE, SYSDATE+25, --오늘로부터 25일 후 SYSDATE-25 --오늘로부터 25일 전 FROM DUAL; -- 출력 결과 -- 2. ADD_MONTHS ( d, n ) - 주어진 날짜데이터 d에 n개월을 더한 날짜 반환 ex) 현재 날짜에 10개월과 10일을 더함 SELECT SYSDATE, ADD_MONTHS(SYSDATE, 10)+10 FROM DUAL; -- 출력 결과 -- 3. NEXT_DAY ( d, c ) - 주어진 날짜데이터 d 이후 처음 만나는 (가장 빠른) c.. 💻Programming/Oracle 2021. 3. 15. [Oracle/오라클] NULL처리 함수 1. IS [NOT] NULL - 특정 컬럼의 값이 NULL인지 판단 - NULL은 '=' 기호로 판단 불가 (문법상 오류는 아님) 컬럼명 IS [NOT] NULL ex) 사원테이블(employees)에서 영업실적코드 (commission_pct)가 NULL이 아닌 사원정보를 조회하시오. SELECT A.employee_id AS 사원번호, A.emp_name AS 사원명, B.department_name AS 부서명, A.commission_pct AS 영업실적, A.salary AS 급여 FROM employees A, department B WHERE A.department_id = B.department_id AND A.commission_pct IS NOT NULL; -- 출력 결과 -- 2. .. 💻Programming/Oracle 2021. 3. 15. [Oracle/오라클] 테이블 조인 (내부조인) 테이블 조인 - 관계형 데이터베이스의 핵심 - 여러 테이블에 분산되어 저장된 자료들의 관계를 이용하여 데이터를 추출하는 연산 - 종류 1) 내부조인, 외부조인 2) 일반조인, ANSI 조인 3) Cartesian Product, Equi Join ( 동등조인 ), Non-Equi Join, Self Join, etc ... 1. 내부 조인 ( INNER JOIN ) - 조인조건을 만족하는 테이터만 연산의 결과 반환되고 조인조건에 맞지않는 자료는 무시됨. (일반조인) SELECT 컬럼LIST , ... - 반드시 2개 이상의 테이블이 사용되어야 함. - 조인조건에 사용되는 컬럼명이 같을 시 테이블명이나 별칭을 사용하여 어느 테이블에 속해있는지 구분해야 함. FROM 테이블명1 [ 테이블별칭1 ] , 테이블.. 💻Programming/Oracle 2021. 3. 15. 이전 1 2 다음