목록Study/DB (18)
Hayden's Archive
* Summary SqlSession * query statement * INSERT INTO ------------- insert() * DELETE FROM ------------- delete() * UPDATE table ------------ update() * SELECT all -------------- List selectList() * SELECT one -------------- Object selectOne() DB 테이블 - mysawon VO - MySawon.java package com.encore.mybatis.vo; /* * Framework에서는 반드시 기본 생성자를 넣어야 한다.(생성자 아무것도 안 넣었을 경우에는 알아서 만들어짐) * MyBatis에서는 값의 주입을 S..
Persistence Layer DAO는 반드시 Component 기반으로 만들어져야 한다. DAO가 있는 레이어를 Data Access Layer 또는 Persistence Layer라고 함. 여기에서 Raw한 데이터를 가져옴. 퍼시스턴스 계층(Persistence Layer) 참고 : https://blog.naver.com/nine01223/220373593398 Service Layer - 데이터를 가공. 이렇게 한 것을 최종적으로 Controller에게 넘겨줌. MyBatis - MyBatis 는 개발자가 지정한 SQL, 저장프로시저 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크이다. - MyBatis 는 JDBC 코드와 수동으로 셋팅하는 파라미터와 결과 매핑을 제거한다. - MyBa..
-- 모든 SQL문은 EMP, DEPT 테이블에서 검색합니다. SELECT * FROM emp; SELECT * FROM dept; -- 1. 'ACCOUNTING‘ 부서에서 근무하는 직원들의 이름, 급여, 입사일을 조회하시오. -- ( 조건 join 사용 ) SELECT ename, sal, hiredate FROM emp, dept WHERE emp.deptno = dept.deptno AND dname = 'ACCOUNTING'; -- 2. 직원의 이름과 관리자 이름을 조회하시오. SELECT e.ename 직원, m.ename 관리자 FROM (SELECT ename, mgr FROM emp) e, (SELECT empno, ename FROM emp) m WHERE e.mgr = m.empno;..
조인 (Join) 클래스 간의 연관을 해징. -> 필드에 선언하고 setter와 생성자를 통해 주입. 테이블 간의 관계. 테이블 간의 연관. Foreign 키를 가진 게 자식(의존). Foreign이 없으면 아무런 관계가 없음. 조인 : 보통 두 개 이상의 테이블인데 실제로는 하나 이상의 테이블에서 쿼리문 걸어줄 때 사용(셀프 조인이라는 게 있음) 쿼리문 잘 짜는 사람은 step by step으로 풀어내는 사람. -- JOIN %%%%%%%%%%%%%%%%%%% SELECT * FROM emp; SELECT DISTINCT deptno FROM emp; -- 40번 부서의 직원이 없는데 SELECT * FROM dept; -- 40번 부서는 있음. -- 이런 것을 Multiplicity라고 함. -- 특..
처음에 5번 문제를 잘못 해석했다. 내가 처음에 해석한 것 : '평균 급여보다 많은 급여를 받고 이름에 u가 포함된 사원'과 같은 부서에서 근무하는 모든 사원의 사원 번호, 이름 및 급여를 표시하시오. -- 내가 처음 짠 코드 SELECT empno, ename, sal FROM emp WHERE deptno IN (SELECT deptno FROM emp WHERE sal > (SELECT AVG(sal) FROM emp) and ename LIKE '%u%'); 그런데 결과값은... 코드에 이상은 없는데 무엇이 잘못되었을까. 그래서 평균과 평균 급여보다 많은 급여를 받는 사원을 표시해보았다. SELECT AVG(sal) FROM emp; SELECT empno, ename, sal FROM emp W..
-- ★ 모든 SQL문은 EMP 테이블에서 검색합니다. SELECT * FROM emp; -- 1. 이름이 'adams' 인 직원의 급여와 입사일을 조회하시오. SELECT sal 급여, hiredate 입사일 FROM emp WHERE ename = 'adams'; -- 2. 7년 이상 장기 근속한 직원들의 이름, 입사일, 급여, 근무 년차를 조회하시오. SELECT ename 이름, hiredate 입사일, sal 급여, floor(datediff(curdate(), hiredate)/365) 근무년차 FROM emp WHERE floor(datediff(curdate(), hiredate)/365) >= 7; -- WHERE 근무년차 >= 7 이렇게 못 씀. Alias가 WHERE절에는 못 옴. -..
20200428 수업 1. 문자 관련 함수 - ASCII(문자) - 문자의 아스키 코드값 리턴 - CONCAT('문자열1','문자열2','문자열3'...) - 문자열(혹은 컬럼)들을 이어준다 - INSERT('문자열','시작위치','길이','새로운문자열') - 문자열의 시작위치부터 길이만큼 새로운 문자열로 대치 - REPLACE('문자열','기존문자열','바뀔문자열') - 문자열 중 기존문자열을 바뀔 문자열로 바꾼다 - INSTR('문자열','찾는문자열') - 문자열 중 찾는 문자열의 위치값을 출력 = 문자열 일부분 가져오기(LEFT, RIGHT, MID) == - LEFT('문자열',개수) - 문자열 중 왼쪽에서 개수만큼을 추출. - RIGHT('문자열',개수) - 문자열 중 오른쪽에서 개수만큼을 추출..
DBMS 일반 - DBMS는 사용자가 데이터가 저장된 파일에 직접 접근할 수 없도록 데이터의 사용과 관리를 분리함. 파일 처리 시스템의 문제를 극복. - 데이터베이스 시스템은 DBMS와 클라이언트의 역할, 데이터 접근/처리 방식에 따라 중앙집중식 데이터베이스 관리 시스템 구조, 2계층 클라이언트-서버 구조(2-tier architecture), 3계층 클라이언트-서버 구조(3-tier architecture)로 구분됨 - DBMS의 구조 : 데이터 추상화(data abstraction)와 데이터 독립성(data independency)을 확보하기 위한 3단계 구조(3-level architecture) => 외부 단계(external level), 개념 단계(conceptual level), 내부 단계(..