SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION like 'Sick'
ORDER BY ANIMAL_ID asc;
SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME
LIMIT 1;
SELECT DATETIME AS '시간'
FROM ANIMAL_INS
ORDER BY DATETIME
LIMIT 1;
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION != 'Aged'
ORDER BY ANIMAL_ID ASC
SELECT ANIMAL_ID, NAME, DATETIME
FROM ANIMAL_INS
-- WHERE NAME IS NOT null
ORDER BY NAME ASC, DATETIME DESC;
WHERE NAME IS NOT NULL은 필요 없는 이유
NAME이 NULL인 데이터는 정렬에서 자동으로 마지막으로 밀려납니다.
추가 필터링이 필요하지 않습니다.
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
-- 이름에 'el'이 들어감
WHERE LOWER(NAME) LIKE LOWER('%EL%')
AND ANIMAL_TYPE="dog"
ORDER BY NAME ASC;
SELECT COUNT(*) AS USERS
FROM USER_INFO
WHERE AGE IS NULL
SELECT PRICE AS MAX_PRICE
FROM PRODUCT
LIMIT 1;
LIMIT 1
LIMIT 1은 단순히 첫 번째 행만 가져옵니다.
이 경우, 가장 높은 판매가를 가져온다는 보장이 없습니다.
데이터베이스는 정렬이 명시되지 않은 경우, 기본적으로 어떤 행이 첫 번째로 반환될지 보장하지 않습니다.
최댓값 계산이 없음
MAX() 함수를 사용해야 가장 높은 판매가를 정확하게 구할 수 있습니다.
SELECT ANIMAL_TYPE, NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
WHERE NAME IS NULL AS "NO name"
틀린 이유를 아시겠나요?
컬럼명 또는 출력에 AS "NO name" 같은 별칭을 잘못 사용했기 때문에 오류가 발생합니다.
IFNULL: NAME이 NULL인 경우 'NO name' 문자열로 대체합니다.
AS NAME: 결과 컬럼의 이름을 NAME으로 유지합니다.
올바른 코드
SELECT ANIMAL_TYPE,
IFNULL(NAME, 'No name') AS NAME,
SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
SELECT WAREHOUSE_ID,
WAREHOUSE_NAME,
ADDRESS,
IFNULL(FREEZER_YN, 'N') AS FREEZER_YN
FROM FOOD_WAREHOUSE
-- 경기도에 위치한 창고
WHERE ADDRESS LIKE '경기%'
ORDER BY WAREHOUSE_ID ASC;