관계형 데이터베이스 관리 시스템(RDBMS)에서는 함수, 프로시저, 커서, 트리거 등 다양한 구성요소가 필수적인 역할을 합니다. 데이터베이스 시스템의 유연성과 기능성을 향상시키는 역할을 합니다. 이를 통해 개발자는 맞춤형 비즈니스 로직을 구현하고, 반복 작업을 자동화하고, 데이터를 보다 효과적으로 관리할 수 있습니다.
이 가이드에서는 각 구성 요소에 대한 예제 코드 조각과 함께 이러한 구성 요소에 대한 포괄적인 설명을 제공합니다.
SQL의 함수는 입력을 받고, 연산을 수행하고, 값을 반환할 수 있는 저장 프로그램입니다. 프로시저와 유사하지만 함수는 값을 반환해야 하며 다른 표현식처럼 쿼리 내에서 사용할 수 있습니다.
숫자의 제곱을 계산하는 간단한 함수를 작성해 보겠습니다.
CREATE FUNCTION dbo.SquareNumber (@Number INT) RETURNS INT AS BEGIN RETURN @Number * @Number END
사용법:
SELECT dbo.SquareNumber(4); -- Output: 16
이 함수는 정수를 입력으로 받아 제곱을 계산하고 결과를 반환합니다.
프로시저(저장 프로시저라고도 함)는 하나의 단위로 실행될 수 있는 SQL 문 집합입니다. 프로시저에서는 매개변수를 사용하고, 삽입, 업데이트, 삭제, 선택과 같은 작업을 수행하고, 여러 결과를 반환할 수 있습니다(단, 함수처럼 단일 값을 직접 반환할 수는 없음).
직원의 급여를 업데이트하는 프로시저를 작성해 보겠습니다.
CREATE PROCEDURE dbo.UpdateSalary @EmployeeID INT, @NewSalary DECIMAL AS BEGIN UPDATE Employees SET Salary = @NewSalary WHERE EmployeeID = @EmployeeID; END
사용법:
EXEC dbo.UpdateSalary @EmployeeID = 101, @NewSalary = 75000;
이 프로시저는 EmployeeID와 NewSalary를 입력으로 사용하고 직원의 급여를 업데이트하며 어떤 값도 반환하지 않습니다.
SQL의 커서는 쿼리에서 반환된 각 행을 한 번에 하나씩 검색하고 처리할 수 있는 데이터베이스 개체입니다. 이는 단일 집합 기반 작업으로는 쉽게 처리할 수 없는 업데이트, 삭제 등 행 단위 작업을 수행해야 할 때 특히 유용합니다.
커서를 사용하여 전체 직원의 급여를 10% 업데이트하는 예를 작성해 보겠습니다.
CREATE FUNCTION dbo.SquareNumber (@Number INT) RETURNS INT AS BEGIN RETURN @Number * @Number END
설명:
트리거는 테이블에서 INSERT, UPDATE 또는 DELETE와 같은 특정 데이터베이스 이벤트가 발생할 때 자동으로 실행(또는 "실행")되는 특별한 종류의 저장 프로시저입니다. 트리거는 비즈니스 규칙을 적용하고, 데이터 무결성을 유지하고, 변경 사항이 발생할 때 관련 테이블을 자동으로 업데이트하는 데 유용합니다.
직원의 급여가 업데이트될 때마다 LastModified 열을 자동으로 업데이트하는 트리거를 만들어 보겠습니다.
SELECT dbo.SquareNumber(4); -- Output: 16
설명:
Component | Description | Example Use Case |
---|---|---|
Function | A stored program that returns a single value and can be used in queries. | Calculate the square of a number. |
Procedure | A stored program that can perform multiple actions (insert, update, delete) but does not return a value. | Update an employee’s salary. |
Cursor | A mechanism for iterating over a result set row-by-row, used for operations that cannot be easily expressed in set-based SQL. | Update all employees’ salaries by a fixed percentage. |
Trigger | A stored program that automatically executes when specific database events (INSERT, UPDATE, DELETE) occur. | Automatically update a timestamp column when a record is modified. |
이러한 각 구성 요소는 특히 복잡한 데이터베이스 환경에서 데이터베이스를 더욱 유연하고 유지 관리 가능하며 효율적으로 만드는 고유한 목적을 제공합니다.
위 내용은 SQL의 함수, 프로시저, 커서 및 트리거의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!