>  기사  >  데이터 베이스  >  SQL Server에서 함수 및 저장 프로시저 작성

SQL Server에서 함수 및 저장 프로시저 작성

王林
王林앞으로
2023-09-16 15:13:02578검색

在 SQL Server 中编写函数和存储过程

저장 프로시저 및 함수, 특정 작업을 수행하는 데 사용되는 데이터베이스 개체에 포함된 SQL 문 모음입니다(또는 데이터 과학에서도 사용할 수 있음). 둘은 여러 면에서 다릅니다.

이 글에서는 기능과 절차, 그리고 그 차이점에 대해 자세히 설명하겠습니다.

저장 프로시저부터 시작해 보겠습니다. -

SQL의 저장 프로시저

간단하게 작성된 SQL 코드는 여러 번 재사용할 수 있도록 저장되어 저장 프로시저를 구성합니다. 자주 작성하는 쿼리가 있다면 이를 저장 프로시저로 저장한 다음 해당 저장 프로시저를 호출하여 저장 프로시저의 일부로 저장한 SQL 코드를 실행할 수 있습니다. 이렇게 하면 동일한 질문을 계속해서 작성하지 않아도 됩니다.

동일한 SQL 코드를 반복적으로 실행하고 저장 프로시저에 매개변수를 제공할 수 있습니다. 필요에 따라 저장 프로시저는 제공된 매개변수 값에 따라 적절하게 응답합니다.

저장 프로시저를 통해 성능을 향상할 수도 있습니다. 여러 작업을 수행하는 데 SQL 문 집합이 사용됩니다. 다음에 실행되는 SQL 문은 초기 SQL 문 및 조건부 논리의 결과에 따라 달라집니다. 이러한 SQL 문과 여기에 포함된 조건부 논리는 저장 프로시저에 작성하여 서버의 단일 실행 계획으로 결합할 수 있습니다. 모든 작업이 서버에서 수행되기 때문에 결과를 클라이언트에 전달하지 않고도 조건부 논리를 수행할 수 있습니다.

저장 프로시저의 장점

컴파일 및 실행

각 저장 프로시저는 SQL Server에 의해 한 번 컴파일된 후 실행 계획이 재사용됩니다. 저장 프로시저를 자주 호출하면 성능이 크게 향상됩니다.

클라이언트/서버 트래픽 감소

사용자 환경에서 네트워크 대역폭이 문제인 경우 저장 프로시저가 긴 SQL 검색을 유선을 통해 전송할 수 있는 단일 라인으로 압축할 수 있다는 점을 높이 평가할 것입니다.

효율적인 코드 재사용 및 프로그래밍 추상화

저장 프로시저는 많은 사용자 및 클라이언트 애플리케이션에서 사용할 수 있습니다. 계획된 방식으로 사용하면 개발 주기를 완료하는 데 시간이 덜 걸립니다.

강화된 보안 조치

기본 테이블에 대한 권한과 관계없이 사용자에게 저장 프로시저를 실행할 수 있는 액세스 권한을 제공할 수 있습니다.

SQL의 함수

SQL Server는 두 가지 유형의 기능을 지원합니다

내장된 기능

기본 제공 함수는 Transact-SQL 참조 정의에 따라 작동하며 변경할 수 없습니다. Transact-SQL 참조에 의해 설정된 구문을 따르는 Transact-SQL 문만 이러한 함수를 참조로 사용할 수 있습니다.

시스템에서 이러한 기능을 이미 정의했습니다. 두 가지 카테고리로 나누어져 있어요 -

이 튜토리얼에서는 아래 표를 참조하겠습니다 -

ID

이름

태그

나이

1

스턴

90

19

2

물론이죠

50

20

3

Pratik

80

21

4

Dhanraj

95

19

5

85

18

스칼라 함수

이러한 작업은 값을 입력으로 받아 출력합니다. 일부 시스템 스칼라 연산에는 -

이 포함됩니다.
  • round() - 숫자를 가장 가까운 세 자리로 반올림합니다. 예를 들어 round(28.64851)은 28.649

  • 를 생성합니다.
으아아아
  • upper() - upper("english")는 영어를 반환하고 lower("ENGLISH")는 영어를 반환합니다.

으아아아

출력

으아아아
  • rand() - rand() 함수를 사용하면 범위 내 임의의 숫자가 반환됩니다. 예를 들어, Rand(8)는 0.71372242401 또는 기타 무작위로 생성된 숫자를 반환합니다.

