[sql] 프로시저 호출 시 테이블 관계 설정 방법
데이터베이스에서 프로시저를 호출하여 테이블 간의 관계를 설정하는 방법에 대해 알아보겠습니다.
1. INNER JOIN을 사용하는 방법
INNER JOIN은 두 개 이상의 테이블을 조인하여 관계를 설정하는 방법 중 하나입니다. 프로시저에서 INNER JOIN을 사용하여 테이블 간의 관계를 설정할 수 있습니다.
CREATE PROCEDURE GetOrderDetails
AS
BEGIN
SELECT Orders.OrderID, Customers.CustomerName, OrderDetails.Quantity
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID
INNER JOIN OrderDetails ON Orders.OrderID = OrderDetails.OrderID
END
위의 예시에서는 Orders
, Customers
, OrderDetails
세 개의 테이블을 INNER JOIN하여 관계를 설정한 후 주문 ID(OrderID
), 고객 이름(CustomerName
), 주문 수량(Quantity
)을 반환합니다.
2. FOREIGN KEY를 사용하는 방법
FOREIGN KEY는 테이블 간의 관계를 설정하는데 사용되는 제약 조건입니다. FOREIGN KEY를 이용하여 프로시저에서 테이블 간의 관계를 설정할 수 있습니다.
CREATE PROCEDURE GetOrderDetails
AS
BEGIN
SELECT Orders.OrderID, Customers.CustomerName, OrderDetails.Quantity
FROM Orders
JOIN Customers ON Orders.CustomerID = Customers.CustomerID
JOIN OrderDetails ON Orders.OrderID = OrderDetails.OrderID
END
위의 예시에서는 Orders
테이블의 CustomerID
가 Customers
테이블의 CustomerID
와 FOREIGN KEY로 연결되어 있고, Orders
테이블의 OrderID
가 OrderDetails
테이블의 OrderID
와 FOREIGN KEY로 연결되어 있습니다.
3. 서브쿼리를 사용하는 방법
서브쿼리는 하나의 쿼리 안에 또 다른 쿼리를 작성하는 방법입니다. 프로시저에서 서브쿼리를 사용하여 테이블 간의 관계를 설정할 수 있습니다.
CREATE PROCEDURE GetOrderDetails
AS
BEGIN
SELECT Orders.OrderID, Customers.CustomerName, OrderDetails.Quantity
FROM Orders, Customers, OrderDetails
WHERE Orders.CustomerID = (SELECT CustomerID FROM Customers WHERE Customers.CustomerID = Orders.CustomerID)
AND Orders.OrderID = (SELECT OrderID FROM OrderDetails WHERE OrderDetails.OrderID = Orders.OrderID)
END
위의 예시에서는 서브쿼리를 사용하여 Orders
테이블의 CustomerID
와 OrderID
를 검색한 후, 해당 값을 이용하여 관계를 설정합니다.