UNSIGNED : 칼럼내에서 음수를 포함하지 않거나 혹은 수의 range를 양수쪽으로 더 넓게 가지고싶을때 사용.
-2147483648 부터 2147483647 에서 --> 0 부터 4294967295.
UNIQUE :해당 컬럼에 동일한 값이 들어가지 않게함.
CONCAT(a,b) :두 문자열 합쳐줌
ex) CONCAT(salary,'만원') => 50만원
TRUNCATE(AVG(salary),0) =>소수점 뒤에 자리 0자리 나옴 5,500.000에서 아래처럼 바뀜

IF(deptId=1,'홍보','기획' ) : 1이면 홍보 아니면 기획
SELECT IF(deptId = 1, '홍보', '기획') AS `부서명`,
GROUP_CONCAT(`name` ORDER BY id DESC SEPARATOR ', ') AS `사원리스트`,
CONCAT(TRUNCATE(AVG(salary), 0), '만원') AS `평균연봉`,
CONCAT(MAX(salary), '만원') AS `최고연봉`,
CONCAT(MIN(salary), '만원') AS `최소연봉`,
CONCAT(COUNT(*), '명') AS `사원수`
FROM emp
GROUP BY deptId;

CASE WHEN THEN

GROUP_CONCAT 을 이용한다.GROUP_CONCAT(필드명)GROUP_CONCAT(필드명 SEPARATOR '구분자')GROUP_CONCAT(DISTINCT 필드명)GROUP_CONCAT(필드명 ORDER BY 필드명)SELECT D.`name` AS '부서',
GROUP_CONCAT(E.`name`)AS '사원리스트'
FROM emp AS E
INNER JOIN dept AS D
ON E.deptId=D.id
GROUP BY deptId;
여기서 GROUP_CONCAT 안하면 홍길동만 나오고 홍길순 안나옴
WHERE 과 HAVING의 차이점WHERE : 항상 FROM 뒤에 위치 ,우선적으로 모든 필드를 조건에 둘 수 있음HAVING : 항상 GROUP BY 뒤에 위치 , 그룹화 되어진 새로운 테이블에 조건을 줄 수 있음.UNION 규격 맞는 SELECT들 하나로 묶어서 출력해줌SELECT로 뽑은 애들도 테이블로 생각해준다. 그래서 서브쿼리가 가능한것.