데이터베이스 6

[JPA] 상속관계 매핑

상속관계 매핑 객체는 상속관계가 존재하지만, 관계형 데이터베이스는 대부분 상속 관계가 존재하지 않는다. 하지만 관계형 데이터베이스의 슈퍼/서브타입 모델링 기법이 객체의 상속 관계와 꽤 유사하다. 우리는 이를 이용해 객체의 상속 구조를 매핑할 수 있다. 상속 관계를 매핑하는 방법은 다음과 같다. @Entity @Inheritance(strategy = InheritanceType.XXX) // 상속전략 선택 public class Item { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private int price; } @Entity public class Album extends..

JAVA/JPA 2021.03.30

[데이터베이스] 정규화 : 이상(Anomaly), 함수적 종속성 (Functional Depenency)

데이터베이스 이상 (Anomaly) 관계형 데이터베이스의 잘못된 설계에서 발생하는 데이터 중복으로 인해 발생하는 부작용을 이상(Anomaly)이라 한다. 이상 현상의 종류를 회원의 정보를 저장하는 예시 테이블을 보며 알아보자. ID NAME ORDER_ID SHIPMENT_ID MEMBERSHIP 0001 Lee 18254382 46257892 True 0002 Kim 18254383 37282462 False 0003 Park 18254384 24235423 False 0003 Park 18254385 68872151 False 0003 Park 18254386 68753212 False 0004 Choi 18254387 78951231 True 위 테이블의 기본 키는 ID + ORDER_ID 이다. ..

데이터베이스 2021.03.25

[SQL] JOIN

JOIN Orders 테이블에서 3번 ShipperID 가 배송하는 주문의 목록을 조회 //JOIN을 사용하지 않은 SQL문 SELECT Shippers.ShipperID, ShipperName, OrderID FROM Shippers, Orders WHERE Shippers.ShipperID = Orders.ShipperID AND Shippers.ShipperID = 3; //JOIN을 사용한 SQL문 SELECT Shippers.ShipperID, ShipperName, OrderID FROM Shippers INNER JOIN Orders ON Shippers.ShipperID = Orders.ShipperID WHERE Shippers.ShipperID = 3; 배송하는 주문의 수가 60개에서 ..

[SQL] GROUP BY, HAVING

집계 함수와 GROUP COUNT, SUM, AVG, MAX, MIN Customers 테이블에서 국적이 영국인 고객의 수를 조회 SELECT COUNT(*) AS Result FROM Customers WHERE Country = 'UK'; COUNT는 NULL값을 세지 않는다. Products 테이블에서 2번 카테고리에 속한 제품의 가격 총합을 조회 SELECT CategoryID, SUM(Price) as SumOfPrice FROM Products WHERE CategoryID = 2; OrderDetails 테이블에서 10248번 주문의 평균 구매수량 조회 SELECT OrderID, AVG(Quantity) as AvgOfQuantity FROM OrderDetails WHERE..

[SQL] ORDER BY

ORDER BY Products 테이블에서 2번 카테고리에 속한 제품들을 가격 오름차순으로 조회 SELECT * FROM Products WHERE CategoryID = 2 ORDER BY Price ASC; OrderDetails 테이블에서 ProductID + Quantity 값의 내림차순으로 모든 주문을 조회 SELECT OrderDetailID, ProductID * Quantity as value FROM OrderDetails ORDER BY value DESC; Products 테이블에서 각 제품을 이름 오름차순, 가격 내림차순 조회 //여러 개의 정렬 기준 사용 SELECT * FROM Products ORDER BY ProductName ASC, Price DESC;

[SQL] SELECT, INSERT, UPDATE, DELETE

SQL 실습 사이트 SQL Tryit Editor v1.6 WebSQL stores a Database locally, on the user's computer. Each user gets their own Database object. WebSQL is supported in Chrome, Safari, Opera, and Edge(79). If you use another browser you will still be able to use our Try SQL Editor, but a different ver www.w3schools.com 이 카테고리의 게시글들은 위 사이트의 테이블을 기준으로 작성되었다. SELECT, UPDATE, DELETE SELECT 모든 고객의 정보를 조회 SELECT *..