코드프레소 URL: https://www.codepresso.kr/
먼저 강의 목차는 아래 그림과 같이 구성되어 있습니다.
데이터는 다양한 방법으로 관리가 가능하다(파일, 엑셀 등). 데이터란 여러 사람이 공유하여 사용할 목적으로, 통합하여 관리되는 데이터 집합이다. 자료 항목의 중복을 없애고 자료를 구조화하여 저장함으로써 자료검색과 갱신의 효율을 높일 수 있다.
단순 파일로 데이터를 관리하는 것이 서류더미 라면 데이터베이스는 잘 정리 된 캐비닛이라 볼 수 있다.
데이터베이스를 관리하기 위한 프로그램으로, 관계형 데이터베이스로(RDBMS)
MySQL, Oracle, PostgreSQL, SQL Server, DB2, SQLite, 티베로 등이 있다.
SQL이란 데이터베이스에 데이터를 요청하는 언어로 인간과 데이터베이스간의 언어를 뜻한다.
ex) SELECT * FROM customer WHERE age >= 20 AND city='seoul' AND gender='female'
SQL은 문법이 단순하여 배우기 쉽고 ANSI, ISO 표준이다. 각 DBMS마다 자기만의 방언을 가지지만 핵심 문법은 유사하다.
MySQL이란 오픈 소스 RDBMS고 가장 많이 사용되는 DBMS 중 하나이다. 페이스북 초기 서비스를 MySQL로 구축했다.
테이블 생성 전 Scema 생성이 선행 되어야 함
데이터는 특정 컬럼을 기준으로 내림차순 또는 오름차순으로 정렬이 가능하다. 이때 ORDER BY 명령어를 사용하는대 1개 이상의 정렬 조건을 조합 가능하다.
ASC(오름 차순), DESC(내림 차순)을 명시할 수 있으며 오름 차순이 Default값이다.
Top N 데이터 조회 - LIMIT, OFFSET
LIMIT는 조회 된 결과 값의 개수를 제한 하는데 사용, OFFSET은 LIMIT와 함께 사용되며 페이지 처리를 하는데 사용한다. LIMIT는 주로 ORDER BY 절과 같이 사용되며, 정렬 후 상위 N개의 결과만을 확인할 수 있다.
LIKE 연산자는 문자열 안에서 특정 패턴을 검색하기 위해 사용한다. 연산자가 문자열이 완전히 일치하는 조건인 반면, LIKE연산자는 문자열이 부분적으로 일치하는 조건
DISTINCT문은 특정 컬럼의 unique한 값 들을 조회한다. 엑셀의 중복 값 제거 기능 실행 후 결과와 동일하다 다수의 컬럼을 명시할 수 있지만 자주 사용되지는 않는다.
Null Value란 아무것도 값이 없는 상태를 의미한다. IS NULL, IS NOT NULL 연산자로 null인 또는 null이 아닌 데이터만 조회가 가능하다.
AS란 Alias(별칭)을 의미한다. 컬럼 또는 테이블에 별칭을 부여하여 조회가 가능하며 컬럼 명을 이해하기 쉽게 만들기 위해서 사용한다. 테이블 명을 짧게 만들기 위해서 사용한다.
기존의 데이터를 수정할 때 사용되며 WHERE 절에 명시한 조건에 해당하는 데이터를 변경한다. (명시하지 않으면 모든 ROW의 값이 변경 될 수 있다)
기존 데이터를 삭제할 수 있다. WHERE절에 명시한 조건에 해당하는 데이터를 삭제한다.(명시하지 않으면 해당 테이블의 모든 데이터가 삭제될 수 있다) 또한 지워진 데이터는 복구가 어렵다.
조회 된 데이터의 개수를 계산하는 함수이다. WHERE 절을 통해 필터링 된 데이터의 개수를 계산 가능하다. Null Value는 카운트 되지 않는다.
조회 된 데이터의 합을 계산하는 함수로 WHERE 절을 통해 필터링 된 데이터의 합을 계산 가능하다. *를 사용할 수 없고 특정 컬럼 명을 명시해야한다.
MIN은 조회된 데이터에서 특정 컬럼의 최소 값을 계산하는 함수이다.
MAX는 조회된 데이터에서 특정 컬럼의 최대 값을 계산하는 함수이다.
WHERE 절을 통해 필터링 된 데이터의 최대값 최소값을 계산 가능하다.
조회된 데이터에서 특정 컬럼의 평균 값을 구하는 함수이다.
WHERE 절을 통해 필터링 된 데이터에서 특정 컬럼의 평균값을 계산 가능하다.
특정 컬럼들을 기준으로 데이터를 그룹 지어 분석할 수 있다. (한 개 이상의 컬럼으로 그룹화 가능)
GROUP BY는 집계함수들과 함께 자주 사용한다.
HAVING 명령어는 그룹화 한 결과를 필터링 해준다. 그룹화 전 필터링은 WHERE, 그룹화 후 필터링은 HAVING이다.
SQL JOIN의 종류에는
그 중 INNER JOIN 명령어는 두 개의 테이블에 모두 존재하는 데이터만 결합하여 조회한다.
LEFT JOIN
-> 왼쪽에 위치한 테이블을 기준으로 오른쪽의 테이블의 데이터를 붙인다.
- 왼쪽 테이블의 데이터는 모두 조회 됨
- 왼쪽 테이블에는 있지만 오른쪽 테이블에 없는 데이터는 Null
RIGHT JOIN
-> LEFT JOIN과 동일하고 기준이 되는 테이블의 방향만 반대이다.