본문 바로가기
  • 개발 로그를 기록하며,
    복습하고 깊이를 더해갑니다.
728x90

SQL12

[SQL] 파티션(Partition) 사용하여 데이터 조회하기. 파티션은 데이터를 효율적으로 저장하고 관리하기 위한 기술로, 테이블이나 인덱스를 더 작은 논리적(물리적) 단위로 분할하는 것을 의미한다. 주요 특징1.성능 향상: 특정 파티션에 대한 쿼리를 실행할 때는 해당 파티션에만 접근하면 되므로 데이터 검색이 빨라질 수 있다. 2.유지 보수 용이성:대용량 테이블을 파티션으로 나누면 데이터 관리가 용이해진다. 특히, 특정 파티션의 데이터를 백업하거나 삭제하는 작업이 간편해진다.3.병렬 처리:파티셔닝은 쿼리를 병렬로 실행할 때 도움이 된다. 각 파티션을 서로 독립적으로 처리될 수 있으므로 병렬 처리를 통해 전체 쿼리의 성능을 향상시킬 수 있다. *파티션 유형: List partition, Range partition, Hash partition, Composite pa.. 2024. 2. 9.
[SQL] WITH 문법 (feat. recursive) WITH를 사용하여 복잡한 쿼리를 간결하게 표현하고, 임시 결과를 생성하여 가독성을 향상시킬 수 있다. SQL WITH절은 임시적인 결과 집합을 생성하여 쿼리 내에서 사용할 수 있게 해주는 기능이다. 주로 서브커리의 가독성 향상이나 동일한 서브쿼리를 여러번 사용 하는 등의 경우에 유용하게 사용할 수 있다. 일반적인 사용 예시 > WITH cte_name (column1, column2, ...) AS ( -- 임시 결과 집합을 생성하는 쿼리 SELECT column1, column2, ... FROM your_table WHERE your_conditions ) -- 기본 쿼리에서 WITH 절에 정의된 임시 결과를 활용 SELECT * FROM cte_name; 위의 쿼리에서 'cte_name'은 임시 .. 2024. 2. 9.
[SQL] SQL Cookbook - 07. 숫자 작업 1. 평균 계산하기부서 평균 급여 계산하기 (부서별)AVG : -- 전체select avg(sal) as avg_sal from emp -- 부서별 select deptno, avg(sal) as avg_sal from emp group by deptno 2. 열에서 최댓값, 최솟값 찾기주어진 열에서 가장 높은 값과 가장 낮은 값 찾기MIN : MAX : -- 전체select min(sal) as min_sal, max(sal) as max_sal from emp -- 부서별select deptno, min(sal) min_sal, max(sal) max_sal from emp group by deptno 3. 열의 값 집계하기열의 모든 값의 합계를 계산SUM : -- 전체select su.. 2023. 12. 19.
[SQL] SQL Cookbook - 06. 문자열 작업 1. 문자열 짚어보기- 문자열에서 각 문자를 행으로 반환하기 위해 문자열의 길이만큼 반복하며 출력 DATALENGTH:주어진 값의 길이를 byte단위로 반환한다. (문자열, 이진 데이터, 변수 등의 길이 측정) SUBSTRING:문자열에서 특정 부분을 추출한다. ex> SUBSTRING(문자열, 시작위치, 개수)select substr(e.ename, iter.pos, 1) as C from (select ename from emp where ename = 'KING') e, (select id as pos from t10) iter // 1~10까지의 id값을 가지는 t10테이블where iter.pos 2. 문자열에 따옴표 포함하기- 주어진 문자열에 항상 짝수의 따옴표가 있어야 하며, 작.. 2023. 10. 11.
[SQL] SQL Cookbook - 05. 메타 데이터 쿼리 메타데이터 쿼리는 데이터베이스나 시스템에서 데이터의 특성, 구조, 속성 등을 조회하고 검색하기 위한 쿼리로, 데이터의 정보를 분석하고 관리하는데 사용된다. *SMEAGOL이라는 스키마가 있다고 가정함.1. 스키마의 테이블 목록 보기특정 스키마에서 생성한 모든 테이블 목록 확인# information_schema.ta bles를 쿼리select table_name from information_schema.tableswhere table_schema = 'SMEAGOL' 2. 테이블의 열 나열하기데이터 유형, 테이블의 열과 해당 열이 있는 테이블의 위치를 나열.# information_schema.columns를 쿼리 select column_name, data_type, ordinal_position .. 2023. 10. 4.
[SQL] SQL Cookbook - 04.삽입, 갱신, 삭제 1. 새로운 레코드 삽입하기모든 열을 추가할 때는 열 목록을 생략할 수 있다.# 단일 행 삽입insert into dept (deptno, dname, loc) values (50, 'PROGRAMING', 'BALTIMORE') # 여러 행 삽입insert into dept (deptno, dname, loc) values (1, 'A', 'B'), (2, 'B', 'C') 2. 기본값 삽입하기default를 명시한 열은 insert시 값을 지정하지 않으면 디폴트 값으로 저장된다.# defaultcreate table D (id integer default 0, foo varchar(10))insert into D (name) values ('Bar') 3. null로 기본값 오버라이딩하기defa.. 2023. 9. 18.
[MyBatis] MyBatis란 💡 MyBatis 란? 객체 지향 언어인 자바의 관계형 데이터베이스 프로그래밍을 좀 더 쉽게 할 수 있게 도와 주는 개발 프레임 워크이다. 객체 지향 언어인 자바의 관계형 데이터베이스 프로그래밍을 좀 더 쉽게 할 수 있게 도와 주는 개발 프레임 워크이다. 💡 특징 복잡한 쿼리나 다이나믹한 쿼리에 강하다 - 반대로 비슷한 쿼리는 남발하게 되는 단점이 있다. 프로그램 코드와 SQL 쿼리의 분리로 코드의 간결성 및 유지보수성 향상 resultType, resultClass등 Vo를 사용하지 않고 조회결과를 사용자 정의 DTO, MAP 등으로 맵핑하여 사용 할 수 있다. 빠른 개발이 가능하여 생산성이 향상된다. 💡 스프링에 MyBatis 연동! 1. Mybatis 라이브러리 추가 (pom.xml) - versi.. 2023. 9. 8.
[SQL] SQL Cookbook - 03.다중 테이블 작업 1. 행 집합을 다른 행 위에 추가하기UNION : 중복된 행을 제거하고 두 개 이상의 쿼리 결과를 하나로 합친다.UNION ALL : 중복된 행을 제거하지 않고 두 개 이상의 쿼리를 결과를 합친다./*EMP 테이블에 있는 부서 10의 사원명 및 부서 번호와 함께, DEPT 테이블에 이쓴ㄴ 각 부서명 및 부서 번호를 표시.*/# UNION ALLselect ename as ename_and_dname, deptnofrom emp where deptno = 10 union all select '---------', null from t1 union all select dname, deptno from dept 2. 연관된 여러 행 결합하기JOIN : 두 개 이상의 테이블을 연결하.. 2023. 9. 8.
[SQL] SQL Cookbook - 02.쿼리 결과 정렬 1. 지정한 순서대로 쿼리 결과 반환하기 # ORDER BYselect ename, job, sal from emp where deptno = 10 order by sal asc 2.  다중 필드로 정렬하기order by 절에서 쉼표로 구분하여 여러 열을 나열하면 제일 왼쪽 열부터 우선순위를 가지고 정렬된다.# ORDER BYselect empno, deptno, sal, ename, job from emp order by deptno, sal desc 3.  부분 문자열로  정렬하기substr() 함수를 사용하여 문자열을 추출해 정렬할 수 있다.# ORDER BY, SUBSTRselect ename, job from emp order by substr(job, length(job)-1) .. 2023. 9. 7.
728x90