- 내장함수
- 저장 프로시저
- 트리거
- 사용자 정의 함수
- 트랜젝션
트리거 |
|
트리거를 생성하는 CREATE TRIGGER 명령문의 형식
create trigger 트리거_이름
[before|alter][insert|update|delete] on 테이블이름 for each row
begin
//sql명령문;
end
생성
delimiter //
create trigger afterInsertStu
after insert on 학생 for each row
begin
if (new성별 = '남')then
update 남녀학생총수 set 인원수 = 인원수 +1 where 성별 = '남';
elseif (new.성별 = '여')then
update 남녀학생총수 set 인원수 = 인원수 + 1 where 성별 = '여';
end if ;
end ;
//
delimiter ;
실행
insert into 학생
values ('s0008','최동석','경기 수원',2,26,'남','010-8888-6666','컴퓨터');
select*from 학생;
select*from 남녀학생총수;
DROP TRIGGER 명령문의 형식
drop trigger 트리거이름;
DROP TRIGGER 적용 예
show triggers;
예제) 'afterInsertStu'삭제하시오
drop trigger afterInsertStu
사용자 정의 함수
- SELECT문이나 프로시저 안에서 호출되어 특정 기능을 수행하고 결과 값을 반환하는 용 도로 사용
사용자 정의 함수 |
|
|
|
|
|
사용자 정의 함수를 생성하는 CREATE FUNCTION 명령문의 형식
create function 함수명(매개변수 매개변수_자료형)
returns 반환값_자료형
begin
-- sql명령문 ;
return 반환값;
end
사용자 함수 적용 |
|
![]() '수강' 테이블에서 전체 학생의 '학번', '과목번호', '평가학점' 과 한글로 변환된 '평가등급'을 검색하기. |
|
| DROP FUNCTION 명령문의 형식 | ![]() |
| DROP FUNCTION 적용 | |
![]() |
사용자 정의 함수 'Fn_Grade()'를 삭제![]() |
저장 프로시저, 트리거, 사용자 정의 함수의 비교
저장 프로시저
- 여러 응용 프로그램 사이에 공유함으로써 처리의 일관성 향상과 보안 강화
- 전송되는 SQL 명령문의 양을 줄이고 미리 컴파일된 코드를 호출함으로써 반복적인 처리 시성능 향상
트리거
- 복잡한 데이터 무결성을 강화, 다양한 데이터 처리 업무 규칙을 구현
- 성능이 다소 저하될 수 있음
사용자 정의 함수
- 특정 값뿐만 아니라 테이블도 반환할 수 있어 제한된 SQL 명령문의 기능을 확장시키고 명령문 작성의 편의성을 향상함

'2022 > DB 데이터베이스' 카테고리의 다른 글
| [DB] 정규화 (1) | 2022.11.17 |
|---|---|
| 0) [DB] SQL 응용 3 - 트랜잭션 (0) | 2022.11.03 |
| [DB] SQL 응용 1 (내장 함수 | 저장 프로시저) (0) | 2022.11.03 |
| SQL 7W (0) | 2022.11.03 |
| [DB] 데이터베이스 개념 (0) | 2022.10.07 |



