본문 바로가기

전체 글

(307)
22. 게시판 글 수정 백단 구현 : board-mapper.xml (update) 목차1. 게시글 수정 쿼리란?2. 태그 2-1. 태그 기본 구조 2-2. UPDATE 문의 기본 구조3. 전체 코드 정리4. 마무리하며1. 게시글 수정 쿼리란?게시판 기능에서 수정(Update) 은 사용자가 작성한 글의 내용을 변경하는 기능입니다. 게시글을 등록(insert)하는 것과는 달리 이미 데이터베이스에 저장되어 있는 값을 변경하는 작업이라는 점이 가장 큰 차이입니다. 2. 태그MyBatis에서 데이터 수정은 태그를 사용하여 구현합니다., 와 마찬가지로 XML 내부에서 SQL을 작성하고 id 값을 기준으로 해당 쿼리를 구분하여 호출하는 구조입니다. 즉, 태그 안에는 실제로 실행될 UPDATE SQL 문이 작성됩니다.2-1. 태그 기본 구조먼저 태그의 기본 구조를 살펴보겠습니..
[SQLD][아이리포]32. 참조 무결성 제약조건 | CASECADE | SET NULL | MODIFY 목차5. 관리구문5-2. DDL5-2-1. 참조 무결성 제약조건5-2-2. DELETE / MODIFY ACTION5-2-3. INSERT ACTION5-2-4. DROP / TRUNCATE / DELETE 차이5. 관리구문5-2. DDL1️⃣ 참조 무결성 제약조건참조 무결성이란 부모 테이블과 자식 테이블 간의 관계를 유지하여 데이터의 일관성과 무결성을 보장하기 위한 제약조건이다. 즉, 데이터의 입력 / 수정 / 삭제 과정에서 잘못된 참조가 발생하지 않도록 DBMS가 관리한다.💡 일반적으로 참조되는 테이블을 부모, 참조하는 테이블을 자식이라고 한다.2️⃣ DELETE / MODIFY ACTION부모 테이블의 데이터를 삭제(DELETE)하거나 수정(UPDATE)할 때 자식 테이블을 어떻게 처리할 것인지 ..
[SQLD][아이리포]30. 트랜잭션 | ACID 특성 | TCL | COMMIT | ROLLBACK 목차5. 관리구문5-1. TCL5-1-1. 트랜잭션5-1-2. COMMIT5-1-3. ROLLBACK5-1-4. SAVEPOINT5. 관리구문5-1. TCLTCL(Transaction Control Language)은 트랜잭션을 제어하는 명령어이다.대표적인 명령어는 다음과 같다.- COMMIT- ROLLBACK- SAVEPOINT1️⃣ 트랜잭션트랜잭션이란 데이터베이스에서 하나의 작업으로 처리되는 최소 실행 단위를 의미한다. 예를 들어 계좌이체는 출금과 입금, 두 작업이 모두 성공해야 정상적으로 완료된다.중간에 하나라도 실패하면 전체 작업을 취소해야 하는데, 이러한 하나의 작업 단위를 트랜잭션이라고 한다. ✔️ 트랜잭션의 특징(ACID)특징설명원자성(Atomicity)하나의 트래잭션으로 묶인 연사들은 모두..
[SQLD][아이리포]27. 서브쿼리 | 정규표현식 목차4. 서브쿼리4-8. 정규표현식4-8-1. 정규표현식 메타문자4-8-2. 정규표현식 리터럴 문자4-8-3. Oracle 정규표현식 함수4-8-4. SQL Server 패턴 문자열4. 서브쿼리4-8. 정규표현식정규표현식(Regular Expression)이란 문자열에서 특정한 규칙을 가진 문자를 검색하거나, 추출하거나, 변경하기 위해 사용하는 표현 방식이다. 특정 문자열의 포함 여부를 확인하거나, 일정한 형식의 데이터를 찾을 때 사용할 수 있다. 예를 들어 다음과 같은 작업에 활용할 수 있다.- 특정 문자로 시작하거나 끝나는 문자열 검색 - 숫자 또는 영문자로 구성된 문자열 검색 - 문자열 일부 추출- 특정 패턴의 문자열 치환- 문자열 내 특정 패턴의 개수 확인1️⃣ 정규표현식 메타문자메타 문자란 문자..
[SQLD][아이리포]26. 서브쿼리 | PIVOT | UNPIVOT 목차4. 서브쿼리4-7. PIVOT 절과 UNPIVOT 절4-7-1. PIVOT4-7-2. UNPIVOT4. 서브쿼리4-5. PIVOT, UNPIVOTPIVOT과 UNPIVOT은 행(Row)과 열(Column)의 구조를 서로 변환하는 기능이다. 조회 결과를 보기 쉬운 형태로 재구성할 때 주로 사용한다. 🔹 예제 ( 기존의 테이블 두 개) 🔹 실행 쿼리SELECT E.JOB ,D.DNAMEFROM EMP E, DEPT DWHERE E.DEPTNO = D.DEPTNO; 🔹 조회결과 1️⃣ PIVOTPIVOT은 행(Row)을 열(Column)로 변환하는 기능이다. 지정한 컬럼의 행 데이터가 새로운 컬럼명(헤더)이 되며, 이에 맞게 데이터가 재배치된다. 또한 PIVOT은 GROUP BY가 내부적..
[SQLD][아이리포]25. 서브쿼리 | 계층형질의 | START WITH | CONENCT BY PRIOR | ORDER SIBLINGS BY 목차4. 서브쿼리4-6. 계층형 질의와 셀프 조인4-6-1. START WITH4-6-2. CONNECT BY PRIOR4-6-3. ORDER SIBLINGS BY4. 서브쿼리4-6. 계층형 질의와 셀프 조인계층형 질의(Hierarchical Query)는 부모와 자식 관계를 가지는 데이터를 계층 구조(트리 구조)로 조회하는 기능이다. 대표적으로 START WITH, CONNECT BY PRIOR, ORDER BY SIBLINGS BY를 사용한다. 🔹 예제다음 EMP 테이블에 대한 SQL문의 결과는? SELECT *FROM EMPSTART WITH MGRNO IS NULLCONNECT BY PRIOR EMPNO = MGRNOORDER SIBLINGS BY EMPNO DESC; 🔹 실행결과 🔹 ..
[SQLD][아이리포]24. 서브쿼리 | Top-N 쿼리 | ROWNUM | 순위함수 목차4. 서브쿼리4-5. Top-N 쿼리4-5-1. ROWNUM4-5-2. 윈도우 함수의 순위함수를 사용한 Top-N쿼리4. 서브쿼리4-5. Top-N 쿼리Top-N 쿼리란 조회 결과 중 상위 N개의 데이터를 조회하는 쿼리를 말한다. 대표적으로 ROWNUM을 이용하는 방법과 윈도우 함수(RANK, DENSE_RANK, ROW_NUMBER)를 이용하는 방법이 있다.1️⃣ ROWNUMROWNUM은 조회된 결과에 대해 조회 순서대로 1부터 순차적인 번호를 부여하는 의사 컬럼(Psedo Column)이다. 조회되는 순서대로 번호가 부여되므로 ORDER BY보다 먼저 적용되며, WHERE 절에서 조건이 거짓이 되는 순간 이후의 행은 조회하지 않는다. 또한 중간 번호를 건너뛰어 조회할 수 없다는 점에 주의해야 한다..
[SQLD][아이리포]23. 서브쿼리 | 윈도우 함수 | RANK | DENSE_RANK | ROW_NUMBER | PARTITION BY | SQL파티션 목차4. 서브쿼리4-4. 윈도우함수4-4-1. 순위함수4-4-1-1. RANK4-4-1-2. DENSE_RANK4-4-1-3. ROW_NUMBER4-4-2. 집계함수4. 서브쿼리4-4. 윈도우함수윈도우 함수는 각 행의 값을 유지하면서 행별로 순위, 집계 등의 연산을 수행하는 함수이다. GROUP BY와 달리 행을 하나로 묶지 않기 때문에 기존 행의 개수는 그대로 유지되며, 각 행에 새로운 값을 추가하거나 기존 값을 계산하여 반환한다. 대표적인 윈도우 함수로는 RANK, DENSE_RANK, ROW_NUMBER 등이 있으며 모든 함수는 OVER() 절과 함께 사용한다.1️⃣ 순위함수순위 함수는 데이터의 순위를 계산하여 각 행에 순위 값을 부여하는 함수이다.함수명설명예RANK동일한 값은 같은 순위를 부여하며..