프로그래밍/개발일지

[스코클] 엑셀보다 쉬운 SQL - 1주차

구소장 2022. 10. 10. 14:55
728x90

세줄요약

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와 위치정보가 있음.