코딩애플 강의를 통해 배운 SQL & Database를 정리한 글입니다.
2025년 3월 01일
Part 3 : Part 3
-- Database / Procedures / Source
CREATE PROCEDURE mart.get_all()
begin
select *
from product
where 가격 > 5000;
END
-- sql
call mart.get_all()
DELIMITER $$
$$
CREATE PROCEDURE 데이터베이스.프로시저명()
begin
코드;
END
$$
DELIMITER;
-- sql
call 데이터베이스.프로시저명
set @hello = '안녕하세요 반갑습니다';
select @hello
-- procedure에서 변수생성
DELIMITER $$
$$
CREATE PROCEDURE 데이터베이스.프로시저명()
begin
declare 변수1 int default 123;
select 변수1
END
$$
DELIMITER;
DELIMITER $$
$$
CREATE PROCEDURE 데이터베이스.프로시저명(구멍 int)
begin
select *
from product
where 가격 > 구멍
END
$$
DELIMITER;
call 데이터베이스.프로시저명(7000)
DELIMITER $$
$$
CREATE PROCEDURE 데이터베이스.프로시저명(out 구멍 int)
begin
set 구멍 = 20;
END
$$
DELIMITER;
call 데이터베이스.프로시저명(@변수);
select @변수;
now() 를 사용select *
from date_test.blog
where
발행일 > '2022-03-09 23:24:25'
select date_format('2022-03-09 23:24:25' , '%y년 %m월 %d일이에요~!')
now() 를 사용-- procedures
CREATE FUNCTION mart.yen(구멍 int)
RETURNS INT
DETERMINISTIC
begin
return 구멍 * 0.1 + 50;
END
-- sql
select yen(가격)
from mart.product
구멍에 뭘 넣어도 항상 같은 값을 RETURN 하면 DETERMINISTIC
SQL 문법을 사용안하면 NO SQL 표기해야하고
안에 SELECT를 사용하면 READS SQL DATA
안에 INSERT DELETE를 사용하면 MODIFIES SQL DATA
now() 를 사용IF 조건식1 THEN
조건식1이 참이면 실행할 쿼리문;
ELSEIF 조건식2 THEN
조건식2가 참이면 실행할 쿼리문;
ELSE
그게 아니면 실행할 쿼리문;
END IF;
indexs클릭 후 인덱스 생성primary key는 인덱스 없어도 빠르다select *
from index_test.library
where match(서명) against('부동산')
-- IN BOOLEAN MODE 사용하자
start transaction
insert into mart.product values(100,'a','a',1,1);
insert into mart.product values(100,'b','b',2,2);
-- 취소
rollback;
-- 적용
commit;
올해부터 RDS를 '퍼블릭 액세스 허용'으로 사용시 Public IPv4 사용요금 명목으로 월 3달러정도 추가요금이 발생해서 한 번 만들어보고 안쓰면 삭제합시다.
Azure가면 MySQL 유동서버 이런 것들도 만들기 쉬운데 IPv4 이용요금은 없고
Supabase 가면 무료로 PostgreSQL 500MB 호스팅받을 수 있습니다.
구글의 Cloud SQL 사용해도 되는데 신규가입시 6개월 이용가능한 $300 크레딧을 줍니다.
DROP TRIGGER IF EXISTS db명.트리거이름;
DELIMITER $$
CREATE TRIGGER db명.트리거이름
AFTER INSERT ON db명.테이블명
FOR EACH ROW
BEGIN
실행할코드~~
END $$
DELIMITER ;