반응형
set global log_bin_trust_function_creators=1;
-- 함수를 만들려면 1로 세팅해야한다
use cookdb;
drop function if exists userfunc;
delimiter //
-- 기본적인 프로시저 함수 사용예제입니다.
create function userfunc(value1 int, value2 int)
returns int
begin
return value1 + value2;
end //
delimiter ;
select userfunc(100,200)
USE cookDB;
-- function을 만드는 예제이다
DROP FUNCTION IF EXISTS getAgeFunc;
DELIMITER $$
-- procedure랑 만드는 게 비슷하다
-- 다만 차이가 있는데, function은 리턴하기에 select * from 테이블이름 같이 다수의 값을 가져올 수는 없음
-- 그리고 procedure 내부에서만 function은 호출 가능하지만 역은 x
CREATE FUNCTION getAgeFunc(bYear INT) -- 매개값 리턴값이랑 헷갈리지말기
RETURNS INT
BEGIN
DECLARE age INT;
SET age = YEAR(CURDATE()) - bYear;
RETURN age;
END $$
DELIMITER ;
SELECT getAgeFunc(1979getAgeFuncgetAgeFunc);
SELECT getAgeFunc(1979) INTO @age1979;
SELECT getAgeFunc(1997) INTO @age1997;
SELECT CONCAT('1997년과 1979년의 나이차 ==> ', (@age1979-@age1997));
select userid, usrname , getagefunc(birthyear) as 만나이 from usertbl;
SHOW CREATE FUNCTION getAgeFunc;
DROP FUNCTION getAgeFunc;
drop function if exists testfunc;
delimiter //
create function testfunc(price int)
returns decimal(7,2)
begin
DECLARE rprice decimal(7,2);
if price >= 30000 then
set rprice = price * 0.1;
else
set rprice = price * 0.05;
end if;
return rprice;
end //
delimiter ;
select bookid,bookname,price, testfunc(price) as 이익 from booktbl;
SHOW CREATE FUNCTION testfunc;
DROP FUNCTION testfunc;
반응형
'Study > 프로그래밍 공부' 카테고리의 다른 글
| 자바와 mysql 연동 기초실습 (2) | 2024.09.27 |
|---|---|
| mySQL 종합실습 (기본키, 외래키 컨트롤) (3) | 2024.09.27 |
| 서블릿을 활용해 구구단 출력( 단 수가 한개인 경우) (4) | 2024.09.25 |
| mySQL 동적쿼리 (1) | 2024.09.24 |
| mySQL 에러처리 방법 예제 (1) | 2024.09.24 |