내배캠 sql코드카타

포도당·2025년 5월 30일
0

select animal_id, name, DATE_FORMAT(datetime,'%Y-%m-%d')
from animal_ins
order by animal_id

date_format 날짜 형변환

date_formt(datetime,'%Y-%m,%d')
1. %뒤에 붙는 알파벳의 크기에 따라 형태가 다름 여기서 대문자 y는 2015 소문자 y는 15
2. 형변환 형식 사이에 ' ' 는 필수
3. 날짜의 기준은 행이 될 수 도 있고, now()가 될 수도 있따.

where 에서의 and or in not 의 차이 특히 or/in

  1. a and b = a 와 b 둘다
  2. a or b = a또는 b
  3. in(a,b) a

여기서 중요한것은

and / or을 쓸때 cod=cs and cod= gs 이렇게 각각 조건을 걸어줘야함
cod= cs and gs 이렇게 쓰게되면 앞부분만 인식하고 뒤에 gs는 무조건true값으로 이상한 값이 나옴

그럼으로 or 과 in 은 나오는 값이 동일하나 특정 구조에서 다른 결과과 보이며 조건이 길어질 수 록 in이 더 깔끔하고 알맞음.

FOOD_PRODUCT 테이블에서 가격이 제일 비싼 식품의 식품 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격을 조회하는 SQL문을 작성해주세요.

  1. max와 같은 집계함수와 서브쿼리의 사용차이

또는

select product_id,
product_name,
product_cd,
category,
price
from food_product
order by price DESC
limit 1

2,
select *
from food_product
where price = (select max(price) from food_product)

이 두개가 같은 값이라고 하는데 당황스럽다.

원래 시도한건
select count()
from food_product
where count(
)= max(price)
였는데 특정 하나 행만 가져옴

그런데 subquary는 해당 조건에 부합하는 그러니까 max price에 맞는 전체 데이터값을 가져온다고함.

결론 : select에 max(price)를 바로 쓰면 group by가필요 집계함수기때문에 근데 이건 조건에 맞지않음.(최대가격만 구하면 되기때문에)

그럼으로 자동적으로 where price = (select max(pice) from food_product) 형태의 서브쿼리로 최대가격과 본문 select에서 * 를 붙여줌으로써 최대가격에 해당하는 정보를 모조리 불러와야함.

3. 다중조건 and between

select count(*)
from user_info
where date_format(joined,'%Y') = 2021 and age between 20 and 29'

profile
어디까지 성장할 것 인가..!

0개의 댓글