[스코클] 엑셀보다 쉬운 SQL - 1주차
세줄요약
1. 데이터베이스는 데이터를 잘 저장하고 활용하기 위해 필요
2. SQL database 의 기본중 기본인 where 절과 관련된 여러 구문을 배웠음
3. 다양한 Query를 시도해보고 에러가 났을 때 이를 스스로 해결하기 위해 노력해야 함 ->실력을 향상시킬 수 있는 지름길
강의노트
1. 1주차 오늘 배울 것
- SQL 쿼리를 작성하기 전에 익혀야 할 개념이 너무 많음 (e.g., 관계형 데이터베이스, ERD, 스키마, 엔티티 등)
- 여기서는 데이터를 가져오는 부분만 할 거야~
- SQL을 잘하려면? 반복적으로 써보면서 감과 원리를 익히기
1.1. 데이터베이스 (DB)와 SQL은 왜 필요할까?
- 방대한 양의 데이터를 저장
- 내가원하는 자료를 손쉽게 뽑아올 수 있음
- 책장은 왜? 책을 정리하려고 - 책을 꺼내보기 쉬움
1.2. DB의 기초개념
- 여러사람이 같이 사용할 목적으로 데이터를 담는 통
1.3. CRUD
- Create: 데이터의 생성
- Read: 저장된 데이터를 읽어오기 (웹 개발자들이 하는 일->이 수업의 범위)
- Update: 저장된 데이터 변경
- Delete: 저장된 데이터 삭제
1.4. SQL은 왜 필요? 데이터베이스와 나의 약속된 규칙/언어
1.5. 1~4주차동안 배울 순서!
- 1주차: select, where
- 2주차: group by, order by
- 3주차: Join
- 4주차: Subquery, 그 외
2. 필수 프로그램 설치
- Dbeaver라는 프로그램을 설치. SQL을 손쉽게 사용할 수 있게 도와주는 도구라는데.. 하다보면 이게 뭔지 알게되겠지.
- sparta가 (아마도) 수업용으로 쓰려고 만들어놓은 db에 연결한듯 하다.
3. Select 쿼리문
- 1) 어떤 테이블에서 (표, sheet), 2) 어떤 필드 (column)의 데이터를 가져올지로 구성
3.1. 꿀팁
- show tables 로 어떤 테이블이 있는지 쫙 보기
- 제일 원하는 정보가 있을 것 같은 테이블에 select*from 테이블명 쿼리 날려보기
- 원하는 정보가 없으면 다른테이블에도 2)를 해보기
- 테이블을 찾았으면, 조건을 걸 필드를 찾기
- select*from 테이블명 where 조건 이렇게 쿼리 완성!
3.2. where절과 같이 쓰이는 문법 배워보기
- 같지 않음: field != 10 -> 10이 아닌 값
- 범위: codename between 10 and 50 -> 10에서 50 사이 (두 숫자도 포함)
- 포함: field in (1,3,5,6,7,9) -> field 가 1,3,5,6,7,9 인 값
- 패턴: field like %ab / field like cd% / field like e%f -> 맨뒤가 ab인값, 맨앞이 cd인값, 앞뒤가 e,f 인값
3.3. 이외 유용한 문법 배워보기
- 일부데이터만 가져오기: limit (테이블이 큰 경우 간단히 보기만 하려는 목적으로 빨리 불러오기 위함)
- 중복데이터는 제외하고 가져오기: distinct
- 몇개인지 숫자 세보기: count
- [응용] distinct와 count를 같이 써 보기
*꿀팁: 조건을 하나씩 넣고 결과값을 출력해보기, 한번에 하나씩 추가하기
- e.g.,
1) 전체선택: select * from users
2) 이름만 보기: select name from users
3) 중복값 제거한 이름만 보기: select distinct(name) from users
4) 중복값 제거한 이름의 숫자 세기: select count(distinct(name) from users
4. 에러메시지를 봤을때:
- 문제를 스스로 해결하기 위해 고민해보기
- 바로 답을 보지 않고 답을 찾기 위해 이리저리 탐구해야 함 ->실력 느는 지름길
- 에러메시지 해석하기: 에러메시지에 보면 관련 keywords와 위치정보가 있음.