본문 바로가기
728x90

query12

[SpringDataElasticsearch] Index 생성/삭제, Entity 저장/검색, Query 사용 등 조작 방법. Spring Data Elasticsearch는 여러 인터페이스를 사용하여 Elasticsearch 인덱스에 대해 호출할 수 있는 작업을 정의한다. 인터페이스는 Elasticsearch API 구조로 되어 있으며 인덱스 관리, 도메인 유형에 대한 읽기/쓰기 매핑 지원, 풍부한 쿼리 및 기준 API, 자원 관리 및 예외 번역 등의 기능 사용할 수 있게 해준다. 1. IndexOperations (인덱스 작업) IndexOperations는 인덱스 수준에서 동작하는 작업을 정의하는 인터페이스이다. 주로 인덱스를 생성하거나 삭제하는 등의 관리 작업을 수행한다. IndexOperations indexOps = elasticsearchRestTemplate.indexOps(MyEntity.class); index.. 2023. 12. 16.
[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.
[JPA] QueryDSL이란? QueryDSL은 JPA를 사용하여 데이터베이스 쿼리를 작성하고 실행하기 위한 유용한 도구이다. QueryDSL을 사용하면 Java 코드로 쿼리를 작성할 수 있어서, 컴파일 타임 오류확인 및 IDE의 자동완성 기능을 사용할 수 있다. QueryDSL?: JPA Entity와 관련된 쿼리를 생성하기 위한 builder 라이브러리이다. SQL을 직접 작성하는 대신, Java 코드를 사용하여 query를 작성할 수 있다. Entity와 Q타입: Entity의 메타 모델을 사용하여 query를 작성하기 때문에 Entity클래스에 대응하는 Q타입 클래스가 필요하다. ex) Customer -> QCustomer 문법: QueryDSL은 Java코드로 작성되며, MethodChaining을 사용하여 query를 작.. 2023. 9. 26.
[JPA] JPQL (Java Persistence Query Language) JPQL은 JPA에서 사용하는 객체지향적인 쿼리 언어로 JPQL을 사용하여 Entity객체를 대상으로 쿼리를 작성할 수 있다. 객체 중심 쿼리 언어: JPQL은 데이터베이스 테이블이 아닌 Entity객체를 대상으로 쿼리를 작성한다. SQL과 유사하지만 테이블이 아닌 Entity와 그 Entity의 속성을 사용한다. select, from, where, group by, having, order by 등 표준 SQL과 기본 문법은 같다. 특징: JPQL은 객체지향적이며 Entity객체를 대상으로 쿼리를 작성하기 때문에 데이터베이스에 종속적이지 않다. JPQL을 사용하면 Entity객체 사이의 관계를 활용하여 복잡한 쿼리도 작성할 수 있다. Query문에서 FROM [Entity] [EntityAlias] .. 2023. 9. 25.
[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.
728x90