sql 8

[트러블슈팅] : data.sql 실행 시 Table doesn't exist 오류 해결하기

상황개발 중 메뉴 데이터를 매번 직접 넣기 번거로워 src/main/resources/data.sql 파일을 생성하고 아래와 같이 초기 데이터를 작성했다.INSERT INTO menus (name, price, deleted, created_at, updated_at)VALUES ('아메리카노', 4500, false, NOW(), NOW()), ('카페라떼', 5000, false, NOW(), NOW()), ('카푸치노', 5500, false, NOW(), NOW()), ('에스프레소', 4000, false, NOW(), NOW()), ('카라멜마키아또', 6000, false, NOW(), NOW());application.yml에 아래 설정도 추가했다.spring: ..

[JPA] 영속성 컨텍스트 공부

배경: 45번째줄의 Delivery.markShipping() 메서드는 Delivery 객체의 status 필드와 statusUpdatedAt 필드를 업데이트시킨다.현재 delivery는 JPA가 관리하는 영속 상태(managed entity)이다근거: 33번째줄 findByStatusAndStatusUpdatedAtBefore 메서드따라서 delivery.markShipping(now)로 필드만 변경해도, 트랜잭션이 커밋될 때 더티 체킹(dirty checking)에 의해 자동으로 UPDATE 쿼리가 실행된다.앞에서 save()를 명시적으로 호출하면 merge가 실행되어 불필요한 select 쿼리가 추가로 발생할 수도 있기 때문에, 결론적으로 46번째줄의 save() 메서드 호출은 불필요하다.

JPA 2026.04.01

[SQL Exercise] 5. 조건문을 이용한 카테고리 분류해보기

New Skill unlocked!조건문과 수식을 이용하여 간단한 User Segmentation 수행하기 1. 중요 개념- User Segmentation특정 조건에 부합하는 사용자들을 하나의 분류군으로 묶는 것 - Case when범주별로 다른 계산이나 수식을 적용해야 할 때 사용if를 여러 개 사용한 것과 같은 효과 2. 구조Case when(조건) then(값 또는 수식) when(조건) then(값 또는 수식) ... else (값 또는 수식) end *else는 선택사항이나, end는 필수 3. Troubleshooting- 목표 : 10세 이상, 30세 미만의 고객의 나이와 성별로 그룹 나누기 (이름도 같이 출력) Step 1. 모범답안 보기se..

ETC/etc3 2025.11.27

[SQL Exercise] 4. 필터링, 비교 연산자

아래와 같은 sparta_students(학생) 테이블이 있습니다.idnametrackgradeenrollment_year1르탄이Node.jsA20232배캠이SpringB20223구구이UnityC20214이션이Node.jsB2022 13.sparta_students 테이블에서 모든 학생의 이름(name)과 트랙(track)을 선택하는 쿼리를 작성해주세요! 더보기SELECT name, trackFROM sparta_students; 14.sparta_students 테이블에서 Unity 트랙 소속이 아닌 학생들을 선택하는 쿼리를 작성해주세요!더보기SELECT * FROM sparta_students WHERE track 'Unity'; 15.sparta_students 테이블에서 입학년도(enrollme..

ETC/etc3 2025.11.18

[SQL Exercise] 3. 필터링과 정렬

이제 상품 주문이 들어왔으니 어떤 고객에게 어떤 주문이 들어왔는지를 파악할 수 있는 orders(주문) 테이블이 아래에 있습니다.idcustomer_idproduct_idamountshipping_feeorder_date171913500002023-11-01213121100002023-11-0236541200002023-11-054100832250002023-11-05535611150002023-11-09 9.orders 테이블에서 주문 수량(amount)이 2개 이상인 주문을 진행한 소비자의 ID(customer_id)만 선택하는 쿼리를 작성해주세요!더보기select customer_id from orders where amount >=2; 10.orders 테이블에서 2023년 11월 2일 이후에 주..

ETC/etc3 2025.11.18

[SQL Exercise] 2. WHERE과 집계 함수를 배워봅시다

여러분이 구매하고 싶은 상품들의 정보가 있는 products(상품) 테이블이 아래에 있습니다.idproduct_namepricecategory1맥북 프로1200컴퓨터2다이슨 청소기300생활가전3갤럭시탭600컴퓨터4드롱기 커피머신200주방가전 5.products 테이블에서 제품 이름(product_name)과 가격(price)만을 선택하는 쿼리를 작성해주세요. 정답더보기SELECT product_name, price from products;​ 6.products 테이블에서 제품 이름에 '프로'가 포함된 모든 제품을 선택하는 쿼리를 작성해주세요. 정답더보기SELECT * FROM products where product_name like '%프로%' 7.products 테이블에서 제품 이름이 '갤'로 ..

ETC/etc3 2025.11.18

[SQL Exercise] 1. SELECT, DISTINCT, BETWEEN, WHERE

1) 돈을 벌기 위해 일을 합시다!아래와 같은 sparta_employees(직원) 테이블이 있습니다.idnamepositionsalaryhire_date1르탄이개발자300002022-05-012배캠이PM400002021-09-253구구이파트장350002023-06-014이션이팀장500002021-07-091.sparta_employees 테이블에서 모든 직원의 이름(name)과 직급(position)을 선택하는 쿼리를 작성해주세요.SELECT name, position FROM sparta_employees;2.sparta_employees 테이블에서 중복 없이 모든 직급(position)을 선택하는 쿼리를 작성해주세요.SELECT DISTINCT position FROM sparta_employees..

ETC/etc3 2025.11.14

[데이터베이스 기초] 1장. SQL 기초

인사안녕하신가? 나는 데이터 엔지니어를 꿈꾸고 있는 문과 비전공자다.어떤 경로를 통해 이 글을 보고 있는지는 모르겠지만, 아래 셋 중에 한 경우일 것이다. 1. 내일배움캠프 수강 중인 동기 또는 관계자2. 한번 읽어봐달라고 부탁 받은 나의 지인3. 세계적인 개발자가 된 나의 첫 모습을 알고 싶은 개발 꿈나무 부디 세 번째 경우이기를 바란다. 다른 경우여도 환영하지만.. 그렇다면, (원하건대) 세계적인 데이터 엔지니어인 나는 어디서 공부를 시작했는지 지금부터 알아보도록 하자.데이터베이스의 기초, SQL데이터베이스의 기초는 SQL이다.SQL은 Structured Query Language의 약자로, 데이터 입출력 기능의 표준 언어이다.여기서 중요한 건 표준이라는 점이다 - 즉, 실무에서는 이 표준을 활용하여..

ETC/etc3 2025.11.14