SQL/수업

엑셀보다 쉬운 SQL 1주차 개발일지_Sparta Coding Club

끈끈 2023. 2. 22. 23:05

 

✅ 필수 프로그램 설치 : DBeaver

 

Download | DBeaver Community

 

 

 

✔ 데이터베이스(DB)란?

 

여러 사람들이 같이 사용할 목적으로 데이터를 담아두는 통

 

C(Create) : 데이터의 생성

 

R(Read) : 저장된 데이터를 읽어오는 것

 

U(Update) : 저장된 데이터를 변경하는 것

 

D(Delete) : 저장된 데이터를 삭제하는 것

 

 

✔ 데이터베이스(DB)와 SQL이 왜 필요할까?

 

많은 양의 데이터를 효과적으로 저장/수정/사용하기 위해서

 

 

✔ SQL이 왜 필요할까?

 

Structured Query Language의 약자.

 

데이터베이스에 요청(Query)을 날려서 원하는 데이터를 가져오는 것을 도와주는 언어라는 의미!

 

저장된 데이터를 읽어오는 과정인 R(Read)를 편하게 만들어 주고

 

데이터를 손쉽고 깔끔하게 정리/분석하는 기능도 지원함

 

데이터를 가져오는 명령어를 작성하는 것을 'SQL 쿼리를 작성한다'라고 함

 

 

 

✅ 1-4주차에 배울 순서

 

1주차 : Select, Where

 

데이터를 불러오고(Select), 조건에 맞게 필터링 하는 것(Where)

 

2주차 : Group by, Order by

 

데이터를 범주에 따라 묶어서 통계치를 구하고(Group by), 정렬하는 것(Order by)

 

3주차 : Join

 

여러 데이터를 합쳐서 분석하기(Join), 더 쉽고 깔끔하게 원하는 데이터를 얻기(Subquery)

 

4주차 : Subquery, 그 외

 

 

 

✔ Select 쿼리문이란?

 

쿼리(Query)문이란? 쿼리는 질의를 의미.

 

데이터베이스에 명령을 내리는 것.

 

Select 쿼리문은, 데이터베이스에서 '데이터를 선택해서 가져오겠다'는 의미

 

1) 어떤 테이블에서 2) 어떤 필드의 데이터를 가져올지로 구성됨

 

 

1) 테이블 : orders 엑셀 시트명이 orders라는 이름의 테이블이라는 의미.

 

2) 필드 : order_no, created_at, course_title, user_id, payment_method, email 각각이 필드.

 

 

 

  • 스파르타 데이터베이스의 테이블 보기
show tables;

 

 

  • orders 테이블의 데이터 가져오기
select * from orders;

 

 

  • orders 테이블의 특정 필드만 가져오기
select created_at, course_title, payment_method, email from orders;

 

 

 

 

✔ 특정 데이터만 가져오고 싶다면?

 

Where 절

 

👉 Select 쿼리문으로 가져올 데이터에 조건을 걸어주는 것.

 

예시1) orders 테이블에서 결제수단이 카카오페이인 데이터만 가져와줘!

select * from orders
where payment_method = 'kakaopay' //''는 문자열로 인식, 숫자는 그냥

예시2) point_users 테이블에서 포인트가 5000점 이상인 데이터만 가져와줘!

select * from point_users
where point >= 5000

예시3) orders 테이블에서 주문한 강의가 앱개발 종합반이면서,
       결제수단이 카드인 데이터만 가져와줘!
       
select * from orders
where course_title = '앱개발 종합반' and payment_method = 'kakaopay'
//and를 통해 where절에 원하는 조건 추가하기

 

👉 Where 절과 자주 같이 쓰는 문법 배우기

 

같지 않음 !=

select * from orders
where course_title != '웹개발 종합반'

범위 between ~ and ~

select * from orders
where created_at between '2020-07-13' and '2020-07-15'
//7월 13일과 14일의 데이터만 나오게 된다

포함 in ()

select * from checkins
where week in (1, 3)

패턴(문자열 규칙) like '~%~'

select * from users
where email like '%daum.net'

 

예시) 이메일이 s로 시작하고 com으로 끝나면서
      성이 이씨인 유저만 추출해보기
      
select * from users
where email like 's%com' and name = '이**'

 

 

 

✔ 이외 유용한 문법

 

Limit

 

👉 일부 데이터만 가져오기

 

select * from orders
where payment_method = 'kakaopay'
limit 5
//맨 뒤에 [limit (출력할 숫자)] 적어주면 된다

 

Distinct

 

👉 중복 데이터는 제외하고 가져오기

 

select distinct(payment_method) from orders

 

Count

 

👉 몇 개인지 숫자 세보기

 

select count(*) from orders

 

예시) 회원분들의 성씨가 몇개인지 궁금하다면?

select count(dinsdinct(name)) from users