정보처리기사 실기/SQL

SQL1

· 코딩마이데이

WHERE

SELECT

FROM

WHERE

GROUP BY

HAVING
ORDER BY

 

DISCTINCT

COUNT

BETWEEN

LIKE IN

 

SQL "Distinct", "Count"

select MGR
from EMP
select DISTINCT MGR
from EMP
select count(mgr)
from emp;
select count(DISTINCT(mgr)) from emp;

 

SQL "BETWEEN"

SELECT  ename, sale

FROM EMP

WHERE sal BETWEEN  1000 AND 1500;

 

1000 <= sal <= 1500

 

SQL "LIKE"

SELECT ename, sal

FROM EMP

WHERE ename LIKE 'S%';

 

SQL "IN"

SELECT ename, job
FROM EMP
WHERE job IN ('SALEMAN', 'CLERK');
SELECT ename, job
FROM EMP
WHERE job IN ('SALESMAN', 'CLERK', 'PRESIDENT')
ORDER BY job;

 

GROUP BY

HAVING
ORDER BY

 

SQL GROUP 함수

SELECT MIN(SAL) AS 최소월급
FROM EMP
SELECT MAX(SAL) AS 최대월급
FROM EMP

 

SELECT AVG(SAL)
FROM EMP

 

 

SQL GROUP BY

SELECT COUNT(deptno)
FROM EMP
GROUP BY deptno
ORDER BY COUNT(deptno) DESC;
SELECT deptono "부서번호", COUNT(*) "사람 수"
FROM emp
GROUP BY deptno
ORDER BY COUNT(deptnp) DESC;

 

 

SQL GROUP BY, HAVING

SELECT deptno "부서번호", count(*)  "사람 수", sum(sal)

FROM emp

GROUP BY deptno

ORDER BY sum(sql);

 

 

SELECT deptno "부서번호", count(*) "사람수", sum(sal)

FROM emp

GROUP BY deptno

HAVING count(*) >= 5

ORDER BY sum(sal);

 

 

SUB QUERY

SQL Sub Queries

 

평균보다 봉급을 더 많이 받는 사람

SELECT *
FROM emp
WHERE sal > (SELECT AVG(sal) FROM emp);

 

최고 월급을 받는 사람

SELECT *
FROM emp
WHERE sal =  (SELECT MAX(sal) FROM emp);

 

SCOTT과 같은 부서에서 일하는 사람 명단

SELECT ename, depto
FROM emp
WHERE deptno =  (select deptno from emp where ename = 'SCOTT');

 

JOIN

SQL JOIN

SELECT e.ename, d.dname
FROM emp e, dept d
WHERE e.deptno = d.deptno and e.name = 'SCOTT';

 

SQL self JOIN

SELECT e.name '사원명', m.ename '매니저'
FROM emp e, emp m
WHERE e.mgr = m.empno
ORDER BY e.ename;

 

 

 

 

 

'정보처리기사 실기 > SQL' 카테고리의 다른 글

SQL2  (1) 2025.03.04