-
[MSSQL] 10일 만에 마스터하는 MS SQL 실무 9, 10 편Backend/database 2024. 2. 18. 14:07
사용자 정의 함수
scalar 함수 > SUM이나 AVG 처럼 값을 반환하는 함수
CREATE FUNCTION <FUNCTION_NAME> ( @<INPUT_VARIABLE> // 값을 담을 수 있는 매개변수, 필요하지 않으면 생략 가능 ) RETURNS <DATA_TYPE> AS BEGIN <SQL_QUERY> RETURN <RETURN_VALUE> ENDTABLE 함수
CREATE FUNCTION <FUNCTION_NAME> ( @<INPUT_VARIABLE> ) RETURNS TABLE AS RETURN (<RETURN_TABLE_QUERY>)CREATE FUNCTION <FUNCTION_NAME> ( @<INPUT_VARIABLE> ) RETURNS @RETURN_TABLE TABLE ( -- 어떤 형식의 테이블을 반환할 지 명명 <TABLE DEFINITION> ) AS BEGIN <QUERY> INSERT INTO @RETURN_TABLE <TABLE_RETURN_QUERY> -- 그 형식에 일치하는 데이터를 INSERT 하면 해당 값이 반환됨 RETURN END저장 프로시저
> SQL에서 제공하는 프로그래밍 기능
> 함수보다 폭넓은 동작을 수행함
>> 복잡한 비즈니스 로직을 넣을 수 있고, 데이터 처리를 수행할 수도 있음
CREATE PROCEDURE <PROCEDURE_NAME> @<PARAMETERS> AS BEGIN <SQL_QUERY> END프로시저를 수정하는 SYNTAX
ALTER PROCEDURE <PROCEDURE NAME> @<PARAMETERS> AS BEGIN <SQL_QUERY> END프로시저를 삭제하는 SYNTAX
DROP PROCEDURE <PROCEDURE NAME>
IF ELSE 문
> BEGIN ... END 로 쿼리문들을 묶어줘야 함
>> BEGIN과 END 사이의 구문을 실행하는 것
>> 그렇지 않을 경우, 첫 문장만 실행되거나 오류를 반환한다.
// IF ELSE 문을 만드는 SYNTAX IF <조건문> BEGIN <SQL_QUERY1> END ELSE BEGIN <SQL_QUERY2> END동적 SQL
> 코드를 문자열로 만든 다음 그 문자열을 실행시키는 방법
>> "SELECT * FROM COMPANYINFO" 라는 문자열을 어떤 문자열 변수에 저장시킨 다음 그 문자열을 수행시키는 것
SELECT * FROM STUDY.DBO.COMPANYINFO =
EXEC('SELECT * FROM STUDY.DBO.COMPANYINFO')
필요한 경우?
> 매개변수로 테이블 명을 받아 해당 테이블의 값을 출력하고 싶은 경우
> 동적 쿼리를 사용 시, 기존 SQL 쿼리에 비해 다양한 동작 수행이 가능하다
'Backend > database' 카테고리의 다른 글
[MSSQL] 10일 만에 마스터하는 MS SQL 실무 7, 8편 (0) 2024.02.17 [MSSQL] 10일 만에 마스터하는 MS SQL 실무 5,6 편 (0) 2024.02.15 [MSSQL] 10일 만에 마스터하는 MS SQL 실무_1~4편 (0) 2024.02.13