mysql8 데이터베이스 개론 & SQL - 8 stored procedure 자주 사용되는 쿼리문을 저장해두고 필요할 때마다 호출해서 사용하기 위해 제공하는 기능 중 하나이다. 여러 쿼리문을 한번에 처리할 때 주로 사용하게 되는 쿼리문들의 집합이라 생각하면 쉬운데, 이렇게 사용함으로써 쿼리문의 재사용도 가능하고 저장 프로시저를 실행하게 되면서 발생하는 최적화와 컴파일 단계가 캐싱되어 여러 번 재사용될 때 실행 속도도 빨라지게 되는 이점이 있어서 사용된다고 한다. 즉 일회용 쿼리가 아닌 이상 일반 쿼리를 반복해서 실행하는 것보단 저장 프로시저를 반복해서 실행하는 게 빠를 수 있다는 의미다. (이론상) 3 tier architecture 모델 클라이언트-서버 아키텍처의 한 종류로써 전 게시글에서도 한번 언급한 적이 있다. 크게 Presentation t.. 2024. 2. 13. 데이터베이스 개론 & SQL - 7 Stored function 계산 용도의 목적으로 RDBMS 내부에 function 형태로 저장해서 쓸 수 있는 쿼리문 사용자가 정의한 함수 DBMS에 저장되고 사용되는 함수 Select, delete, update, insert 문에서 사용될 수 있다 delimiter delimiter $$ && 구문문자를 의미하는 delimiter 는 프로그래밍 언어에서 ;을 의미하는 문법의 끝을 나타내는 역할을 하는 키워드를 지칭할 때 사용한다. 사용자 정의 함수를 만들어주기 전 보통 사용되는 ;을 $$ 으로 바꿔줌으로써 함수 안에 써줄 ;과 서로 혼동되지 않게 해주는 용도라고 생각하면 된다. 위처럼 delimiter 로 사용할 문자를 적어주고, 마지막에 문법이 끝나면 지정해준 문자로 끝 마무리를 지어준다. cre.. 2024. 2. 11. 데이터베이스 개론 & SQL - 5 SQL에서의 Null 의 의미 unknown: 알 수 없는 경우 unavailable: 이용할 수 없는 경우 not applicable: 해당 사항이 없음, 사용 불가 예를 들자면 birth_date 정보가 null 이면? 생일이 없을리는 없을테니, 생일 정보를 공개하지 않거나 아직 입력하지 않은 경우일 것이다. 그렇다면 birth_date가 null 인 A, B 가 있다면 둘은 생일이 같은 것인가? 당연히 알 수 없다. 같거나 다를 것이다. 그저 입력을 안했거나 생일을 공개하지 않았을 경우가 크다. 그럼 SQL 에서 null 을 비교연산자를 사용한다면? 정확한 결과가 도출되지 않을 것이다. select id from employee where bitrh_date = NULL; (X) select id .. 2024. 2. 5. 데이터베이스 개론 & SQL - 4 서브쿼리 서브쿼리는 복잡한 조회를 위해 쿼리 안에 넣어진 쿼리를 의미한다. select를 포함한 insert, delete, update 에도 사용이 가능하다. 반대로 바깥 쿼리문을 아웃터 쿼리라고 한다. 서브쿼리를 사용할 때 주의할 점은 괄호 안에 써줘야 한다는 점이다. 차근차근히 개념에 접근하자면, id가 13인 사람의 생일보다 빠른 생일을 가진 사람을 조회하고자 한다. 1. id = 13인 사람의 생일을 조회 select birth_date from employee where id = 13; 2. 조회 결과를 토대로 전체 조회를 실시 select id, name, birth_date from employee where (1번 조회 결과) > birth_date; 3. 위의 두 쿼리문을 합쳐, 쿼리문.. 2024. 2. 4. 이전 1 2 다음