니모의 기록/하찮은 개발일지

SQL 초보자(a.k.a 나자신)를 위한 개념 정리

전세계 맛집 유랑단 단장 2022. 5. 20. 15:15

개념 정리만 몇 번째인지 모르겠지만 아직도 잘 모르겠으니 이번엔 유튜브의 힘을 빌려보기로 했다.

 

두 가지 영상을 보고 드디어 나름 정리가 된 것 같아서 내용과 링크를 함께 공유해 본다.. (마지막이라고 장담은 못 함 ㅎ)


1.

아직도 SQL을 모른다고해서 5분 설명해드림

https://youtu.be/z9chRlD1tec

출처: 노마드 코더 Nomad Coders 유튜브

SQL 데이터베이스는 어떻게 생겼고, 작동하는 걸까?

SQL = 엑셀
SQL 데이터베이스 '테이블' = 엑셀 문서 '시트'
SQL 테이블 '행 & 열' = 엑셀 문서 '행 & 열'

SQL에 4개 열(column)이 있다고 가정하자.
ex) ID, name, email, age
그리고 행(row)엔 5명의 유저가 있다고 가정하자.
ex) Nico, Lynn, Flynn, Amie, Corini

나이가 15~18세인 학생들의 이메일 주소 알려조

-> select email from students where age between 15 and 18

ORM: 파이썬을 가져와서 SQL코드로 바꿔주는 일을 함
파이썬으로 코딩을 하면 ORM 덕분에 SQL코드를 얻을 수 있는 것

========================================

2.

SQL 초보자가 꼭 알아야 하는 10가지 문법. 무료 강의. 편안하게 들어보세요

https://youtu.be/ZsYnTSSuSiw?list=TLPQMTcwNTIwMjLCMSw4btsscg

디노자유아빠 - SQL 무료강의 '초보자들을 위한 열 가지 문법'

 

SQL 초보자가 꼭 알아야하는 문법

1.SELECT 
이 문법은 내가 보고싶은 데이터를 고를 때 사용. 예를 들어, 부동산 데이터라고 하면 '아파트', '다세대' 데이터 등 보고싶은 주제가 있을 텐데 이때 사용하는 문법이 SELECT문이다.

* 아스타, 테이블에 있는 모든 항목을 보겠다는 뜻.

2. ORDER BY
SELECT문을 사용해서 선택한 데이터를 정렬할 때 사용하는 문법이 ORDER BY문법이다. 쿼리 가장 마지막에 사용한다고 생각하면 됨, LIMIT보다는 위에! 

어떠한 데이터를 가나다, 123 등 순서대로 보고싶을 때 쓴다.
ex.1) 오름차순 예시 - 아파트 매매건 중 가격이 낮은 순으로 정렬하고 싶을 때: 
1 SELECT *
2 FROM apt_list
3 ORDER BY price
4 LIMIT 100
ex.2) 내림차순 예시 - 아파트 매매건 중 가격이 높은 순으로 정렬하고 싶을 때:
1 SELECT *
2 FROM apt_list
3 ORDER BY price desc
4 LIMIT 100
ex.3) 정렬을 여러 개 컬럼을 사용하고 싶을 때도 있는데, 그럴 땐 콤마를 사용해서 나열해주기만 하면 되는데 - 거래가 가장 오래된 순으로 아파트 연/월/일을 보고 싶을 때:
1 SELECT *
2 FROM apt_list
3 ORDER BY YEAR,MONTH,DAY
4 LIMIT 100


3. GROUP BY / COUNT

건수가 몇개인지 알아볼 때는 COUNT문.
 
1 SELECT COUNT(*)
2 FROM apt_list

COUNT는 GROUP BY문과 많이 쓰이는데, GROUP BY는 테이블을 전체 데이터가 아닌 특정 항목들(갯수, 평균 등)을 확인하는 문법이다.

예를 들어, 이번 달에 우리 동네에서 거래된 아파트 매매 건수를 보고싶다거나 연도별로 매매된 건수를 알고 싶을 때 쓰이는 문법이라고 보면 된다.

1 SELECT dong, count(*)
2 FROM apt_list
3 group by dong
-> '동별로 아파트 매매건수를 보고싶다'라는 쿼리를 작성한 것

1 SELECT year, count(*)
2 FROM apt_list
3 group by year
-> 연도별 아파트 매매건수 확인하는 쿼리 

4. WHERE
테이블에 있는 모든 데이터가 아닌 일부 데이터만 보고자 할 때 사용하는 문법.
1 SELECT *
2 FROM apt_list
3 WHERE dong = '삼성동'
4 LIMIT 100 
-> 아파트 매물 정보가 들어간 apt_list 테이블에서 dong이 삼성동인 데이터만 100개 보여줘!

5. CASE
데이터 값이 특정한 조건일 때 다르게 표현해주는 역할을 하는 문법.
1 SELECT price, YEAR, MONTH, DAY, nm
2   , case when price <= 10000 then '1억 이하'
3  ,      when price <= 30000 then '1억 ~ 3억 이하'
4  ,  when price > 30000 then '3억 초과'
5  end
6 FROM apt_list
7 LIMIT 100
-> 1억 이하, 1억 ~ 3억 이하, 3억 초과, 이렇게 세 가지 조건에 해당되는 데이터의 가격, 연월일, 아파트명을 아파트_리스트 테이블에서 100개 불러와라.

case when 조건들을 쭉 적어준 후 ELSE 기타표현내용 이라고 적어줄 경우 조건 3가지에 해당되지 않는 데이터가 ELSE 부분에 나오게 된다. 

6. LIKE/NOT LIKE
학생 중 이름이 '영희'인 사람만, 또는 성이 김씨가 아닌 사람만 보고 싶을 때 쓰는 문법.

1 SELECT *
2 FROM apt_list
3 WHERE nm LIKE '%바보%'
4 LIMIT 100
-> nm이 바보인 것만 100개 보여줘

1 SELECT *
2 FROM apt_list
3 WHERE nm not LIKE '바보%'
4 LIMIT 100
-> 바보로 시작하는 것 빼고 100개 보여줘

 

 


=========================================

데이터베이스 개념:
- 특정 기업이나 조직 또는 개인이 필요에 의해 논리적으로 연관된 데이터를 모아 일정한 형태로 저장해 놓은 것.
- 한 조직의 여러 응용 시스템들이 공용(Shared)으로 사용하기 위해 통합, 저장한 운영 데이터의 집합

데이터베이스 매니지먼트 시스템 (DBMS):
- 데이터베이스 관리 프로그램
- DBMS를 이용하여 데이터 입력, 수정, 삭제 등의 기능을 제공

 


마지막으로 SQLD 개념정리 해주는 유튜브 영상을 보는 것으로.. 

출처: 김강민SQLP 유튜브 [SQLD 최종 정리강의 1편 - SELECT문장 ~ 트랜잭션 관리 언어(TCL)]

728x90
반응형