160x600
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 데이터
- pandas
- SQL예제
- 회귀모델
- keras
- 해석
- 머신러닝
- 알고리즘기초
- 데이터 가공
- 데이터베이스
- 정확도
- MariaDB
- python
- 예측
- 선형회기모델
- HeidiSQL
- 파이썬
- Deep Learning
- 데이터전처리
- 데이터 분석
- pythone
- tensorflow
- Database
- 훈련
- 딥러닝
- 데이터 수집
- sklearn
- python기초
- 시각화
- 크롤링(crawling)
Archives
- Today
- Total
코딩헤딩
MariaDB 데이터베이스[database, DB] EXISTS() / 수정하기 본문
728x90
* exist(조회)
- 조회결과가 1건이라도 있으며 True / 0건이면 False
- 서브쿼리를 적용(다중컬럼의 다중행 모두 가능)
=> 구매내역이 없는 회원만 조회하기
SELECT mem_id, mem_name
FROM member
WHERE NOT EXISTS(SELECT cart_member
FROM cart
WHERE cart_member = mem_id);
예제1)
- 2005년도 구매내역이 있는 회원에 대한
- 회원아이디, 회원이름, 마일리지 조회
- 단, 구매내역이 있는 회원의 총구매금액이 3천만원 이상인 데이터에 대해서만 조회
SELECT mem_id, mem_name, mem_mileage
FROM member
WHERE EXISTS(SELECT SUM(cart_qty*prod_sale)
FROM cart, prod
WHERE cart_member = mem_id
AND cart_prod = prod_id
AND cart_no LIKE '2005%'
HAVING SUM(cart_qty*prod_sale)>=30000000);
1명에 대한 결과만 처리하기 떄문에 group by를 쓰지 않아도 having절 사용할 수 있다.
어차피 1명이니까
* 수정하기
- 회원아이디가 'a001', 'b001'인 회원의 마일리지값을 2로 수정하기
SELECT mem_id, mem_mileage
FROM member
WHERE mem_id IN ('a001', 'b001');
* 항상 검증용 문구 만드는게 좋다 (검증용 select문)
UPDATE member
SET mem_mileage = 2
WHERE mem_id IN ('a001', 'b001');
* 수정하기
예제1)
- 구매내역이 있는 회원의 마일리지값을 3으로 일괄 수정하기
SELECT mem_id, mem_name, mem_mileage
FROM member
WHERE EXISTS(SELECT cart_member
FROM cart
WHERE cart_member = mem_id);
* 검증용 문구
UPDATE member
SET mem_mileage = 3
WHERE EXISTS(SELECT cart_member
FROM cart
WHERE cart_member = mem_id);
예제2)
- 2005년도 구매내역이 있는 회원에 대한
- 회원아이디, 회원이름, 마일리지 조회
- 단, 구매내역이 있는 회원의 총구매금액이 3천만원 이상인 데이터에 대해서만 조회
- 회원의 마일리지 값을 1000점으로 바꾸기
SELECT mem_id, mem_name, mem_mileage
FROM member
WHERE EXISTS(SELECT SUM(cart_qty*prod_sale)
FROM cart, prod
WHERE cart_member = mem_id
AND cart_prod = prod_id
AND cart_no LIKE '2005%'
HAVING SUM(cart_qty*prod_sale)>=30000000);
* 검증용 문구
UPDATE member
SET mem_mileage = 1000
WHERE EXISTS(SELECT SUM(cart_qty*prod_sale)
FROM cart, prod
WHERE cart_member = mem_id
AND cart_prod = prod_id
AND cart_no LIKE '2005%'
HAVING SUM(cart_qty*prod_sale)>=30000000);
728x90
'데이터베이스' 카테고리의 다른 글
MariaDB 데이터베이스[database, DB] with rollup / view / procedure (3) | 2023.11.27 |
---|---|
MariaDB 데이터베이스[database, DB] 아우터조인(Outer Join) / 셀프조인(Self Join) (0) | 2023.11.25 |
MariaDB 데이터베이스[database, DB] InLine View (2) | 2023.11.24 |
MariaDB 데이터베이스[database, DB] 조인(Join) (1) | 2023.11.23 |
MariaDB 데이터베이스[database, DB] 그룹함수 (3) | 2023.11.22 |