728x90
반응형

SQL 20

7개의 쿼리로 끝내는 오라클 JOIN, 집계, 서브쿼리 핵심 정리 (HR 데이터 실습)

오늘 HR(인사관리) 샘플 데이터를 가지고 7개의 SQL 쿼리 문제를 풀면서 정말 많은 것을 배웠습니다. 단순 조회부터 시작해서, 여러 테이블을 조인하고, 복잡한 조건으로 데이터를 집계하는 과정까지, 쿼리 작성 시 만날 수 있는 거의 모든 핵심 개념을 복습한 것 같습니다.오늘 배운 핵심 내용과 쿼리 작성 요령을 잊지 않기 위해 블로그에 정리합니다.---## 1. 모든 쿼리의 시작: `JOIN` vs `LEFT JOIN`가장 기본이지만 가장 중요한 개념이었습니다.* **`JOIN` (INNER JOIN)**: 두 테이블에 **모두** 짝이 맞는 데이터(교집합)만 가져옵니다. * (예: `사원 JOIN 가족` -> 가족이 **있는** 사원만 나옴)* **`LEFT JOIN` (LEFT OUTER JOI..

SQL 2025.11.10

테이블 제약조건 추가, 정규화, 데이터베이스 모델링

1. 테이블의 데이터 타입 정리데이터를 저장할 때는 각 컬럼의 데이터 타입(Data Type) 을 적절히 지정해야 합니다.▶ 문자형 (문자열 저장)CHAR(n): 고정 길이 문자형. 예: char(10) → 5글자 입력 시 나머지 5칸은 공백으로 채워짐→ 예시: ISBN, 우편번호, 전화번호처럼 정확한 자리수가 필요한 데이터에 적합VARCHAR(n): 가변 길이 문자형. 예: varchar(10) → 5글자 입력 시 5칸만 차지→ 예시: 이름, 주소 등 글자 수가 유동적인 경우 사용▶ 숫자형INT: 정수DECIMAL(m, d): 전체 m자리 중 소수점 아래 d자리예: decimal(6,2) → 9999.99까지 저장 가능 (총 6자리 중 소수 2자리)▶ 날짜형DATE: 년-월-일DATETIME: 년-월-..

SQL 2025.05.27

[MySQL] Workshop 6

-- 1. emp 테이블에서 ename 'R'로 끝나는 사원을 검색 SELECT empno, enameFROM empWHERE ename LIKE '%R'; -- 2. emp 테이블에서 ename 에서 두번째 글자가 'L' 인 사원을 검색SELECT empno, enameFROM empWHERE ename LIKE '_L%'; -- 3. emp 테이블과 dept 테이블을 조인해서 ename,job,dname,loc 출력SELECT e.ename, e.job, d.dname, d.locFROM emp e JOIN dept dON e.deptno=d.DEPTNO; -- 4. emp 테이블에서 입사일이 1981 인 사람중에 mgr 이 7698 인사람을 검색SELECT empno, ename, hire..

SQL 2025.05.27

UseCase Diagram

주어진 요구사항을 바탕으로 Use Case Diagram을 설계할 때는 다음과 같은 **행위자(Actor)**와 **기능(Use Case)**를 정리하고, 이들 간의 관계를 파악해야 합니다.🎭 행위자(Actor)사용자(User): 추상적인 최상위 사용자. 도서관리자와 일반사용자의 상위 개념입니다.도서관리자(Admin): 책 등록, 삭제 등을 수행할 수 있는 권한자.일반사용자(GeneralUser): 책을 검색하거나 조회만 할 수 있는 사용자.※ 사용자는 도서관리자와 일반사용자의 일반화(Generalization) 관계입니다.✅ Use Cases (기능 목록)기능 이름설명책 등록도서관리자가 새 책을 등록책 삭제도서관리자가 특정 책을 삭제ISBN으로 검색사용자가 ISBN으로 책 검색책 제목으로 검색사용자가..

SQL 2025.05.26

[MySQL] Workshop 5

