본문 바로가기

728x90
반응형

공부 정리/DB

(46)
Spring Data Repository Interface Spring Data는 Spring 프로젝트 중 데이터 접근에 관련된 프로젝트이다. 기본적인 데이터 저장소의 특성을 유지하면서 데이터 접근을 위해 친숙하고 일관된 스프링 기반 프로그래밍 모델을 제공하는 것이 목표이다. 대표적으로 Spring Data Commons, Spring Data JPA가 있으며 해당 내용을 알아보도록 한다. Repository 데이터베이스 마커 인터페이스로, 타입과 id의 타입을 설정한다. ( 마커 인터페이스 ) CrudRepository CRUD 메서드를 제공한다. 생성, 읽기, 삭제 메서드가 제공된다. S save(S entity); Iterable saveAll(Iterable entities); Optional findById(ID id); boolean existsByI..
SQL select 쿼리 문법 순서 1. FROM 2. ON 3. JOIN 4. WHERE 5. GROUP BY 6. CUBE | ROLLUP 7. HAVING 8. SELECT 9. DISTINCT 10. ORDER BY 11. TOP - FROM GROUP BY HAVING SELECT - FROM ON JOIN WHERE SELECT DISTINCT ORDER BY - SELECT, ORDER BY는 나중에 실행된다 - JOIN을 사용했을 때 FROM ON JOIN WHERE 순서로 실행한다. 출처 : https://bicloud.tistory.com/20
CDATA란? CDATA란? CDATA는 Character Data(문자 데이터)의 약자로, 마크업 언어(XML)에서 데이터를 표시하기 위한 것입니다. 특수문자들을 태그가 아니라 데이터로 명시하고 싶을 때 사용합니다. 보통 XML 파일에서 쿼리 짤 때 많이 사용합니다. 이미 정의된 &lt, &gt, &amp 등을 사용할 수도 있지만 가독성을 너무나 해치기 때문에 CDATA를 이용하는 것이 가독성에도 훨씬 좋습니다. 사용법 1. CDATA 영역은 다음 순서로 시작합니다. 예시 CDATA 사이에 포함된 모든 문자는 문자 그대로 해석됩니다 만약 아래와 같은 문자열을 나타내고 싶다면? 중요점 : , / 와 같은 문자 데이터를 별도로 처리해야 합니다. //출력..
oracle ROWNUM & ROW_NUMBER 페이징을 구현할 때, ORACLE을 사용하면 ROWNUM을 사용한다. 어떤 방식으로 문서에 소개하고 있는지 궁금했고 나아가 관련 함수인 ROW_NUMBER도 궁금하여 같이 조사하게 되었다. ROWNUM이란? ROWNUM을 사용하면, 각각의 row에 순서대로 값을 부여한 새로운 칼럼이 생성된다. ( 1, 2, 3 ... ) 또한, 쿼리로 리턴된 row의 갯수를 제한할 때도 사용이 가능하다. SELECT * FROM employees WHERE ROWNUM < 11; 만약에 ORDER BY를 서브쿼리에 사용하고 탑 레벨에 ROWNUM을 사용하면, ROW가 정렬된 이후에 ROWNUM 조건을 추가할 수 있다. 예를 들어, 다음 쿼리는 employee_id의 가장 작은 10개의 숫자를 리턴한다. 이것을 top-N..
JOIN vs WHERE 차이점 회사에서 로그 정보를 약 4개의 테이블이 where조건으로 서로 연관되어 조회하고 있었습니다. 기존에는 회원들의 id를 where 조건에 걸어두면 되었지만, 새로운 기능은 비로그인 회원들의 개인정보 열람 기록도 로그에 포함하는 것이었습니다. 안타깝게도 비로그인을 하면 회원 id가 없기 때문에 해당 정보를 where에서 조건을 걸어줄 방법이 없었습니다. 따라서 where절을 모두 join으로 변경했습니다. 많은 테이블의 where조건을 join으로 변경하며 join의 매력에 대해 알아보겠습니다. 성능 이슈는 다루지 않습니다. *where where에서만 조건을 건다는 것은, from table1, table2, table3처럼 from에 테이블 정보가 모두 들어간다는 것이니다. 가장 먼저 where는 생각..
WHERE절에 조건(IF문) 추가하기 개요 DB에서 SELECT을 수행할 때 WHERE에 다양한 조건을 걸어야 할 때가 있습니다. 이 때 WHERE절에 "커피의 양이 50ml, 100ml, 150ml"와 같이 "같은 칼럼이지만 다른 값이 들어와야 하는 경우"도 있고 "커피, 우유, 콜라, 사이다"와 같이 "아예 상황에 따라 다른 칼럼을 사용해야 하는 경우"도 있습니다. 제 문제는 두번째 케이스였지만 먼저 첫번째 경우도 알아보겠습니다. 조건에 따라 결과 출력하기 첫번째의 경우는 CASE WHEN THEN으로 해결이 가능합니다. 그런데 해당 기능을 쓰면 결과적으로 "단순히 값"만 표현할 수 있습니다. ORACLE 공식문서 예시에서 SELECT절에 CASE WHEN THEN을 사용하는 예제가 있습니다. 아래 SELECT하는 칼럼을 먼저 살펴보고,..

728x90
반응형