숙련된 개발자도 에러 메세지는 항상 볼 수 있다.
에러가 난 상황에 과도하게 집착해 원인파악을 미루지 말 것.
에러 문구는 에러 타입과, 에러 원인을 둘 다 보여준다.
에러 타입에 집중하지 말고, 에러가 난 이유를 먼저 확인하자
에러 타입 : SQL Error [1054] [42S22]
에러 원인 : Unknown column 'restaurant_namee' in 'field list'
= "컬럼 리스트 중 restaurant_namee 라는 컬럼이 없다"
= 컬럼을 작성하면서 오타/없는 컬럼을 타이핑한 것.
이처럼 차분히 에러 메세지를 들여다보면 문제 원인을 알려주기 때문에 쉽게 헤쳐나갈 수 있다.
SELECT * FROM payment
SELECT * FROM payments WHERE agee > 30
여기서 'where clause' 는 WHERE 절에 문제가 있다는 의미
SELECT * FROM payments WHERE pay_type = card
모든 문제의 해결 방법은 에러 메세지를 온전히 해독하는 것에서부터 시작한다.
1. 조회해야 할 컬럼 특정
2. '사이' 조건 : BETWEEN
3. 특정 조건 지정 : =
4. 복수의 조건 지정 : AND
1. 테이블 : food_orders 의 전체 컬럼 먼저 조회
2. 조회해야 할 컬럼 특정
-1. 상품 준비시간 : food_preparation_time
-2. 한국 음식점 : cuisine_type
-3. 식당명 : restaurant_name
-4. 고객번호 : customer_id
조회 후 출력해야 하는 컬럼은 '식당명', '고객번호'
select 뒤에 작성,
검색 조건은 상품 준비시간이 20~30분, 한국 음식점
SELECT restaurant_name as "식당 이름", customer_id as "고객번호"
FROM food_orders fo
WHERE food_preparation_time BETWEEN 20 AND 30
AND cuisine_type = 'Korean'
출력 결과물을 더 보기 편하게 하기 위해
'as' 를 사용 해 컬럼명을 별명으로 출력함
1. sparta_employees 테이블에서 모든 직원의 이름(name)과 직급(position)을 선택하는 쿼리를 작성해주세요.
SELECT name, position
FROM sparta_employees
2. sparta_employees 테이블에서 중복 없이 모든 직급(position)을 선택하는 쿼리를 작성해주세요.
SELECT DISTINCT position
FROM sparta_employees
3. sparta_employees 테이블에서 연봉(salary)이 40000과 60000 사이인 직원들을 선택하는 쿼리를 작성해주세요.
SELECT *
FROM sparta_employees
WHERE salay BETWEEN 40000 AND 60000
4. sparta_employees 테이블에서 입사일(hire_date)이 2023년 1월 1일 이전인 모든 직원들을 선택하는 쿼리를 작성해주세요.
SELECT *
FROM sparta_employees
WHERE hire_date < 2023-1-1
#6. 문자 데이터 가공 실습 (2) | 2024.10.18 |
---|---|
#5. 문자 데이터 가공 - 형태 변화 (1) | 2024.10.18 |
#4. 문제 풀이 - 주문 금액 조회 (0) | 2024.10.18 |
#3. 그룹 연산, 정렬, 구조 정리 (0) | 2024.10.11 |
#1. SQL 의 기초부터 (1) | 2024.10.08 |