시스템 집계 기능

이 함수는 단일 값을 반환하고, 이 함수는 입력 인수 컬렉션을 사용합니다. 예를 들면 다음과 같습니다 -

Avg() 는 제공된 모든 입력에 대한 평균 값을 제공합니다.

으아아아

출력

으아아아

Count() 이 함수는 주어진 조건을 충족하는 행 수를 반환합니다.

으아아아

출력

으아아아

Max() 및 min() max() 및 min() 함수는 제공된 인수 중에서 가장 높은 값과 가장 낮은 값을 반환합니다.

으아아아

출력

으아아아

으아아아

출력

으아아아

사용자 정의 함수

CREATE FUNCTION 명령을 사용하여 사용자 지정 Transact-SQL 함수를 만듭니다. 사용자 정의 함수는 단일 값을 제공하며 더 많은 입력 매개변수에는 0이 필요합니다. 일부 사용자 정의 함수(UDF)는 10진수, 문자 또는 정수와 같은 단일 데이터 값을 반환합니다.

스칼라 연산

사용자 정의 스칼라 함수는 함수 작업의 각 단계에 대한 값을 출력합니다. 함수의 모든 데이터 유형 값을 반환합니다.

테이블 값 함수

인라인 기능

사용자 정의 값이 있는 인라인 테이블 함수는 작업을 수행하고 결과를 테이블로 반환합니다. BEGIN/END 본문이 없습니다. 결과를 얻으려면 SELECT 문을 사용하면 됩니다.

다중문 함수

사용자 정의 함수에 수정 불가능한 SELECT 문이 포함되어 있거나 여러 SELECT 문이 포함되어 있는 경우 제공되는 결과는 변경되지 않습니다. 테이블 변수를 명시적으로 지정하고 다양한 SQL 쿼리에서 검색할 수 있는 값을 설명해야 합니다.

사용자 정의 함수의 장점

  • 모듈형 프로그래밍 지원

  • 이 기능은 한 번 생성하여 데이터베이스에 저장한 다음 소프트웨어에서 필요한 만큼 여러 번 사용할 수 있습니다. 사용자 정의 함수는 애플리케이션의 소스 코드를 변경하지 않고도 변경할 수 있습니다.

  • 실행 속도가 빨라집니다

  • Transact-SQL 사용자 정의 함수(예: 저장 프로시저)는 계획을 캐싱하고 여러 실행에서 재사용하여 컴파일 비용을 줄입니다. 사용자 정의 함수는 사용할 때마다 다시 분석하고 최적화할 필요가 없으므로 실행 시간이 크게 단축됩니다.

  • 계산 워크로드, 비즈니스 논리 및 문자열 작업의 경우 CLR 함수는 Transact-SQL 함수보다 훨씬 더 나은 성능을 발휘합니다. 데이터 액세스 집약적인 논리는 Transact-SQL 작업에 더 적합합니다.

  • 네트워크 활동이 줄어들 수 있습니다.

  • 함수는 단일 숫자 표현식으로 표현할 수 없는 복잡한 제약 조건을 기반으로 정보를 필터링하는 작업을 나타내는 데 사용할 수 있습니다. 클라이언트에 제공되는 행 수를 줄이기 위해 이 함수를 WHERE 절에서 사용할 수 있습니다.

사용자 정의 함수와 저장 프로시저의 차이점

다음 표에서는 SQL의 사용자 정의 함수와 저장 프로시저 간의 주요 차이점을 강조합니다.

표준

사용자 정의 함수

저장 프로시저

반환 값

단일 값

단일, 다중 또는 심지어 0

매개변수

값 입력

입력 및 출력 값

데이터베이스

수정 불가

수정 가능

성명

SELECT 문만

SELECT 및 DML 문

전화

시술전화

함수에서는 호출할 수 없습니다

컴파일 및 실행

매번 컴파일해야 함

한 번만 컴파일하세요

거래 관리

불가능

불가능

결론

이 글에서는 저장 프로시저와 그 장점, 기능, 함수 유형, 함수의 장점에 대해 심도 있게 논의했으며 최종적으로 함수와 저장 프로시저의 차이점으로 결론을 내렸습니다.

위 내용은 SQL Server에서 함수 및 저장 프로시저 작성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제