수정중에 있습니다. 참고 바랍니다
ORDER BY FLAVOR DESC
위와같이 컬럼명 뒤 DESC를 붙여 내림차순으로 정렬이 가능하다.MCDP_CD IN ('CS','GS')
와 같이 사용한다면 MCDP_CD값이 CS이거나, GS인 데이터만 조회할 수 있다.WHERE 'Python'=SKILL_1 OR 'Python'=SKILL_2 OR 'Python'=SKILL_3
=> WHERE 'Python' IN (SKILL_1, SKILL_2, SKILL_3)
위와같이 여러 칼럼에 동일한 문자인 'Python'이 있는지 확인해야한다면, 번거롭게 같은 패턴의 코드를 반복해 OR로 묶을 필요 없이 in을 사용하면 된다.A NOT IN (b,c,d)
A가 b,c,d 모두와 같지 않은 경우 true를 반환한다.DATE_FORMAT(HIRE_YMD,'%Y-%m-%d')
날짜 포맷을 바꿔주는 기능이다.
대문자 | 소문자 |
---|---|
%Y = 2024 | %y = 24 |
%M = January | %m = 01 |
%D = 1st | %d = 01 |
DATE_FORMAT(PUBLISHED_DATE,'%Y')=2021
IFNULL(TLNO,'NONE')
NOT ISNULL(C)
와 같이 사용해 C 컬럼의 값이 NULL 값이 아닌 데이터를 조회하기 위해 사용한다. 혹은 C IS NULL
과 같이 작성할 수도 있다.C IS NOT NULL
과 같이 조건식을 작성할 수도 있다.JOIN B ON A.FLAVOR=B.FLAVOR
와 같이 ON을 사용하는데, 이 경우 연결 컬럼이 FLAVOR로 동일하니 USING(FLAVOR)
와 같이 사용해 코드를 줄일 수 있다.SELECT * FROM A
UNION
SELECT * FROM B
ADDRESS LIKE "%강원도%"
NAME LIKE "김%"
과 같이 사용해 김으로 시작하는 이름을 갖는 데이터만 뽑아볼 수 있다.ADDRESS LIKE "[ABC]"
대괄호를 사용하면 첫번째 문자만 확인할 수 있나보다. 이 경우는 첫번째 문자가 A, B, C 중 하나인지 확인하는 코드다.NAME LIKE "[^김]"
과 같이 ^를 사용하면 김씨가 아닌 이름을 가진 데이터를 모두 뽑을 수 있다.LIMIT 1
과 같이 쓰면 조회할 데이터의 갯수를 하나로 제한할 수 있다.AGE BETWEEN 20 AND 29
GROUP BY C1, C2
와 같이 사용한다. 하나의 속성만 사용해도 되고, 두 개 이상도 가능하다. WHERE 다음에 사용한다.WHERE EXISTS(서브쿼리)
와 같은 식으로 사용하며, 서브쿼리가 반환하는 값이 있는 데이터를 조회 (???)NOT EXISTS(서브쿼리)
사용SELECT *
FROM FOOD_PRODUCT
WHERE PRICE = MAX(PRICE);
이 코드에서 Invalid use of group function
오류가 나는 걸로 보아 WHERE 절의 컬럼명은 그 컬럼의 하나의 데이터로 인식되나보다
COUNT(컬럼)
과 같이 사용한다. (중복 포함)COUNT(DISTINCT 컬럼)
과 같이 사용하면 중복을 제외하고 세어준다.COUNT(컬럼)
시 NULL 값은 포함되지 않는다. 만약 NULL값을 포함해 테이블의 데이터 갯수를 세고싶다면 COUNT(*)
를 사용하면 된다.4 DIV 2
혹은 FLOOR(4/2)
SELECT cnt, COUNT(1) as freq, COUNT(1)/SUM(COUNT(1))*100 OVER() as freq_ratio
FROM order_amount
GROUP BY 1
ORDER BY 2 DESC;
DATE_FORMAT(PUBLISHED_DATE,'%Y')='2021'
도 되고, DATE_FORMAT(PUBLISHED_DATE,'%Y')=2021
도 되는데 이게 뭘까?a & b = b
)으로 특정 값이 포함되어있는지 아닌지 확인할 수 있다. 즉, a에 b가 더해져있는지 아닌지 확인하려면 위의 and 연산을 진행하면 된다. 참고