SQL20 [Oracle] PL/SQL PL/SQL Procedural Language extension to SQL SQL의 확장된 개념으로 오라클에서 절차적 프로그래밍을 가능하게 함 DECLARE ~ END 구간을 블록이라고 하는데, 이름이 있는 블록에는 함수, 프로시저, 패키지, 트리거 등이 있고 이름 없는 블록은 익명 블록이라고 하며 명칭을 붙이지 않고 사용하는 프로그래밍 구간을 의미 문법 DECLARE 변수명 데이터타입; ... BEGIN 실행문 END; 예제) PL/SQL 변수에 HR 계정의 샘플 데이터에서 데이터값을 가져와 저장 employees 테이블 사원번호 100번의 이름과 부서명 저장 DECLARE f_name VARCHAR2(20); l_name VARCHAR2(20); dep_id VARCHAR2(20); BEGIN S.. 2021. 7. 25. [Oracle] MERGE INTO 구문 MERGE INTO 충돌 없이 데이터를 업데이트 하는 것으로, 해당 데이터가 있으면 무시, 없으면 업데이트를 진행 MySQL의 INSERT INTO ~ ON DUPLICATE KEY UPDATE ~ 의 기능과 유사 예제) 먼저 예제용 테이블을 생성하고 오라클 HR 계정의 샘플 데이터 employees 테이블을 복사해서 삽입 mergeIntoTest 테이블 생성 CREATE TABLE mergeIntoTest( num NUMBER, f_name VARCHAR2(20), l_name VARCHAR2(20), dep_id VARCHAR2(20), salary NUMBER ); 위에서 15개 Row 데이터를 복사 - 삽입 INSERT INTO mergeIntoTest (SELECT employee_id, fir.. 2021. 7. 25. [MySQL] 트리거(Trigger) 트리거(Trigger) DBMS에서 특정 사건 발생 시 자동으로 일련의 과정이 수행되는 프로시저로 사용자가 따로 호출할 필요가 없음 데이터 변경 시 무결성에 문제가 생길 때, 이를 보완할 수 있도록 트리거를 설정하면 무결성을 유지시킬 수 있음 장점 : 프로시저와 더불어 데이터베이스 내의 업무규칙을 구현 가능 단점: 테이블 선언 시 정의한 제약조건에 비해 성능이 저하 문법 DELIMITER // CREATE TRIGGER 트리거명 BEFORE / AFTER (실행시점) 실행로직# 실행로직은 어떤 구문이 들어오면 처리할 것인가 ON 트리거적용테이블 FOR EACH ROW BEGIN 트리거 실행시 작동될 코드 END // DELIMITER ; 예제) 회원이 탈퇴를 진행하면 회원 관리 테이블에서 탈퇴 회원 관리.. 2021. 7. 24. [Oracle] 맥 터미널에서 오라클 실행 및 HR계정 활성화 오라클 실행 1. 아래 명령문으로 오라클 Oracle XE DB 컨테이너가 켜져있는지 확인 docker ps 2. 아래와 다르게 목록에 해당 컨테이너가 없다면 컨테이너를 실행시키기 3. 컨테이너의 목록 전체를 조회해 Oracle 컨테이너 이름 확인 docker ps -a IMAGE > NAMES > 컨테이너 이름 4. 컨테이너 실행 docker start 컨테이너 이름 5. sqlplus 접속 docker exec -it --user=oracle 컨테이너 이름 bash sqlplus 6. 종료 docker stop 컨테이너 이름 HR계정 활성화 오라클에 내장된 hr 데이터를 사용하기 위함 1. 수동으로 샘플데이터 다운로드 https://github.com/oracle/db-sample-schemas/re.. 2021. 7. 22. [MySQL] 프로시저 매개변수 값 입력 프로시저 실행 시 조건 값 변경 저장된 프로시저 수행 시 수행 질의문에 특정 값을 매개변수로 전달할 수 있도록 하여 다양한 조건을 하나의 질의문으로 수행할 수 있게 지원해줌 MySQL의 샘플 데이터베이스 employees를 활용한 예제 https://github.com/datacharmer/test_db GitHub - datacharmer/test_db: A sample MySQL database with an integrated test suite, used to test your applications and database A sample MySQL database with an integrated test suite, used to test your applications and database.. 2021. 7. 21. [MySQL] 프로시저(Procedure) Procedure(프로시저) 자주 사용되는 질의문들을 하나로 묶어 저장하고 필요할 때마다 명령문처럼 실행할 수 있게 해줌 함수와 유사한 개념이지만, 함수는 매개변수와 반환값이 존재하는 반면, 프로시저는 매개변수는 존재하지만 반환값이 없고 특정 로직만 처리하면 종료 문법 DELIMITER $$ CREATE PROCEDURE 선언할 프로시저명() BEGIN 실행 코드 END $$ DELIMITER ; 선언한 프로시저 호출 CALL 프로시저명(); 예제 1) IF ~ ELSEIF ~ THEN 구문을 활용하여 두 개 이상의 조건을 입력할 수 있는 프로시저를 생성 점수에 따른 학점을 반환하는 프로시저 90점 이상 - A, 80점 이상 - B, 70점 이상 - C, 60점 이상 - D, 그 외 - F '취득점수: .. 2021. 7. 20. 이전 1 2 3 4 다음