본문 바로가기

DB

(4)
[DB] 락 DB 세션1이 트랜잭션을 시작하고 데이터를 수정하는 동안 아직 커밋을 시작하지 않았는데, 세션2에서 동시에 같은 데이터를 수정하게 되면 여러가지 문제가 발생한다. (원자성이 깨짐) 이런 문제를 방지하려면, 세션이 트랙재션을 시작하고 데이터를 수정하는 동안에는 커밋이나 롤백 전가지 다른 세션에서 해당 데이터를 수정할 수 없게 막아야 한다. EX) 세션1이 트린잭션을시작하면 DB는 해당 로우의 락을 세션1에 제공한다. 이때, 세션2가 동일한 로우를 수정하려고 하면 해당 로우에 락이 없으므로 돌아올 때 까지 대긴한다. (무한정 대기는 아님, 락 대기 시간이 넘어가면 락 타임아웃 오류가 발생하며 설정가능하다.) 락 타임아웃 시간 설정 SET LOCK_TIMEOUT ex) SET LOCK_TIMEOUT 10000..
[MySQL] ORDER BY에 연산자 사용하기 문제 https://programmers.co.kr/learn/courses/30/lessons/59411 코딩테스트 연습 - 오랜 기간 보호한 동물(2) ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 이 문제를 풀면서 알았던 점은 ORDER BY에 연산자를 사용할 수 있다는 것이었습니다. 답 SELECT OUTS.ANIMAL_ID, OUTS.NAME FROM ANIMAL_OUTS AS OUTS JOIN ANIMAL_INS AS INS..
[MySQL] Join LEFT JOIN SELECT * FROM Table A LEFT JOIN Table B ON A.Key = B.key LEFT JOIN ( IS NULL ) SELECT * FROM Table A LEFT JOIN Table B ON A.Key = B.key WHERE B.ID IS NULL 순수 A의 값만 가져옵니다.
[MySQL] Ubuntu에 데이터베이스 테이블 생성 및 확인 Ubuntu에 MySQL실행 데이터베이스 확인 -> show databases; 데이터베이스 사용(sloth라는 데이터베이스 사용) 해당 데이터베이스에 테이블 확인 테이블 생성 테이블 구조 확인