본문 바로가기
DB/SQL 예제

CRUD, 함수 예제 2

by ssury94 2024. 11. 28.

 

세팅

 

데이터베이스 test6
테이블 subscriptions
컬럼
더보기

INSERT INTO subscriptions (user_name, plan_name, start_date, end_date, status, price) VALUES

('김철수', 'Premium', '2023-01-01', '2023-12-31', 'Active', 12000),

('이영희', 'Basic', '2023-06-01', '2023-11-30', 'Expired', 6000),

('박준혁', 'Standard', '2023-07-01', '2023-12-31', 'Active', 9000),

('최수진', 'Premium', '2023-01-01', '2023-12-31', 'Active', 12000),

('정우진', 'Basic', '2023-02-01', '2023-07-31', 'Expired', 6000),

('한지수', 'Standard', '2023-03-01', '2023-08-31', 'Expired', 9000),

('김지훈', 'Premium', '2023-04-01', '2023-12-31', 'Active', 12000),

('이민영', 'Basic', '2023-05-01', '2023-10-31', 'Expired', 6000),

('장서현', 'Standard', '2023-06-01', '2023-12-31', 'Active', 9000),

('박다연', 'Premium', '2023-01-01', '2023-12-31', 'Active', 12000);

-- 상태확인

SELECT *
FROM subscriptions s ;

 

-- 신규 구독자 추가

INSERT INTO subscriptions (user_name,plan_name,start_date,end_date,status,price )
values("유진우",'Standard','2023-09-01','2024-08-31','Active',9000);

 

-- 구독이 만료된 사용자들의 이름과 플랜이름, 종료일을 조회하세요.

SELECT user_name ,plan_name ,end_date
FROM subscriptions s
where status='Expired';

 

-- 구독요금이 8000 이상인 사용자 이름과 구독 요금을 조회하세요

SELECT user_name ,price
FROM subscriptions s
WHERE price>=8000;

 

-- 사용자 이영희의 상태를 Active로 변경하고 종료일을 2023-12-31로 업데이트 하세요

UPDATE subscriptions
set status ='Active',end_date ='2023-12-31'
where user_name ='이영희';

-- 모든 Premium플랜의 구독 요금을 13000으로 업데이트 하세요

UPDATE subscriptions
set price =13000
where plan_name ="premium";

 

-- 상태가 'Expired'인 모든 구독 데이터를 삭제하세요.

DELETE FROM subscriptions
WHERE status ='Expired';

-- 사용자 이름과 플랜 이름을 조합하여 '김철수-Premium'형식으로 출력하세요.

SELECT concat(user_name ,'-',plan_name )user_plan

FROM subscriptions s ;

 

-- 각 사용자의 플랜 이름에서 첫 3글자만 출력하세요

SELECT SUBSTR(plan_name,1,3)as plan3
FROM subscriptions s ;

 


* 실무에서는 date보다 timestamp로 쓰는편이라고 하니 습관화하기