Database3 [ 8장 ] SQL의 순서 프로그래밍을 할 때, 특정 순서를 가진 데이터를 다루는 일이 자주 있습니다.SQL 에서는 어떻게 순번을 구하는 지 살펴보겠습니다.SQL로 레코드에 순번 붙이는 방법1. 기본 키가 한 개의 필드일 경우 다음과 같이 학생의 체중을 저장하는 테이블이 있습니다.체중을 기준으로 순번을 붙이려면 어떻게 할까요? 1-1. 윈도우 함수 윈도우 함수의 row_number() 함수를 사용하면 다음과 같이 쉽게 순번을 붙일 수 있습니다.select STUDENT_ID, row_number() over (order by STUDENT_ID) as seqfrom WEIGHTS;student_id에 index가 설정되어 있기 때문에, 따로 정렬작업 없이 한번의 index full scan으로 순번을 매길 수 있습니다... 2024. 12. 17. Rollback, UNDO 트랜잭션에 대해 공부하다 보니 트랜잭션에서 롤백이 될 때 롤백이 이루어지는 원리(방식)이 궁금해서 찾아봤다. UNDO: 사용자가 했던 작업을 반대로 진행하여 사용자의 작업을 원상태로 돌린다. 아래와 같은 작업을 했을 때 COMMIT 하지 않고 세션이 비정상 종료 되었다면,update t1set no = no + 1where id = 1; ROLLBACK은 UNDO를 통해서, 아래와 같은 작업을 이어서 하는 것이라고 한다.update t1set no = no - 1where id = 1; 그런데, 시스템 장애가 발생하게 되면 UNDO 데이터도 모두 날아가기 때문에, 결국 시스템 장애 시 REDO 데이터를 이용해서 마지막 check point 부터 장애까지의 DB Buffer Cache를 복구하게 된다고 한.. 2024. 12. 6. 5장 반복문 게시판을 구현할 때, 체크 박스를 선택하고 삭제 버튼을 누를 경우, 선택한 데이터가 전부 삭제되는 기능을 구현한다 해보자.보통 id를 가지고 하나의 데이터를 삭제하는 api를 구현한 뒤, 반복문을 돌며 삭제 메서드 or 삭제 api를 실행시키는 경우가 많을 것이다. 이렇게 우리는 흔히, 문제를 작게 나누어 레코드라는 단위에 이를 때까지 자르고, 그러한 레코드에 반복문을 적용해서 문제를 해결하려고 한다. "문제가 생기면 일단 분할하고 보자" "상향식으로 접근하자" 이런 접근방식을 절자 지향적인 사고방식이라 한다. SQL에 반복이 없는 이유는 뭘까?반복계: 한 행씩 반복문을 돌려 처리하는 SQL포장계: 여러 행을 한꺼번에 처리하는 SQL반복계의 단점1. 성능반복계의 처리 시간 = 처리횟수 * 한 회에 걸리는.. 2024. 12. 4. 이전 1 다음