본문 바로가기

Database

(20)
MyBatis 참고사항(XML 파일 관련) Mapper interface에 어노테이션으로 쿼리를 작성하는 방식 대신XML문을 이용하여 쿼리를 수행하는 구조를 작성해보고자 함. XML 파일에 쿼리를 작성해본적은 있지만 아무것도 없는 상태에서 구조를 만드는 건 처음이라 어려움이 있다.... XML 저장 위치:저장 방법은 두 가지가 있다.1. Mapper 인터페이스가 저장된 곳에 xml 파일을 저장시킨다2. 'src/main/resources' 위치에 Mapper 인터페이스가 저장된 패키지명을 폴더 경로로 만들어준다. XML 파일 명 : XML 파일을 만들 때 정해진 규칙은 따로 없다. 그렇지만 가능하면 Mapper 인터페이스와 같은 이름을 이용하여 가독성을 높여주면 좋다. XML 파일 살펴보기 XML 도입부의 헤더와 doctype이다. 태그는 해당 ..
복합키 정리 대표 PK를 사용하는 게 유리한 경우 복합키의 정보를 모두 알지 않아도 리소스 관리가 가능할 때(ex : 사용자ID) 데이터를 식별할 수 있는 컬럼의 조합이 유니크하지 않을때(ex. 이름+저자+출판사 로는 동일 명칭의 개정판이 있는 경우 책을 식별할 수 없음) 식별가능한 복합키의 값이 변경 가능할 때 복합키를 구성하는 게 유리한 경우 특정 데이터를 식별하는 게 의미가 없는 경우(ID값을 이용해서 데이터를 조작하지 않는경우) 통계성, 기록성 데이터인 경우 ex) 걸음기록을 저장하는 테이블, 사용자 별 최근 일주일간 평균 걸음 수를 조회 보통 사용자 + 기록일시 기준으로 복합키를 구성한다. 복합키 사용 시 주의 점 복합 키 사용 시 검색 성능이 낮아질 수 있음. 대신 복합 인덱스 사용으로 검색 성능을 높일 ..
Hot block 관련 글 https://www.ilifo.co.kr/boards/article/48
VMware CentOS7에 mariaDB 설치,Workbench 연결 https://velog.io/@rbdus96/CentOS7%EC%97%90-MariaDB-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%84%A4%EC%A0%95 CentOS7에 MariaDB 설치 및 설정 MariaDB를 기본 yum install mariadb로 설치했을 경우 5.5 버전이 설치된다. 따로 repository를 설정해야 상위버전을 설치할 수 있다. 1. mariadb repo 파일을 만든다. tab 키를 이용하면 쉽게 폴더작성이 가능하 velog.io 1. mariadb repo 파일 생성 (mariadb 10.11버전 사용함) vi /etc/yum.repos.d/MariaDB.repo ab 키를 이용하면 쉽게 폴더작성이 가능하다. (폴더가 존재할 경우에만) i 입력하여..
8.2 DML, DATA DICTIONARY, -- 데이터 조작어 (DML) -- 테이블을 생성하는 DDL CREATE TABLE DEPT_TEMP AS SELECT * FROM DEPT; SELECT * FROM DEPT_TEMP; -- 테이블에 데이터를 추가 INSERT -- INSERT INTO 테이블 이름 (열이름1, 열이름2, ....) -- VALUES (열이름1에 들어갈 데이터,) INSERT INTO DEPT_TEMP (deptno, DNAME, LOC) VALUES (50,'DATABASE','SEOUL'); SELECT * FROM DEPT_TEMP; DESC DEPT_TEMP; -- 에러 상황 : 데이터타입에 맞지 않거나, 길이가 맞지 않거나, 열보다 데이터를 많이 넣거나 --INSERT INTO DEPT_TEMP(deptno, ..
7.26 서브쿼리 -- 서브쿼리 -- SQL문을 실행할 때 SQL 문 내부에서 사용하는 SELECT문 -- WHERE 조건절에서 사용할 경우 -- 메인쿼리 --SELECT 컬럼 --FROM 테이블 --WHERE 조건식 ( SELECT 컬럼 -- FROM 테이블 -- WHERE 조건식 ) -- 서브쿼리 -- 존스씨의 급여를 확인 SELECT SAL FROM EMP WHERE ENAME = 'JONES'; -- 존스씨보다 급여를 많이 받는 사람을 조회 SELECT * FROM EMP WHERE SAL > 2975; -- 서브쿼리로 SQL문 합치기 SELECT * FROM EMP WHERE SAL > (SELECT SAL FROM EMP WHERE ENAME = 'JONES'); desc emp; -- 서브쿼리의 특징 -- 1..
7.19 JOIN -- 타입변환, MULTI-ROW FUNCTION -- 그룹화와 관련된 함수 -- ROLLUP 함수 -- SELECT -- FROM -- WHERE -- GROUP BY ROLLUP (그룹화할 열 지정) SELECT DEPTNO, JOB, COUNT(*), MAX(SAL), SUM(SAL), AVG(SAL) FROM EMP GROUP BY DEPTNO, JOB ORDER BY DEPTNO, JOB; SELECT DEPTNO, JOB, COUNT(*), MAX(SAL), SUM(SAL), AVG(SAL) FROM EMP GROUP BY ROLLUP(DEPTNO, JOB) ORDER BY DEPTNO, JOB; -- CUBE 함수 -- SELECT -- FROM -- WHERE -- GROUP BY CUBE..
7.12 함수, GROUP BY -- 대소문자를 바꿔주는 함수 SELECT UPPER(ENAME), LOWER(ename), INITCAP(ename) FROM emp; -- 예시 --SELECT * FROM 게시판 --WHERE 게시판제목 LIKE '%oracle%'; -- 이렇게 했을 때 oracle ORACLE 등의 정보는 검색이 되지 않는다. SELECT ENAME FROM EMP WHERE ENAME = upper('smith'); -- Smith SMITH smith sMiTh -- 다양한 데이터가 대소문자 구분 없이 들어와도 -- SQL문 조회에서 대소문자 함수를 사용하면 모든 종류의 데이터를 검색할 수 있다. -- 문자열의 길이 구하기 SELECT ENAME, LENGTH(ENAME) FROM EMP; -- Q1. 사원 ..