본문 바로가기
728x90

💾Database & Server/SQL9

[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 - 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.
[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.
[SQL] SQL Cookbook - 01.레코드 검색 1. 테이블의 모든 행과 열 검색하기 별표(*) 문자는 SQL문에서 특별한 의미를 가진다. *를 사용하면 지정된 테이블의 모든 행이 반환된다. select * from 테이블명 대화형으로 즉석에서 실행하는 쿼리는 *를 사용하면 좋지만 프로그램 코드를 작성할 때는 각 열을 개별 지정하는게 좋다. 성능은 같지만 쿼리에서 어떤 열을 반환하는지 명확하게 알 수 있으며, 다른 사용자가 이해하기 쉽다. 2. 테이블에서 행의 하위 집합 검색하기 테이블에서 특정 조건을 충족하는 행만 보기 위해서는 WHERE절로 가져올 행을 지정(필터링) 할 수 있다. select * from emp where deptno = 10 3. 여러 조건을 충족하는 행 찾기 여러 조건을 충족하는 행을 반환하기 위해서는 OR 및 AND절과 함께.. 2023. 8. 31.
[SQL] Join의 종류와 사용법 💡Join이란? 2개 이상의 테이블을 연결하여 하나의 테이블처럼 데이터를 검색 할 때 사용한다. Ex. SELECT 테이블.컬럼, 테이블.컬럼 FROM 테이블1,테이블2 WHERE 조건 Join의 종류 Inner Join 내부조인은 가장 많이 사용되는 조인 구문 중에 하나다. 내부 조인은 조인 Condition에 따라 2 개의 테이블(A, B)의 컬럼을 합쳐 새로운 테이블을 생성한다. 즉 교차 조인을 한 결과에 조인 조건문을 충족시키는 레코드를 반환한다고 생각할 수 있다. 1) SELECT 조회할 컬럼 FROM 테이블1, 테이블2 [WHERE 조건문] 2) SELECT 조회할 컬럼 FROM 테이블1 (INNER) JOIN 테이블2 ON 테이블1.컬럼 = 테이블2.컬럼 [WHERE 추가조건] Natural.. 2023. 8. 29.
728x90