데이터 놀이터
Section 4 - Sprint 1. 환경과 관계형 데이터 베이스 - 3. SQL 심화 본문
728x90
오늘의 키워드
- Transaction
- ACID
- SQL 내장함수
1. 개념 정리
A. Transaction
데이터베이스의 상태를 변화시키는 작업의 모음, 작업들의 모음이기 때문에 하나의 작업이라도 실패하게 된다면 전부 실패함
INSERT, DELETE, UPDATE 등 DML(Data Manipulation Language)을 통해 데이터베이스의 상태를 변화시키고
COMMIT, ROLLBACK 등 TCL(Transaction Control Langauge)를 통해 확정 또는 되돌린다.
B. ACID
Atonomy, Consistency, Isolation, Durability 등 데이터베이스 내에서 일어나는 하나의 Transaction이 보장하는 성질
- Atonomy(원자성) : Transaction이 성공하기 위해서는 모든 작업들이 성공해야한다는 성질, 하나의 작업이라도 실패한다면 전체가 실패한 것으로 간주.
- Consistency(일관성) : Transaction 이후에도 데이터베이스의 고유한 제약, 규칙 등의 상태는 이전과 같이 유효하여야 한다.
- Isolation(고립성) : 하나의 Transaction은 다른 Transaction과 독립적으로 수행되며 서로 영향을 주고 받지 않는다. 따라서 동시에 여러개의 Transaction이 실행되더라도 순차적으로 수행한 것과 같은 결과가 나와야한다. 예를 들어, A 계좌에 만원이 있다고 가정할 때, T1, T2 모두 계좌에서 6천원씩 뽑는다고 하자. T1, T2가 동시에 실행되더라도 T1 -> T2로 실행되어야 은행계좌에 아무 문제가 없을 것이다.
- Durability(지속성) : Transaction을 commit한 후에는 어떠한 경우라도 저장된 데이터베이스의 상태가 유지되어야 한다는 뜻이다.
2. 코드 정리
## SQL에서의 조건문 (Python if문과 유사)
CASE WHEN 조건문 THEN 출력
WHEN 조건문 THEN 출력
ELSE 출력
END
## SQLite 문자열 합치기 (A,B -> AB)
A || B
## Uunique한 값 개수 구하기(Python의 nuique)
COUNT(DISTINCT ~)
## b번째 행부터 a개 행 추출(Python과 마찬가지로 b는 0부터 시작)
LIMIT a OFFSET b
## Primary 값을 제외하고 입력하는 경우(Primary 값은 자동으로 1부터 올라감)
INSERT INTO table명 (입력하고자 하는 열 이름들...) VALUES 값
3. 더 알아봐야할 것
- SQL 시계열 입력법: https://araikuma.tistory.com/744, Julianday 활용법
- AUTOINCREMENT: https://araikuma.tistory.com/690
- Row number 매기기:https://www.sqlitetutorial.net/sqlite-window-functions/sqlite-row_number/,
- 중앙값 출력: https://stackoverflow.com/questions/15763965/how-can-i-calculate-the-median-of-values-in-sqlite
- pandas, SQL 출력 비교: https://urclass.codestates.com/content/cb28903f-155b-4471-bb26-4e9103b82c00?playlist=4587
728x90
'코드스테이츠 AIB 17' 카테고리의 다른 글
Section 4 - Sprint 1 Challenge (0) | 2023.03.23 |
---|---|
Section 4 - Sprint 1. 환경과 관계형 데이터 베이스 - 4. DB API (0) | 2023.03.23 |
Section 4 - Sprint 1. 환경과 관계형 데이터 베이스 - 2. SQL, RDB (0) | 2023.03.21 |
Section 4 - Sprint 1. 환경과 관계형 데이터 베이스 - 1. 개발 환경 (0) | 2023.03.20 |
Section 2 Review - Machine Learning (0) | 2023.02.14 |