🤩 SQL
: 데이터베이스에 저장된 데이터를 불러오는 명령어
SELECT 컬럼 FROM 테이블 이름 WHERE 필터링
😶 Columns
- empno : 사원번호
- ename : 사원이름
- job : 직책
- mgr : 사수번호
- hiredate : 입사날짜
- sal : 급여
- comm : 보너스
- deptno : 부서번호
정렬 ORDER BY
내림차순 desc / 오름차순 asc
ORDER BY 에 default 정렬은 오름차순
😶 SQL 실행순서
1. FROM
2. WHERE
3. GROUP BY
4. HAVING
5. SELECT
6. ORDER BY
SELECT ename, sal FROM emp ORDER BY sal DESC sal DESC = 2 DESC
- 사원들의 사원 이름, 입사 날짜 조회
- 단, 입사 날짜를 내림차순 하시오
- ORDER BY 작성 시 컬럼 위치를 쓰지 않고 "컬럼 이름"을 작성하자!!
SELECT ename, hiredate FROM emp ORDER BY hiredate DESC
✍ 이름 검색
- 이름에 a가 한번이라도 들어간 사람
SELECT ename FROM emp WHERE ename LIKE "%A%"
- 성이 A로 시작하는 사원 검색
SELECT ename FROM emp WHERE ename LIKE "A%"
✍ NULL
- 값이 null인 컬럼 조회할 때 사용 IS NULL
SELECT comm FROM emp WHERE comm IS NULL
- NULL이 아닌 사원 조회 IS NOT NULL
SELECT comm FROM emp WHERE comm IS NOT NULL
- IFnull : null 인 컬럼을 임시로 다른 데이터로 채워줌
SELECT IFnull(comm, 50) FROM emp
✍ GROUP BY : 묶다
- sum, max, min, avg, count
SELECT job, count(*) FROM emp GROUP BY job
- 부서 번호 별로 그룹핑 조회 (가장 높은 급여 포함)
SELECT deptno, max(sal) FROM emp GROUP BY deptno
- 부서 번호로 그룹핑하고 부서 별 평균 급여 조회
SELECT deptno, avg(sal) FROM emp GROUP BY deptno ORDER BY avg(sal)
✍ HAVING
- GROUP BY 필터링
✍ where 조건에는 sum, avg, max...같은 함수를 사용할 수 없다.
HAVING 은 GROUP BY 뒤에 온다
SELECT job, sum(sal) FROM emp GROUP BY job HAVING sum(sal) >= 5000
✍ SQL 실행 순서
1. FROM
2. WHERE
3. GROUP BY
4. HAVING
5. SELECT
6. ORDER BY
SELECT job, avg(sal) FROM emp WHERE job = 'MANAGER' GROUP BY job HAVING avg(sal) >= 2000 ORDER BY avg(sal) DESC
✍ 사원 번호는 그룹핑 될 수 없다!
SELECT empno FROM emp GROUP BY empno
참 잘했어용~^^*
답글삭제