728x90 넓고 얕은 데이터베이스 지식45 EAV 모델에 대해 간단히 알아보자 EAV(Entity-Attribute-Value) 모델 일반적인 관계형 데이터베이스 모델은 엔터티의 속성을 포함하는 미리 정의된 열(column) 집합이 존재한다. 예시를 살펴보자. 판매자가 과일을 등록하면 그에 대한 정보를 저장하는 테이블을 만든다고 가정하자. 일반적인 관계형 데이터베이스 테이블 구조 ID USER_ID FRUIT_NAME PRICE UPDATED_TIME 1 1 APPLE 1000 2023-07-22 12:34:56 2 2 BANANA 2000 2023-07-22 13:45:50 3 2 ORANGE 2000 2023-07-23 18:09:10 위의 예시처럼 등록한 판매자 ID(USER_ID), 과일명(FRUIT_NAME), 가격(PRICE), 등록시간(UPDATED_TIME)을 데이터.. 2023. 7. 23. Spring Boot에서 H2 DB 3 가지 모드로 사용하는 방법 정리 H2 DB의 3 가지 모드 정리 Embedded Mode H2 데이터베이스가 이를 사용하는 서버와 동일한 JVM 내에서 실행된다. 애플리케이션의 실행에 의해 시작 및 중지된다. 데이터베이스가 파일 시스템의 파일에 저장되어 데이터의 지속성을 보장해 준다. In-Meomory Mode 데이터베이스의 데이터를 메모리에 저장하고 있다가 서버가 꺼지면 사라진다. 디스크에 데이터를 저장하지 않아 애플리케이션이 종료되면 데이터베이스가 소멸된다. 테스트 용도로 많이 사용한다. Server Mode H2 데이터베이스와 애플리케이션이 독립적으로 실행된다. h2/bin/h2.sh를 터미널로 실행하여 h2 서버를 실행시키는 방식을 사용한다. JDBC를 통해 TCP/IP 프로토콜을 사용하여 서버와 통신한다. 일반적인 데이터베이.. 2023. 6. 20. SQL - GROUP BY, HAVING GROUP BY 문 국가별, 지역별 등 동일한 값을 가진 행을 그룹화한다. 종종 집계 함수(COUNT(), MAX(), MIN(), SUM(), AVG())와 함께 사용되어 결과 집합을 하나 이상의 열로 그룹화한다. SELECT column_name(s) FROM table_name WHERE condition GROUP BY column_name(s) ORDER BY column_name(s); -- 각 국가의 고객 수를 나열 SELECT COUNT(CustomerID), Country FROM Customers GROUP BY Country; HAVING 절 WHERE 키워드는 집계 함수에 사용될 수 없기 때문에 SQL에 추가되었다. SELECT column_name(s) FROM table_name.. 2023. 4. 28. PostgreSQL과 MySQL의 비교 정리 PostgreSQL과 MySQL의 주요 차이점 PostgreSQL 복잡한 쿼리와 대규모 데이터베이스를 다룰 수 있는 기능이 풍부한 데이터베이스이다. 테이블 상속, 함수 오버로딩 등의 기능을 갖춘 객체 관계형 데이터베이스(ORDBMS)이다. MySQL 설치와 관리가 비교적 쉽고, 빠르고, 신뢰할 수 있고, 쉽게 파악할 수 있는 간단한 데이터베이스이다. 순수 관계형 데이터베이스(RDBMS)이다. PostgreSQL의 개요 30년 이상 활발하게 개발된 오픈소스 객체 관계형 데이터베이스 시스템이다. 포스트그레스큐엘이라고 발음한다고 한다. 정수, 문자열, 날짜, 타임스탬프 및 바이너리 객체를 포함한 광범위한 데이터 유형을 지원한다. PostgreSQL에는 사용자 정의 함수 및 저장 프로시저에 대한 지원도 포함되어.. 2023. 4. 28. SQL - UNION UNION 연산자 둘 이상의 SELECT 명령문의 결과 집합을 결합하는 데 사용한다. UNION 안에 있는 모든 SELECT 문은 반드시 같은 수의 열을 가져야 한다. 또한 같은 타입의 열이어야 한다. 모든 SELECT 문의 열은 반드시 동일한 순서여야 한다. SELECT column_name(s) FROM table1 UNION -- 중복 허용 X SELECT column_name(s) FROM table2; SELECT column_name(s) FROM table1 UNION ALL -- 중복 허용 O SELECT column_name(s) FROM table2; 2023. 4. 27. SQL - JOIN(INNER, LEFT RIGHT OUTER, FULL) JOIN 두 개 이상의 테이블 사이에 관련된 열을 기반으로 행을 결합하는 데 사용한다. Orders OrderID CustomerID OrderDate 10308 2 1996-09-18 10309 37 1996-09-19 10310 77 1996-09-20 Customers CustomerID ustomerName ContactName Country 1 Alfreds Futterkiste Maria Anders Germany 2 Ana Trujillo Emparedados y helados Ana Trujillo Mexico 3 Antonio Moreno Taquería Antonio Moreno Mexico "Orders" 테이블의 "CustomerID" 열은 "Customers" 텡블의 "Custom.. 2023. 4. 27. SQL - BETWEEN BETWEEN 연산자 주어진 범위 내에서 값을 선택한다. 값은 숫자, 텍스트, 날짜 등 다양하다. 포괄적이므로 시작 값과 끝 값이 포함된다. SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2; -- ex) 가격이 10 이상 20 이하인 모든 제품 SELECT * FROM Products WHERE Price BETWEEN 10 AND 20; -- ex) NOT BETWEEN SELECT * FROM Products WHERE Price NOT BETWEEN 10 AND 20; 2023. 4. 27. SQL - IN IN 연산자 WHERE 절 안에 여러 값을 지정할 수 있다. SELECT column_name(s) FROM table_name WHERE column_name IN (value1, value2, ...); -- SELECT 문 삽입 가능 SELECT column_name(s) FROM table_name WHERE column_name IN (SELECT STATEMENT); -- ex) SELECT * FROM Customers WHERE Country IN (SELECT Country FROM Suppliers); SELECT * FROM Customers WHERE Country NOT IN ('Germany', 'France', 'UK'); 2023. 4. 27. 이전 1 2 3 4 5 6 다음 728x90