책 <데이터베이스 첫걸음> 참고
데이터를 관리하는 프로그램 + 그 안에 저장된 데이터
데이터를 관리하는 프로그램: DBMS
검색 = 추출 = 질의
SELECT *
FROM 주소록
WHERE 이름 LIKE '이%'
데이터베이스에 저장되어있는 원본 데이터 자체를 변형하는 것은 아니다.
기존 데이터 수정, 불필요해진 데이터 제거
특정 데이터를 수정하는 코드
UPDATE 주소록 SET 주소 = '경기도 성남시 OOO' WHERE 이름 = '이보민'
특정 데이터를 지우는 코드
DELETE FROM 주소록 WHERE 이름 = '이보민'
새로운 데이터를 추가하는 코드
INSERT INTO 주소록 VALUES('정연', '010-xxxx-xxxx', '서울시 광진구 OOO', NULL
갱신: 등록, 수정, 제거
입문반에서는 질의(SELECT) 배울 예정. 데이터 분석은 기존에 있는 데이터를 변형하는 것이 아니라, 있는 데이터에서 정보를 뽑아내는 것.
두 명이 동시에 데이터베이스에 접속해 갱신할 때 경우의 수 (A가 입력중일 때 B가 접근했을 때)
1. B는 파일을 열 수 없음
2. B는 파일을 볼 수만 있음
3. B도 파일을 수정할 수 있음
주로, 1과 2의 방법을 많이 사용함.
데이터베이스는 데이터를 한 곳이 아니라 복수의 장소에 분산해서 저장하는 등 데이터를 보호하고, 장애에 대응할 수 있어야 한다.
데이터베이스는 해킹 등 외부의 자극에도 뚫리지 않아야 한다.
'검색과 갱신', '동시성 제어', '장애 대응', '보안'
우리는 어떻게 데이터를 검색할 것인가에 집중하면 된다.
2차원 표 형식으로 관리하는 데이터베이스. 가장 주류
Not Only SQL : 대량의 데이터를 고속으로 처리해야하는 웹서비스에서 최근 자주 사용
SQL은 관계형 데이터베이스를 조작하기 위한 언어.
COUNT()
주의) 데이터에 null이 있을 때
null이 포함된 컬럼을 count할 경우, null값을 제외하고 세어준다.
전체 데이터를 count할 경우(COUNT(*))는 전부 센다.
SUM()
주의) 데이터에 null이 있을 때
count랑 똑같이 null값을 제외하고 연산
AVG()
AVG()
null값을 제외한 값들이 분모에 들어간다.
null값을 포함한 평균을 구해야할 때는
SELECT (total_bill) / COUNT(*)
FROM tips
MIN()
, MAX()
GROUP BY
GROUP BY
에 넣은 기준은 SELECT에도 넣어야 한다.
SELECT **day** , SUM(total_bill)
FROM tips
GROUP BY **day**
HAVING
HAVING
GROUP BY 후 연산 결과를 필터링WHERE
GROUPY BY 하기 전 필터링ORDER BY
LIMIT
빼고)SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
LIMIT