-- ################## SubQuery ##################-- 1. ‘SMITH'의 직무와 같은 사람의 이름, 부서명, 급여, 직무를 출력하라.SELECT e.ename, d.dname, e.sal, e.jobFROM emp e JOIN dept d ON e.deptno = d.deptnoWHERE job = (SELECT job FROM emp WHERE ename ='SMITH');-- 2. ‘JONES’가 속해있는 부서의 모든 사람의 사원번호, 이름, 입사일, 급여를 출력하라.SELECT deptno, ename, hiredate, salFROM empwhere deptno =(SELECT deptno FROM emp WHERE ename = 'JONES');--..

SQL 2025.05.26

[MySQL] Workshop 4

-- ### equi join ###-- 1. emp와 dept Table을 JOIN하여 부서번호, 부서명, 이름, 급여를 출력하라.SELECT e.deptno, d.dname, e.ename, e.salFROM emp e, dept dWHERE e.deptno = d.deptno;SELECT e.deptno, d.dname, e.ename, e.salFROM emp e JOIN dept d ON e.deptno = d.deptno;SELECT deptno, d.dname, e.ename, e.salFROM emp e JOIN dept d USING(deptno);-- 2. 이름이 ‘SMITH’인 사원의 부서명을 출력하라.SELECT e.empno, e.ename, dname FROM emp e, ..

SQL 2025.05.23

SQL 조인 정리: Equi Join, Self Join, Outer Join 그리고 JDBC CRUD 개념까지

RDB에서 테이블을 하나만 쓰는 경우보다 여러 테이블을 연관지어 사용하는 경우가 더 많습니다. 이럴 때 사용하는 것이 바로 **조인(Join)**입니다. 오늘은 조인의 종류와 실제 SQL 예제를 중심으로 정리해봤습니다.🔹 조인이란?JOIN은 두 개 이상의 테이블을 연결해 하나의 결과 집합으로 만드는 SQL 문입니다.일반적으로 **Primary Key(PK)**와 Foreign Key(FK) 관계를 기반으로 조인이 발생합니다.PK를 가진 테이블 → 부모 테이블FK를 가진 테이블 → 자식 테이블하지만 반드시 PK, FK가 명시되어 있지 않아도 논리적 연결 조건만으로도 조인은 가능합니다.조인 조건은 보통 WHERE 절에 명시되며, 두 테이블의 공통 컬럼을 사용합니다.성능을 위해 테이블 Alias 사용은 필수..

SQL 2025.05.23

[MySQL] Workshop 3

-- #################### 단일행 함수 실습 ###################-- 1) 'ADAMS의 입사일은 1987-05-23 이고, 급여는 3000$ 입니다.' 이런 식으로 직원정보를 조회하시오.-- 알리야스는 Info로 합니다.SELECT concat(ename, '의 입사일은 ',hiredate, '이고, 급여는 ', sal , '$ 입니다.') InfoFROM emp;-- 2) 1987 년도에 입사한 직원의 이름, 입사일을 조회하시오.SELECT ename, hiredateFROM empwhere year(hiredate) = 1987;-- ################## 그룹 함수 실습 ######################-- 1) 30번 부서 월급의 평균(소수2..

SQL 2025.05.21

[MySQL] 250521 수업예제

-- 부서별 평균급여가 2000달러 이상인 부서의 부서번호와 평균급여를 검색-- step 1.-- where 절에서는 alias 사용 못함/ 그룹함수 사용 못함SELECT deptno, avg(sal) AvgSalaryFROM empWHERE avg(sal) >=2000GROUP BY deptno;SELECT deptno, avg(sal) AvgSalaryFROM empGROUP BY deptnoHAVING avg(sal)>=2000ORDER BY 1;/*Grouping을 한 후, 원하는 데이타만 디스플레이하고 싶을때는 Having절을 사용해서 한번 더 걸러줄 수 있다.WHERE 절은 Grouping 하기전에 실행되는 반면, Having절은 Grouping한 후에 실행된다.결과적으로 그룹함수는 WHERE..

SQL 2025.05.21
728x90
반응형