DB
-
트랜잭션?DB 2024. 7. 24. 16:20
트랜잭션(Transaction)은 데이터베이스에서 하나의 논리적인 작업 단위를 이루는 일련의 연산을 말합니다. 트랜잭션은 데이터베이스의 상태를 변화시키는 작업으로, 일반적으로 여러 단계의 작업이 하나의 트랜잭션으로 묶여 수행됩니다. 트랜잭션은 반드시 ACID 속성을 만족해야 합니다1. 원자성(Atomicity)**: 트랜잭션 내의 모든 작업이 모두 성공적으로 수행되거나, 모두 수행되지 않아야 합니다. 일부 작업만 수행되는 일은 없어야 합니다.2. 일관성(Consistency)**: 트랜잭션이 시작되기 전과 완료된 후의 데이터베이스 상태는 일관성 있는 상태여야 합니다. 모든 데이터 규칙이 트랜잭션 완료 후에도 유지되어야 합니다.3. 고립성(Isolation)**: 트랜잭션이 동시에 실행될 때, 서로의 작업..
-
-
RDBMS 와 NoSQLDB 2023. 12. 23. 13:04
- RDBMS(관계형 데이터베이스 관리 시스템)와 NoSQL(비관계형 데이터베이스)은 데이터를 저장하고 관리하는 두 가지 주요 데이터베이스 유형입니다. 1. RDBMS (관계형 데이터베이스 관리 시스템): - 정의:RDBMS는 테이블 형태로 데이터를 저장하며, 각 테이블은 관계를 가지고 있습니다. - 특징: - 데이터는 정해진 스키마에 따라 구조화되어 있어야 합니다. - 데이터 간의 관계를 중요시하며, 테이블 간의 관계를 통해 데이터를 연결합니다. - SQL(Structured Query Language)을 사용하여 데이터를 조작하고 검색합니다. - ACID 속성(원자성, 일관성, 고립성, 지속성)을 보장하여 데이터 일관성과 안전성을 유지합니다. - 예시: MySQL, PostgreSQL, Oracle,..
-
필터링과 서브쿼리(IN.ALL.ANY)DB/Postgresql(DB) 2023. 11. 28. 19:30
쿼리 예시! 더보기 -- 1. 판매량 상위 3개 음료를 다음과 같이 조회하려 한다. 주어진 두 쿼리를 조합하여 이를 구하시오. -- 메인 쿼리 ( 판매량 상위 3개의 음료 정보) SELECT id AS "ID", name AS "음료명" FROM beverages WHERE id IN ( -- 음료 id 별, 판매량 SELECT beverage_id FROM order_details GROUP BY beverage_id ORDER BY SUM(COUNT) DESC LIMIT 3 ) ; -- 음료 id 별, 판매량 -- 판매량 상위 3개 음료의 판매량 SELECT beverage_id FROM order_details GROUP BY beverage_id ORDER BY SUM(COUNT) DESC LIM..
-
서브쿼리DB/Postgresql(DB) 2023. 11. 28. 18:57
더보기 -- 1. 음료(beverages)의 이름 및 가격과 함께, 가장 비싼 음료와의 가격 차이를 조사하려 한다.주어진 두 쿼리를 조합하여 이를 구하시오. -- (SELECT 절 서브쿼리를 사용할 것SELECT -- outter query(main query) -- 음료명,가격,가격 차이 조회 SELECT name AS "음료명", price AS "가격", price - ( -- 가장 비싼 음료의 가격 (단일값 결과 생성, 1x1열만 가능) SELECT -- Inner query(sub query) MAX(price),123 FROM beverages -- 5800원 ) AS "최대 가격과의 차이" FROM beverages ; -- 2. 주문내역(order_details)로부터 주문 별 음료 개수의..
-
그룹필터링 , 정렬, 조회 개수 지정DB/Postgresql(DB) 2023. 11. 28. 15:59
1. HAVING: 분류된 그룹들중 특정 그룹만 가져옴 2. ORDERBY: ASC(오름차순 정렬), DESC (내림차순 정렬) 3. LIMIT: 가져올 레코드를 제한하는 구문 더보기 -- 36000원 이상인 결제 수단 조회! SELECT ptype AS "결제 수단", -- 복습: GROUP BY는 그룹화된 컬럼만 할수 있다. ROUND(AVG(amount),2) AS" 평균 결제 금액" FROM payments GROUP BY ptype HAVING -- 그룹 필터링: 그룹화된 것들을 조건으로 선별! AVG(amount) >= 36000 ; -- 상품 이름과 가격을 기준으로, 누적 판매정보(판매량, 매출)를 조회 SELECT -- 4 products.name AS "상품명", products.pric..
-
그룹화(Group By 와 집계 함수)DB/Postgresql(DB) 2023. 11. 28. 14:00
- Group By 실습 더보기 -- 결제(payments) 테이블을 결제 방법에 따라 분류하고, 각각의 결제횟수를 조회하시오. SELECT ptype AS "결제방법", COUNT(ptype)AS"결제횟수" FROM payments -- 1 GROUP BY ptype -- 2 ; -- 상품(products) 테이블을 보관타입에 따라 분류하고, 각각의 상품 개수와 평균 가격을 조회 하시오. SELECT -- 3 ptype AS "상품 보관 타입", count(ptype) AS "상품 개수", ROUND(AVG(price),-1) AS "평균가격" FROM -- 1 products GROUP BY -- 2 ptype ; -- 사용자(users)와 주문(orders) 테이블을 조인하고, 사용자 닉네임별 배송..
-
JoinDB/Postgresql(DB) 2023. 11. 28. 00:11
출저: 홍팍 (https://www.youtube.com/@hongpark) 이 블로그 기록은 개인 공부용 기록입니다. - INNER JOIN 예시 모음 더보기 1. 예시 사진#1에 달린 모든 댓글내용 과 작성자 닉네임을 조회하시오 SELECT comments.body, -- 댓글 내용 users.nickname -- 작성자 네임 FROM comments Join users on -- users를 붙임 users.id = comments.user_id WHERE comments.photo_id = 1 ; 2. 사진#5의 파일명과 사진 게시자 닉네임을 조회하시오. SELECT photos.filename, users.nickname FROM photos Join users ON users.id = phot..