728x90

[ SQL ]/SQL 10

[ Oracle ] 오라클 힌트(Hint) 개념 및 사용법 정리

SQL 튜닝 - Oracle Hint 개념 오라클 힌트는 SQL 튜닝의 핵심 부분으로 일종의 지시 구문입니다.오라클 옵티마이저(Optimizer)에게 SQL문 실행을 위한 데이터를 스캐닝하는 경로,조인하는 방법 등을 알려주기 위해 SQL 사용자가 SQL 구문에 작성하는 것을 뜻합니다. 오라클이 항상 최적의 실행 경로를 만들어 내기는 불가능하기 때문에직접 최적의 실행 경로를 작성해 주는 것인데, 사용자가 특정 SQL 문장에서 어떤 인덱스가 선택도가 높은지알고 있는 경우 옵티마이저에 의존한 실행 계획보다 훨씬 효율적인 실행 계획을 구사할 수 있습니다.SELECT /*+ FULL(tb_empl) */ * FROM tb_empl WHERE deptno = 10; 정리해 보면오라클 힌트는 SQL문 내에 주석 형태..

[ SQL ]/SQL 2024.05.14

[ Oracle ] MERGE INTO 문 사용법 및 예제

드디어 진행하고 있는 프로젝트 개발이 막바지에 왔습니다.들어오는 요구 사항이 물 밀듯이 밀려오다 보니 야근을 많이 하다 보니 블로그 포스팅을 못했는데프로젝트하면서 나왔던 오류라든지 혹은 배워야 하는 부분에 대해 하나씩 정리해보려고 합니다. 오늘은 Query 가공하면서 가장 고생했던 MERGE INTO 문에 대해 알아보려고 합니다. 이전 프로젝트에서도 MERGE문을 사용할 경우가 종종 있었는데주로 데이터 마이그레이션이나 혹은 데이터 INSERT 하는 경우 사용합니다. 특히 기존 테이블에 데이터를 INSERT 하면 기존 데이터와 겹치지 않게 하기 위해 MERGE INTO 문을 사용합니다. 이 부분에서 그러면 데이터 INSERT 하는데 굳이 MERGE INTO 문을 사용해야 할까?의문에 빠질 수 있지만, 데이..

[ SQL ]/SQL 2024.05.08

[ H2 ] 윈도우 H2 데이터베이스 h2.bat 실행 오류

인프런 김영한님 "스프링 입문 스프링부트"강의 중 섹션 6. 스프링 DB 접근 기술 H2 데이터베이스 설치 파트에서 맥을 이용하시는 분들은 영상 그대로 따라 하셔도 되지만, 윈도우를 사용하고 계시는 분들은 cmd 창에서 시간 소모를 할 수도 있습니다. 저도 이 부분에서 불필요한 시간을 사용했던 경험이 있어서 블로그에 메모 해두려고 합니다. 그럼 h2를 설정할 때 주의할 점에 대해서 알아봅시다. 자바 버전 및 환경 변수 설정 h2를 설치하고 콘솔 창에 "h2.bat"을 입력해서 실행하는 과정에서 해당 명령어를 입력해도 연결이 되지 않거나, 실행되었다가 바로 꺼지는 경우가 있습니다. 이러한 상황이 발생했을 때 여러가지 문제점이 있을 수도 있지만, 먼저 자바 버전이 동일한 지 확인해보는 게 좋습니다. 환경변수..

[ SQL ]/SQL 2023.05.14

[ SQL ] 고급 함수

오늘은 SQL의 고급 함수에 대해서 포스팅해보려 합니다. 고급 함수로는 null값을 처리하는 함수, 비교 처리 함수(decode), 순위를 구하는 함수가 있는데, 순차적으로 알아봅시다. ■ NULL 처리 함수 null 처리 함수는 오라클 함수를 먼저 알고 넘어가는 게 좋습니다. 오라클 함수란, 특정한 결과 값을 얻기 위해 데이터를 입력할 수 있는 특수 명령어를 의미합니다. 오라클 함수는 함수를 제작한 주체를 기준으로 다음과 같습니다. 내장 함수(built-in function) : 오라클에서 기본으로 제공하는 함수 입니다. (내장 함수는 입력 방식에 따라 데이터 처리에 사용하는 행이 나뉩니다.) 단일행 함수(single-row function) : 데이터가 한 행씩 입력되고, 입력된 각 행별로 결과가 하..

[ SQL ]/SQL 2023.02.02

[ SQL ] View_Index_Sequence

오늘은 SQL에서 지원해 주는 객체에 대해서 포스팅해보려 합니다. ■ 뷰(View) SQL에서 뷰(view)는 다른 테이블에서 파생된 테이블을 의미합니다. 하지만 물리적으로 데이터가 저장되는 것이 아니라 논리적으로만 존재하며, 뷰(view)를 사용한 질의 시에는 DBMS(DB 관리 시스템)에서 뷰의 정의를 잘 파악하고 필요시 재 작성하여 수행해야 합니다. 뷰의 장단점은 다음과 같습니다. 1 ) View의 장단점 장점 논리적 데이터 독립성을 제공합니다. 동일 데이터에 대해 동시에 여러사용자의 상이한 응용이나 요구를 지원해 줍니다. 사용자의 데이터관리를 간단하게 해줍니다. 접근 제어를 통한 자동 보안이 제공됩니다. 단점 독립적인 인덱스를 가질 수 없습니다. ALTER VIEW문을 사용할 수 없습니다. 즉, ..

[ SQL ]/SQL 2023.02.01

