728x90
반응형
SMALL

Data Base 163

231026 PL/SQL 반복문(CONTINUE문, WHILE LOOP문, FOR)

# CONTINUE 문 현재 루프를 종료하고 다음 루프로 반복하는 문 DECLARE i NUMBER := 1; BEGIN LOOP IF i = 4 OR i = 8 THEN i := i + 1; CONTINUE; -- CONTINUE: 다시 반복 ELSE dbms_output.put_line(i); END IF; i := i + 1; IF i > 10 THEN EXIT; END IF; END LOOP; END; / # IF 조건문으로 CONTINUE WHEN 절로 변경 DECLARE i NUMBER := 0; BEGIN LOOP i := i + 1; CONTINUE WHEN i = 4 or i = 8; dbms_output.put_line(i); EXIT WHEN i = 10; END LOOP; END; ..

Data Base/PL SQL 2023.10.26

231025 PL/SQL 조건제어문

■ 조건제어문 1. PL/SQL 에서 조건에 따라 선별적으로 작업을 수행할 수 있다. 2. TRUE/FALSE 3. BOOLEAN DATE TYPE ( TRUE, FALSE, NULL ) # 참일 때 DECLARE v_flag boolean := true; BEGIN IF v_flag THEN dbms_output.put_line('참'); END IF; END; / # 거짓일 때 DECLARE v_flag boolean := false; BEGIN IF v_flag THEN dbms_output.put_line('참'); END IF; END; / # IF문 DECLARE v_flag boolean := false; BEGIN IF v_flag THEN dbms_output.put_line('참'); ..

Data Base/PL SQL 2023.10.25

231025 PL/SQL( Procedure Language Structured Query Language )

■ PL/SQL ( Procedure Language Structured Query Language ) SELECT * FROM hr.employees WHERE employee_id = 100; SELECT * FROM hr.employees WHERE employee_id = 101; SELECT * FROM hr.employees WHERE employee_id = 102; ... SELECT * FROM hr.employees WHERE employee_id = 변수; 1. 프로시저 생성자를 제공한다. 1) 변수, 상수, 데이터 유형(레코드, 배열) 2) 반복문, 조건문 사용가능 3) 한 번 작성하면 여러번 실행 할 수 있는 재사용 가능한 프로그램 단위 ex) 함수 2. PL/SQL 이점 1) 모..

Data Base/PL SQL 2023.10.25

231024 Oracle SQL SAVEPOINT

■ SAVEPOINT A. DML 작업시 ROLLBACK 을 도와주는 표시자 B. SAVEPOINT 표시자; '표시자' 이름만 중복되지 않게 주의할 것 C. ROLLBACK TO 표시자; # DATA DML 작업 및Transaction - ROLLBACK 전체취소. Transaction 시작시점까지 전부 취소 INSERT INTO employees (employee_id, last_name, department_id) VALUES (9999, ‘Smith’, 10); DELETE employees WHERE employee_id = 100; UPDATE employees SET last_name = ‘Clark’; INSERT INTO employees (employee_id, last_name, dep..

231023 Oracle SQL TOP_N 분석 rownum, rank(), dense_rank()

■ TOP-N 분석 ex) 최고급여자 중에 10위까지 출력하세요 1# 내림차순 SELECT employee_id, salary FROM hr.employees ORDER BY salary desc; 2# 정렬한 결과 집합을 이용해서 10위까지만 출력. - rownum : fetch 번호를 리턴하는 가상컬럼 #1 주의할 점 - salary 컬럼안에 data 값이 중복성이 없다면 아래 코드로 작성가능. - 중복성이 있을 경우는 절대 사용하면 안된다. SELECT rownum, employee_id, salary FROM ( SELECT employee_id, salary FROM hr.employees ORDER BY salary desc ) WHERE rownum

231023 Oracle SQL 분석함수

■ 분석함수 ex)차이검증 SELECT trunc(avg(salary)) FROM hr.employees; SELECT employee_id, salary, 6461 FROM hr.employees; # 분석함수 문법 : AVG(컬럼명) OVER() SELECT employee_id ID, salary 급여, trunc(AVG(salary) OVER()) 전체평균, salary - trunc ( AVG(salary) OVER() ) 차이 FROM hr.employees; # 전체 합 SELECT employee_id ID, salary 급여, trunc( SUM(salary) OVER() ) 전체합, salary - trunc ( SUM(salary) OVER() ) 차이 FROM hr.employees..

231023 Oracle SQL 날짜타입

■ 날짜 타입 A. SEVER 시간정보 : SYSDATE, SYSTIMESTAMP B. CLIENT 시간정보 : current_date, current_timestamp, localtimestamp SELECT SYSDATE , -- SEVER 시간정보 SYSTIMESTAMP , CURRENT_DATE , -- CLIENT 시간정보 CURRENT_TIMESTAMP , LOCALTIMESTAMP FROM dual; # 현재 접속한 지역의 TIME_ZONE 수정 ALTER SESSION SET TIME_ZONE = '+08:00' ; # 수정 후 날짜 확인 SELECT SYSDATE , -- SERER 시간정보 SYSTIMESTAMP , CURRENT_DATE , -- CLIENT 시간정보 CURRENT_T..

231023 Oracle SQL SYNONYM(동의어)

■ SYNONYM(동의어) A. 긴객체 이름을 짧은 이름으로 사용하는 객체 B. SYNONYM 을 생성하려면 CREATE SYNONYM 시스템 권한이 있어야 한다. # SYNONYM 시스템 권한 확인. SELECT * FROM session_privs; # test 생성 후 확인 CREATE TABLE hr.emp_copy_2023 AS SELECT * FROM hr.employees; SELECT * FROM hr.emp_copy_2023; # SYNONYM 생성 후 확인 - CREATE SYNONYM SYNONYM명 FOR 원본테이블명; CREATE SYNONYM ec2 FOR hr.emp_copy_2023; SELECT * FROM ec2; # SYNONYM 확인(user_synonyms) SELE..

231023 Oracle SQL SEQUENCE

■ SEQUENCE A. 자동일련번호를 생성하는 객체이다. B. SEQUENCE 객체를 생성하려면 CREATE SEQUENCE 시스템 권한이 있어야 한다. C. sequence 이름.nextval : 사용가능한 번호를 리턴한 가상 컬럼 D. sequence 이름.currval : 현재 사용한 번호를 리턴하는 가상컬럼 E. 한번 사용하면 영구히 사용하게 되니, 주의해서 사용할 것. (sequence 번호는 갭이 생길 수 있다.) F. 시퀀스.currval 를 INSERT 문에서도 가능하나 갭이 생길 수 있다. 'CREATE SEQUENCE' 권한 X ; GRANT CREATE SEQUENCE TO hr; # 시퀀스 확인 SELECT * FROM dba_sequences WHERE sequence_name ..

231020 Oracle SQL VIEW TABLE

■ VIEW A. 하나이상의 테이블이 있는 데이터를 논리적으로 처리하는 객체 B. 단지, SELECT 문을 가지고 있는 객체 C. 간접 ACCESS 를 하기 위해서 D. VIEW 객체를 생성하려면 CREATE VIEW 시스템 권한이 있어야 한다. # test table 생성 CREATE TABLE hr.emp_2023 AS SELECT employee_id, last_name, first_name, job_id, manager_id, department_id FROM hr.employees; # 권한 부여 → 문제) 스토리지 과부하, 유지관리 GRANT SELECT ON hr.emp_2023 TO insa; # test table 삭제 DROP TABLE hr.emp_2023 PURGE; # test v..

728x90
반응형
LIST