목록SQL (11)
여행을 개발하다
다소 늦은 SQLD 개발자 합격 후기를 공유하고자 한다. 2020년은 자격증 시험 시행기관과 수험자 모두 힘들었던 한 해였다. 코로나 때문에 장소 섭외에서부터 정부의 거리 두기 지침, 방역수칙 등 고려해야 할 사항이 너무나도 많았다. 그래도 취득을 목표로 잡았으니!! 공부를 하고 2020년 마지막 회차에 응시를 했다. 1. 학습 기간 실 학습 기간은 2주일이었다(점수를 보면 그럴 수밖에 없다...). 2주일이라고 해도 하루 종일 계속 잡고 있었던 것도 아니었으며, 퇴근 후 혹은 주말에 잠깐씩 봤던 게 전부였다. 참고로 실무에서 SQL을 쓰고 있는 실무자이며, 수험서를 구입하여 처음 봤을 때도 내용이 완전히 낯설(?) 지는 않았다. 2. 응시 일시, 장소 2020년 11월 29일(일), 성동구에 있는 덕수..
오라클의 계층형 쿼리와 대표적인 계층형 쿼리 구문인 START~WITH 구문에 대해 이야기해보고자 한다. 먼저 계층형 쿼리가 무엇인지에 대해 알아본다. 계층형 쿼리? - 한 테이블에 담겨 있는 여러 레코드들이 서로 상하 관계(부모, 자식) 관계를 이루며 존재할 때, 이 관계에 따라 레코드를 hierarchical(상하위) 한 구조로 가져올 때 사용되는 SQL을 의미한다. 역시 단어 그 자체로만 설명하려니 어려운데, 쉽게 생각하면 조직도, 메일함, 문서함 등을 예로 들 수 있다. 위 회사 조직도는 최상위에 A 회사를 중심으로 경영지원부, 영업본부로 나뉜다. 그리고 경영지원부는 다시 회계팀, 인사팀, 재무팀, 영업본부는 국내영업팀, 해외영업팀 등으로 나뉜다. 이때, 회계팀, 인사팀, 재무팀의 부모 부서는 경..
이번 포스팅에서는 오라클의 XMLELEMENT, XMLAGG 함수에 대해 이야기하고자 한다. 하지만 각 함수의 고유한 기능보다는, 두 개의 함수를 조합한 '활용'에 더 초점을 맞추려고 한다. * Oracle 10g 버전 이상부터XMLAGG, WM_CONCAT 함수를 조합하면 보다 간단하게 사용 가능하다. 먼저 두 함수의 정의에 대해 알아본다. 1. XMLELEMENT - 정의 : 반환되는 레코드를 XML 요소로 바꾸어준다. - 함수 인수 :XMLELEMENT([태그명], 레코드명) 함수의 이름 자체가 멀리서 보면 가독성이 떨어진다. 하지만 자세히 보면'XML + ELEMENT = XMLELEMENT'이다. 첫 번째 인수에는 XML의 요소로 사용할 태그를 지정하고, 그 뒤에는 SELECT할 필드명을 적어준..
오늘은 Oracle Data Dictionary에 대해 포스팅하고자 한다. 처음 Data Dictionary에 대해 들었을 때는 프로시저나 함수, 트리거와 같이 무엇인가 아주 복잡한 개념으로만 생각했다. 그런데 말 그대로 백과사전이라는 뜻이었고, 오라클 데이터베이스에 대한 수많은 정보를 제공하는 역할을 하고 있었다. '데이터 사전'이라 불리는만큼, 다수의 테이블이 포함되어 있는 데이터베이스를 핸들링 할 때 꽤나 유용하게 사용하고 있다. 1. Data Dictionary란? - 데이터 사전(Data Dictionary)이란 대부분 읽기전용으로 제공되는 테이블 및 뷰들의 집합으로 데이터베이스 전반에 대한 정보를 제공 한다. - 오라클 데이터베이스는 명령이 실행 될 때 마다 데이터 사전을 Access 한다. ..
지난 Join의 정의 및 문법에 관한 포스팅에 이어 ANSI Join & Oracle Join, Join의 종류에 대해 이야기하고자 한다. ANSI Join vs ORACLE Join SQL은 데이터베이스를 관리하기 위해 만들어진 프로그래밍 언어이며, 데이터베이스를 관리해주는 대부분의 Management System(DBMS; 오라클, MS-SQL, MYSQL 등)들은 SQL을 사용한다. 물론, DBMS 자체의 특수성 때문에 SQL의 사용법이 조금씩 다르기도 하지만, 큰 틀에서 보면 나름대로의 보편성을 가지고 있다. 왜냐하면 데이터베이스를 관리한다는 본질은 바뀌지 않기 때문이다. 이를 위해미국 국립 표준 협회(American National Standards Institute,ANSI)에서도 SQL에 대..
이번에는 데이터베이스의 Join에 대해 포스팅하고자 한다. 나는 실무에 투입되기 전, Join 구문을 배운적도 없었기 때문에 사용경험이 단 1도 없는 상태였다. 당연히 SELECT, UPDATE, DELETE, INSERT만 주구장창 배웠고, 예제로 사용했던 데이터베이스도 많아야 2개의 테이블만 포함되어 있었다. 하지만 처음 투입된 셀트리온 프로젝트에서 본 모든 SQL은 JOIN 파티라고 해도 이상하지 않을만큼 그 사용빈도와 중요도가 높았다. 그럼 JOIN이 무엇이고, 그 종류에는 어떤 것들이 있으며, 어느 상황에서 쓰이는지 알아보도록 한다. 조인(Join)이란? - 다수의 테이블에 포진해있는 데이터들을 조합하여 하나의 열(ROW)로 가져올(SELECT) 때 사용한다. - 반드시 테이블들 간 특정 관계(..
이번 포스팅에서는 오라클 PL/SQL의 Function(함수)에 다루고자 한다. 프로시저(Procedure)가 일련의 정해진 작업들을 순차적으로 처리하는데 사용된다면, 함수(Function)는 작업식을 계산하여 특정 값을 리턴받고자 할 때 사용된다. 그럼 Function의 정의, 선언 방법, 문법 및 실행방법에 대해 알아본다. 함수(Function)란? - 보통 값을 계산하고 결과값을 반환하기 위해서 함수를 많이 사용한다. - 대부분 구성이 프로시저와 유사 하지만IN 파라미터만 사용할 수 있다. - 반드시 반환 될 값의 데이터 타입을RETURN문에 선언해야 한다. - 또한 PL/SQL블록 내에서RETURN문을 통해서 반드시 값을 반환해야 한다. 출처 :http://www.gurubee.net/lectur..
지난 PL/SQL 입문 포스팅에 이어 Procedure(프로시저)에 대해 알아보고자 한다. Oracle PL/SQL의 Block 종류에는 크게 3가지로, Anonymous Block(익명 블록), Procedure(프로시저), Function(함수)로 나뉜다. 그 중 Procedure의 사전적인 의미는 '순서'인데, PL/SQL에서도 그 의미를 크게 벗어나지는 않는다. 프로시저란 '일정한 순서에 따라 작업을 진행하는 Block'을의미한다. 각각의 프로시저는 고유한 명칭을 가지는데, 이런 점에서도 '익명 블록'의 특징과 구분된다. 그렇다면 프로시저가 무엇인지 자세히 알아보도록 한다. 프로시저(Procedure)란? - 특정 작업을 수행하는,이름이 있는 PL/SQL BLOCK이다. - 매개 변수를 받을 수 ..