본문 바로가기

전체 글

(172)
PL/SQL - 05 (SQL문) SELECT, UPDATE, DELETE 등은 기존과 비슷하므로 생략하고 FOR LOOP문부터 공부하겠습니다. FOR LOOP문 FOR index IN [REVERSE] 시작값 .. END값 LOOP statment 1 statment 2 ... END LOOP; index는 자동 선언되는 binary integer로 1씩 증가합니다. reverse 옵션이 사용되면 index는 증가하는 게 아니라 감소합니다 (upper_bound -> lower_bound) IN 다음에는 coursor나 select문을 사용 가능합니다! FOR LOOP문 예제 BEGIN FOR emp_list IN (SELECT ename, sal FROM emp WHERE deptno = 10) LOOP i := i+1; ename_..
PL/SQL - 04(테이블/레코드) PL/SQL 테이블과 오라클 SQL 테이블은 다릅니다. PL/SQL 테이블은 일종의 일차원 배열이라고 생각하는 것이 이해가 편하다고 합니다. 테이블은 크기에 제한이 없으며, 그 ROW의 수는 데이터가 들어옴에 따라 자동 증가합니다. BINARY_INTEGER 타입의 인덱스 번호로 순서가 정해지며, 하나의 테이블에 한 개의 칼럼 데이터를 저장합니다. TYPE table_name IS TABLE OF datatype INDEX BY BINARY INTEGER TYPE 이름 IS TABLE OF VARCHAR2(20) INDEX BY BINARY_INTEGER PL/SQL 레코드 여러 개의 데이터 타입을 갖는 변수들의 집합입니다. - 스칼라 , RECORD, 또는 PL/SQL TABLE datatype중 하나..
PL/SQL - 03(데이터 타입) 변수 선언 방법과 데이터 타입에 대해 알아보겠습니다. identifier [CONSTANT] data type [NOT NULL] [:= 상수값이나 표현식]; identifier의 이름은 sql의 object 명과 동일 규칙을 따릅니다. identifier를 상수로 지정하고 싶은 경우 CONSTANT라는 KEYWORD를 명시하고 반드시 초기화를 할당합니다. NOT NULL이 정의되어 있으면 초기값을 반드시 지정하고, 정의되어 있지 않을 때는 생략 가능합니다. 초기값을 정의하지 않을 경우 null값을 가집니다! *변수 선언 방법 v_price CONSTANT NUMBER(4,2) := 12.34; v_name VARCHAR2(20); v_Bir_Type CHAR(1); v_flag BOOLEAN NOT N..
PL/SQL - 02(프로시저와 함수) 이전 글에서 스토어드 프로시저에 대해 간략하게 언급했는데 이번 글에서 다시 한번 자세하게 공부해보겠습니다 프로시저 - 특정 작업을 수행하며, 이름이 있는 PL/SQL 블록으로, 매개 변수를 받으며 반복적으로 사용할 수 있습니다. 보통 연속 실행, 구현이 복잡한 트랜잭션을 수행하는 블록을 db에 저장하기 위해 생성합니다. 문법 - CREATE OR REPLACE 구문을 사용하여 생성 - IS로 PL/SQL의 블록 시작 - LOCAL 변수는 IS와 BEGIN 사이에 선언 CREATE OR REPLACE procedure name IN arg OUT arg IN OUT arg IS variable 선언 BEGIN -- 필수 PL/SQL Block -- SQL문장, PL?SQL 제어 문장 EXCEPTION --..
PL/SQL - 01(기초 개념) PLSQL에 대해서 공부한 내용을 순차적으로 정리해보려고 합니다. 그렇다면 PL/SQL이 무엇인지부터 알아야 합니다. Oracle's Procedural Language extension to SQL의 약자로 Oracle DB에서 스토어드 프로시저를 구현하기 위해 사용되는 언어라고 할 수 있습니다. sql의 기본적인 select, insert, delete, update 문법 이외에 변수정의, 조건(IF), 반복(LOOP)을 지원하면서 로직을 구성할 수 있게 하여 일련의 쿼리를 하나의 함수처럼 실행하기 위한 쿼리의 집합을 스토어드 프로시저(stored procedure)라 할 수 있겠네요. 말을 너무 어렵게 하였지만 그냥 간단하게 sql을 프로그래밍 언어처럼 사용할 수 있게 해주는 것을 pl sql이라고..
프로그래머스(Level 2) - 더 맵게 https://programmers.co.kr/learn/courses/30/lessons/42626# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr heap과 관련한 문제를 풀어보았습니다. 개념에 대한 공부를 먼저 하고 우선순위 큐라는 자료구조를 미리 알았기 때문에 쉽게 풀 수 있었습니다. import java.util.*; class Solution { public int solution(int[] scoville, int K) { int answer = 0; int temp = 0; PriorityQueue heap = new PriorityQueu..
프로그래머스(Level2) - 가장 큰 수 프로그래머스 가장 큰 수 문제입니다. https://programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음에는 쉽게 접근할 수 있을줄 알았는데 생각보다 어려웠습니다. 알고리즘을 따로 준비해본 경험도 없고, 이전까지 알고리즘은 파이썬으로 풀었기 때문인지는 모르겠지만 이 문제를 풀면서 자바에 대한 기본기가 많이 부족하다고 느꼈습니다. import java.util.*; class Solution { public String solution(int[] numbers) { Str..
프로그래머스 - 다리를 지나는 트럭 시간 여유가 있을때마다 알고리즘을 풀려고 노력을 하고 있는데 이 문제 때문에 며칠 흥미를 잃어버렸습니다. 너무 어렵고 안풀려서 고생했어요 ㅠㅠ 큐를 활용한 문제이고 도저히 안풀려서 며칠의 시간 간격을 두면서 풀이를 진행했습니다. https://programmers.co.kr/learn/courses/30/lessons/42583 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제를 보면서 큐를 활용한 문제풀이를 진행하면 될 것 같다고 생각을 했고 금방 풀 수 있을거라고 생각했지만 어려움이 많은 문제였습니다. 가장 애를 먹었던 부분이 시간이 지나면 트럭을 ..