[sql] SQL에서 데이터베이스 객체 간의 상호작용을 관리하는 방법은 무엇인가요?
  1. 테이블 관계 설정: 테이블 간의 관계를 설정하여 데이터 간의 상호작용을 관리할 수 있습니다. 예를 들어, 외래 키를 사용하여 두 개의 테이블을 연결할 수 있습니다. 이를 통해 데이터를 쉽게 가져오고 수정할 수 있습니다.
CREATE TABLE customers (
  id INT PRIMARY KEY,
  name VARCHAR(50),
  email VARCHAR(100)
);

CREATE TABLE orders (
  id INT PRIMARY KEY,
  customer_id INT,
  product_name VARCHAR(50),
  FOREIGN KEY (customer_id) REFERENCES customers(id)
);
  1. 뷰(View): 뷰를 사용하면 여러 개의 테이블을 하나의 가상 테이블처럼 보여줄 수 있습니다. 이를 통해 특정 데이터에 쉽게 접근할 수 있고, 데이터의 일부만 표시하는 등 원하는 방식으로 데이터를 가공할 수 있습니다.
CREATE VIEW order_details AS
SELECT orders.id, customers.name, orders.product_name
FROM orders
INNER JOIN customers
ON orders.customer_id = customers.id;
  1. 저장 프로시저(Stored Procedure): 저장 프로시저는 SQL 문의 모음으로, 데이터베이스에서 실행되는 작업들을 논리적인 블록으로 구성합니다. 저장 프로시저를 사용하면 여러 개의 SQL 문을 한 번에 실행하고 재사용할 수 있습니다.
CREATE PROCEDURE get_customer_orders(id INT)
BEGIN
  SELECT *
  FROM orders
  WHERE customer_id = id;
END;
  1. 트리거(Trigger): 트리거는 데이터베이스 작업이 발생할 때 자동으로 실행되는 코드입니다. 예를 들어, 특정 테이블에 새로운 데이터가 삽입될 때마다 자동으로 실행되는 작업을 정의할 수 있습니다.
CREATE TRIGGER update_average_rating
AFTER INSERT ON reviews
FOR EACH ROW
BEGIN
  UPDATE products
  SET average_rating = (
    SELECT AVG(rating)
    FROM reviews
    WHERE product_id = NEW.product_id
  )
  WHERE id = NEW.product_id;
END;

위의 방법들은 SQL에서 데이터베이스 객체 간의 상호작용을 관리하는 몇 가지 예시입니다. 다양한 상황에 맞게 적절한 방법을 선택하여 데이터 관리를 효율적으로 수행할 수 있습니다.