본문 바로가기
728x90

SQL13

[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.
[SQLD] SQL 자격검정 실전문제 - 핵심 정리 (데이터 모델링의 이해) SQLD 자격증 시험을 준비하며 SQL 자격검정 실전문제 교재의 제1-1장. 데이터 모델링의 이해 단원 핵심내용 정리 과목 1. 데이터 모델링의 이해 제1장. 데이터 모델링의 이해 발생시점에 따른 엔티티 분류 기본/키엔티티 (Fundamental Enity, Key Entity) 중심엔티티 (Main Entity) 행위엔티티 (Active Entity) 데이터 모델링이란? 정보시스템을 구축하기 위한 데이터 관점의 업무 분석 기법 현실세계의 데이터에 대해 약속된 표기법에 의해 표현하는 과정 데이터베이스를 구축하기 위한 분석/설계의 과정 데이터 모델링의 유의점 중복 (Duplication) 비유연성 (Inflexibility) 비일관성 (Inconsistency) 개념적 데이터 모델링 추상화 수준이 높고 업.. 2023. 10. 23.
[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 TRANSLATE('Hello', 'H', 'X') => Xello REPLACE: 문자열에.. 2023. 10. 11.
[SQL] SQL Cookbook - 05. 메타 데이터 쿼리 메타데이터 쿼리는 데이터베이스나 시스템에서 데이터의 특성, 구조, 속성 등을 조회하고 검색하기 위한 쿼리로, 데이터의 정보를 분석하고 관리하는데 사용된다. *SMEAGOL이라는 스키마가 있다고 가정함. 1. 스키마의 테이블 목록 보기 특정 스키마에서 생성한 모든 테이블 목록 확인 # information_schema.ta bles를 쿼리 select table_name from information_schema.tables where table_schema = 'SMEAGOL' 2. 테이블의 열 나열하기 데이터 유형, 테이블의 열과 해당 열이 있는 테이블의 위치를 나열. # information_schema.columns를 쿼리 select column_name, data_type, ordinal_pos.. 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시 값을 지정하지 않으면 디폴트 값으로 저장된다. # default create table D (id integer default 0, foo varchar(10)) insert into D (name) values ('Bar') 3. null로 기본값 오버라이딩하.. 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 ALL select ename as ename_and_dname, deptno from 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 BY select ename, job, sal from emp where deptno = 10 order by sal asc 2. 다중 필드로 정렬하기 order by 절에서 쉼표로 구분하여 여러 열을 나열하면 제일 왼쪽 열부터 우선순위를 가지고 정렬된다. # ORDER BY select empno, deptno, sal, ename, job from emp order by deptno, sal desc 3. 부분 문자열로 정렬하기 substr() 함수를 사용하여 문자열을 추출해 정렬할 수 있다. # ORDER BY, SUBSTR select ename, job from emp order by substr(job, length(job)-1) 4. 혼.. 2023. 9. 7.
728x90