SQL5 SQL기초 프로시저(Stored Procedure) 프로시저는 프로그램 영역이 아닌, DB자체에서 SQL구문을 관리하고자 할 때 사용한다. 데이터베이스에 SQL 구문을 객체화하여 호출방식으로만 사용하는 방식이다. procedure 생성 방법은 delimiter // CREATE PROCEDURE spNoCartMember() BEGIN -- 조회할 select 문 생성 SELECT mem_id , mem_name FROM `member` WHERE mem_id NOT IN (SELECT cart_member FROM cart ) ; END // delimiter ; 위와 같은데 view에서 사용했던 쿼리문을 그대로 작성하였다. 다른점은 create procedure로 시작하고, 사용할 이름옆에 함수처럼 소괄호()를 붙인다. 호출할 때도 함수와 비슷한 형태.. SQL 기초 2023. 12. 6. SQL기초 (view) View는 가상테이블로, 자주 사용되거나 구문이 긴 쿼리문을 조회의 목적으로 사용할 때 사용한다. 이리 객체화 시켜서 테이블처럼 사용하는것이다. 이때 view를 사용할 때 주의할 점은 view는 조회를 위한 기능이다. 입력, 수정, 삭제도 가능하지만 view의 사용 목적에는 부합하지 않다. view 사용 예) SELECT mem_id , mem_name FROM `member` WHERE mem_id NOT IN (SELECT cart_member FROM cart ); 데이터베이스에 member와 cart는 PK(mem_id)와 FK(cart_member)로 연결되어 있다. 물품을 구매하면 cart_member컬럼에 기록이 남는다. 이때 구매한 이력이 없는 고객을 조회할 때 위와 같은 코드를 작성할 수.. SQL 기초 2023. 12. 5. SQL 기초(사용자 정의함수) 어떠한 언어이던 함수는 코드의 재사용, 가독성 증가등을 위해 자주 사용한다. 이번엔 sql에서 함수를 제작해서 사용하는 방법을 정리해 보려고 한다. 데이터에 성별이 저장되어 있지 않을 때, 성별을 추출하기 위해 주민번호 뒷자리를 이용해 남성 / 여성을 추출하는 함수를 정의 -- 함수 구문 시작 delimiter // -- 사용자 정의 함수 CREATE FUNCTION udfGetMenWomen(paramNum int) -- 리턴 타입 정의 RETURNS varchar(4) -- 함수기능 시작 BEGIN -- 반환할 변수 선언 DECLARE RESULT varchar(4); -- 남여 구분을 위한 조건문 처리 IF mod(substring(paramNum, 1, 1) ,2) = 0 THEN SET RESU.. SQL 기초 2023. 12. 5. SQL 기초(union) SQL을 사용하며, 조회하는 컬럼을 따로 조회하지 않고 아래에 이어서 조회할 수 있게 하는 union에 대해서 정리해 보겠다. union은 따로 조회한 컬럼의 데이터를 행단위로 합쳐 조회할 수 있게 하는 것으로 SELECT 'member',mem_id, mem_name FROM `member` UNION SELECT 'cart', cart_member , cart_prod FROM cart ; 위와 같이 사용한다. 회원의 아이디와 이름 , 카트에서 주문했던 회원과 상품을 따로 조회하지 않고, 각각 조회한 후 회원의 데이터를 조회하고 행단위로 합쳐 카트의 데이터를 조회할 수 있다. 단, 조회결과들간의 컬럼의 개수는 동일해야 하며, 데이터 타입도 동일해야 한다. 컬럼의 갯수가 다르거나 컬럼의 데이터 타입이 .. SQL 기초 2023. 12. 4. SQL 기초(4) 함수들 sql에서 쿼리문을 작성하면서 사용했던 함수를 정리해 보려고 한다. 나는 SQL을 하면서 생각보다 다른 것을 할 때 보다 좀 더 편하게 느껴졌다. 이미 있는 데이터를 다루는 것도 있고, 논리를 생각하면서 작성하면 생각보다 편하게 쿼리문을 작성할 수 있었다. -- 2005년도에 회원이 주문한 데이터에 대하여, 전체 거래처별 매출금액의 총합을 조회하려고 합니다. -- 조회컬럼 : 거래처코드, 거래처명, 총매출금액 -- 정렬 : 총매출금액 기준 내림차순 SELECT buyer_id , buyer_name, SUM(cart_qty * prod_sale)AS total FROM buyer LEFT OUTER JOIN prod ON(buyer_id = prod_buyer) LEFT OUTER JOIN cart on.. SQL 기초 2023. 11. 28. 이전 1 다음