[ SQL ] 테이블과 제약 조건(constraint)

이전 포스팅에서 트랜잭션과 서브 쿼리에 대해서 알아보았습니다. 오늘은 테이블 생성 및 제약조건에 대해서 포스팅해보려 합니다! ■ 테이블(table) 테이블이란 데이터 베이스에서 실제 데이터가 저장되는 곳입니다. 테이블에 대한 특징은 다음과 같습니다. 데이터베이스의 기본적인 데이터 저장 단위입니다. 데이터 베이스를 생성 하며 n개의 테이블을 생성할 수 있습니다. 테이블은 사용자가 접근 가능한 모든 데이터를 보유합니다.(레코드&칼럼으로 구성) 시스템 내에서 독립적으로 사용되길 원하는 엔티티를 표현할 수 있습니다. 두 엔티티 간의 관계를 표현할 수 있습니다. ■ 제약 조건(constraint) 제약 조건이란 데이터의 무결성을 지키기 위해, 데이터를 입력받을 때 실행되는 검사 규칙을 의미합니다. 이러한 제약 조..

[ SQL ]/SQL 2023.01.31

[ SQL ] Transaction and Sub Query

이본 포스팅은 트랜잭션의 기본 개념과 실무 SQL에서 정말 많이 사용하는 서브쿼리에 대해서 포스팅해보려 합니다. ■ 트랜잭션(Transaction) 트랜잭션이란 '거래'라는 뜻으로 데이터베이스 내에서 하나의 그룹으로 처리되어야 하는 명령문들을 모아 놓은 논리적인 작업 단위입니다. 데이터베이스 응용프로그램은 트랜잭션들의 집합으로 정의 할 수 있는데, 여러 단계의 처리를 하나의 처리처럼 다루는 기능입니다. 트랜잭션의 정의는 다음과 같습니다. 여려 개의 명령어의 집합이 정상적을도 처리되면 정상 종료됩니다. 하나의 명령어라도 잘못되면 전체 취소 됩니다, 트랜잭션을 쓰는 이유는 데이터의 일관성을 유지하면서 안정적으로 데이터를 복구하기 위함입니다. 트랜잭션이 필요한 이유는 안전성을 확보하는 방법으로 트랜잭션이 있는..

[ SQL ]/SQL 2023.01.30

[ SQL ] JOIN

이전 포스팅에서 SQL 함수에 대해서 알아보았습니다. 이번 포스팅은 함수를 활용하여 조인의 개념에 대해서 알아보고 기초적인 조인의 종류에 대해서 함께 알아보도록 하겠습니다. ■ JOIN 이란? 조인은 '어울리다'라는 의미를 가지고 있는데 이 말대로, 데이터베이스에서테이블 간의 결합을 이야기 합니다. 즉, 두 개 이상의 테이블에 대해서 결합하여 나타낼 때 조인이라는 것을 이용하며, 조금 더 해석해 보자면 하나의 테이블로 원하는 칼럼 정보를 참조할 수 없는 경우 관련된 테이블을 논리적으로 결합하여 원하는 컬럼 정보를 참조하는 방법 1 ) 전제조건 논리적으로 결합되는 2개 이상의 테이블에는 반드시 공통 칼럼이 있어야 합니다. 공통 칼럼은 데이터 타입과 데이터가 동일해야 함 2 ) JOIN 형식 select 컬..

[ SQL ]/SQL 2023.01.22

[ SQL ] SQL 함수 정리

오늘은 SQL을 활용하기 전 자주 사용하는 함수들을 정리하는 글을 써보려 합니다. 어떤 일을 수행하는 기능으로써 주어진 인수를 입력받아 처리하여 그 결과를 반환하는 일을 수행하려면 함수를 활용해야 하기 때문에 유용한 함수들을 알아봅시다. ■ 함수의 종류 단일행 함수 : 결과 레코드를 찾아서 출력할 때마다 (각 행에) 함수가 적용됩니다. 문자함수 - 날짜함수 - 문자변환함수 - 숫자변환함수 - 날짜변환함수 - 시스템함수 - 숫자함수 등 복수행 함수[집계 함수, 그룹함수] : 조건절에 만족하는 모든 행을 다 찾고 나서 모든 레코드를 한 번에 연산합니다. count() : 레코드 개수 sum() : 합계 avg() : 평균 max() : 최대값 min() : 최소값 round(값, 소수점자리수) : 지정소수점..

[ SQL ]/SQL 2023.01.21

[ SQL ] SQL(Structured Query Language)

JAVA를 어느 정도 공부했다면 데이터 베이스 또한 알아둬야 하기 때문에 오늘부터 SQL에 대해서 포스팅을 시작하려고 합니다!! ■ SQL이란? SQL은 Structured Query Language의 줄임말로 구조화된 질의 언어이며, 자료를 관리 및 처리하기 위해 설계된 언어입니다. SQL은 1070년대 초에 IMB에서 최초 개발되었으며 관계형 모델이라는 이론에서 파생된 특징을 가지고 있는데, 현재 SQL의 표준으로 ANSI SQL이 정립되었습니다. 각 DBMS 프로그램에서 ANSI SQL을 기반으로 개발된 개별 SQL을 사용하며 서로 근소한 차이를 보입니다. ■ NoSQL이란? NoSQl은 수없이 크고 작은 다양한 데이터의 처리 속도를 향상시키기 위해 RDBMS와는 달리 임시 저장공간에 데이터를 저장..

[ SQL ]/SQL 2023.01.19
728x90