SQLite는 한 문장이 하나의 Transaction(작업 단위)로 처리됨 (begin -> commit or rollback)
데이터 검색
SELECT - FROM - WHERE 을 통해 가장 기초적인 검색이 가능하다
SQL의 테이블과 relation의 차이?
추상적인 릴레이션은 SQL의 테이블로 구체화되어 보여지는데,,
한 테이블 내에 똑같은 레코드(행) 중복이 가능하고 따라서 기본키가 반드시 필요하진 않다
~ 이론상 SQL의 테이블은 튜플의 집합이 아니라 중복을 허용하는 다중 집합(multiset)인 셈이다
테이블의 SELECT 결과가 또 다시 테이블이 되는 폐쇄 시스템(closed system)이다!
- COUNT: 해당 테이블의 중복을 허용한 튜플의 수를 반환한다 (distinct 추가 가능)
- AVG: 테이블의 해당 column의 값들의 평균을 반환한다 (WHERE로 추가 조건 가능)
- MAX, MIN, SUM: 같은 원리로 최대, 최소, 합계를 반환한다
부속 질의문(subquery = nested query)을 사용해 검색해보자
- IN: 해당 조건을 만족하는 테이블에서
- NOT IN: 해당 조건을 만족하지 않는 테이블에서 (IN의 여집합)
- =: column이 해당 조건과 정확히 일치하는 경우에 (column 하나만)
- ALL(-> SOME): 해당 조건을 만족하는 테이블 기준으로 조건을 거는 경우 (SQLite 미지원)
LIKE를 사용해 부분적으로 맞는 문자열을 검색할 수 있다
NULL: 참도 거짓도 아닌 미정(unknown)
EXISTS를 활용해 다른 테이블에서 조건에 맞는 값이 하나라도 있다면 검색한다
UNION을 활용해 각 검색의 결과의 합집합을 볼 수 있다
데이터 갱신
UPDATE – SET - WHERE로 데이터를 변경/갱신할 수 있다
INSERT – INTO - VALUES로 레코드를 직접 삽입할 수 있다
DELETE-FROM-WHERE로 데이터의 삭제가 가능하다
'Computer Science > Database, SQL' 카테고리의 다른 글
[HUFS/데이터베이스] #12 데이터 종속성과 정규화 (0) | 2021.11.03 |
---|---|
[HUFS/데이터베이스] #11 View & Embedded SQL (0) | 2021.10.13 |
[HUFS/데이터베이스] #9 SQL 정의문 (2) | 2021.10.06 |
[HUFS/데이터베이스] #8 QBE & SQLite (0) | 2021.09.29 |
[HUFS/데이터베이스] #7 관계 해석 (0) | 2021.09.29 |