반응형
-- 사용 테이블 예제
CREATE TABLE product_order(
	ID   INT AUTO_INCREMENT PRIMARY KEY,
	NAME VARCHAR(20),
	product VARCHAR(50),
	price INT
);


INSERT INTO product_order(name, product, price) VALUES('홍길동', 'TV', 5000);
INSERT INTO product_order(name, product, price) VALUES('홍길동', '핸드폰', 10000);
INSERT INTO product_order(name, product, price) VALUES('홍길순', '핸드폰', 10000);
INSERT INTO product_order(name, product, price) VALUES('김민지', '핸드폰', 10000);
INSERT INTO product_order(name, product, price) VALUES('홍길순', '컴퓨터', 2000);
INSERT INTO product_order(name, product, price) VALUES('김민수', '컴퓨터', 2000);
INSERT INTO product_order(name, product, price) VALUES('이민지', '생수', 500);
INSERT INTO product_order(name, product, price) VALUES('홍길동', '생수', 500);

📝SET

  • SET@변수이름 = 값;
    • 데이터베이스에서변수 선언은 이렇게 합니다.

 

SET @appleCount = 5;
SET @bananaCount = 15;

SELECT @appleCount AS appleCount;
SELECT @appleCount + @bananaCount AS total;

 

select * 
	from(SELECT @junho:=@junho+1 as wooram, A.* FROM mytable A, (SELECT @junho:=0) as R order by wooram desc) total 
where wooram > 259 and wooram <= 268;
  • select @junho:= 0
    • a = 0과 등치
  • @junho:=@junho+1
    • a = a + 1과 등치

 

즉 := 은 대입을 의미한다.

 

📝PREPARE, EXECUTE

  • PREPARE쿼리 이름을 만들고 FROM쿼리에 들어갈 내용을 적습니다.
  • PREPARE은 독자적으로 실행되진 않고 EXECUTE를 이용해야 실행이 됩니다.
  • USING은 ?값을 대입해주기 위해서 적은 것입니다. ?가 없다면 굳이 안 적어도 됩니다. 
SET @productName = "TV";

PREPARE productOrderQuery
   FROM 'SELECT name, product, price FROM product_order WHERE product = ?';
   
EXECUTE productOrderQuery USING @productName;

 

Document
name product price
홍길동 TV 5000
반응형