728x90
반응형

SQL 19

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

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

[MySQL] 250520 수업예제

-- 해당 테이블의 전체레코드 수를 반환SELECT COUNT(*) 직원수FROM emp;select * from emp; -- 이렇게 했을때의 행의 수를 반환select count(-1) 직원수 from emp; -- -1은 데이타의 마지막을 의미, 성능상 더 좋다.-- 그룹함수는 원래 null을 건너뛴다. 카운트를 안한다.select count(mgr) from emp;-- empno 기본키 제약조건-- not null + uniqueselect count(empno) from emp;select count(empno), round(avg(sal), 2) 평균급여,min(sal), max(sal), sum(sal) from emp;-- emp테이블에서 입사한지 가장 오래된 사원과..

SQL 2025.05.20
728x90
반응형