본문 바로가기

데이터 다루기

스파르타 코딩클럽 SQL 1주차

사용프로그램 : DBeaver


SQL이란?

Structured Query Language의 약자로, 데이터베이스에 요청(Query)을 날려서 원하는 데이터를 가져오는 것을 도와주는 언어


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

많은 양의 데이터를 저장/수정/사용하기 위해서는 데이터베이스가 필요

아주 작은 회사가 아니라면 거의 모든 회사의 데이터는 데이터베이스에 저장되어 있음

모든 데이터베이스는 CRUD에 해당하는 기능을 지원


CRUD란?

C(Create): 데이터 생성 / R(Read): 저장된 데이터 읽어옴 / U(Update): 저장된 데이터 변경 / D(Delete): 저장된 데이터를 삭제

데이터 분석가는 "R"이 중요하다고 볼 수 있음

SQL은 바로 이 "R"을 편하게 만들어주고, 데이터를 손쉽고 깔끔하게 정리/분석하는 기능도 지원.


SQL에서 테이블(table)과 필드(field)

엑셀파일로 생각해본다면 테이블은 sheet이고, 필드는 각각의 컬럼을 이야기한다고 볼 수 있음

 

 


 

간단하게 query 복습


show 테이블명

이렇게 명령하면 테이블을 보여줌


select * from 테이블명

여기서 *은 전체(all)를 의미하고, 결국 테이블 전체를 보여줌


select * from 테이블명

where 필드명 = "test"

 

쿼리를 이렇게 쓴다면 입력한 필드명의 값이 test라고 되어있는 결과만 보여줌

where조건을 걸어 걸러주는 역할


select * from 테이블명

where 필드명 1= "test" and  필드명2 = "??"

필드명1의 값은 test이면서 필드명2의 값은 ??인 두가지 모두를 충족해야하는 조건을 걸어준 것임.

"같지 않다"는 !=   


select * from 테이블명

where 필드명 between "2020-07-23" and "2020-07-25"

이렇게 하면 조건의 범위를 지정해준 것임

위의 예시는 date값이 입력된 필드로 7월 13일 부터 7월 15일 이전까지의 조건이 걸린 것임.

즉 7/23 ~ 7/24 까지의 조건을 가져오는 것임


select * from 테이블명

where 필드명 in (1, 3)

해당 필드값이 1, 3 인 것만 가져옴


패턴 조건을 걸 때에는 like% 사용

select * from 테이블명

where name like '김%'

name 중 김씨만 불러올 수 있음

 

select * from 테이블명

where name like '이%히'

이로 시작해서 히로 끝나는 이름을 가진 사람만 불러옴

 

여러 이메일 사용자 중에서 gmail 사용자만 읽어오려면

select * from 테이블명

where email like '%@gmail.com'

포함했으면 하는 문자를 써주고 그 문자를 기준으로하여 앞, 뒤 또는 중간에 바뀌는 내용을  %로 대체해서 써주면 되는 것이다.


select  count(*) from 테이블명

where email like '%@gmail.com'

이렇게 써주면 조건에 맞는 데이터의 수를 셀 수 있음


참고

select  * from 테이블명

limit 10

이런식으로 마지막에 limit 숫자를 써주면 그 수만큼의 데이터를 가져온다.

너무 많은 데이터를 불러올 경우 시간이 오래걸리기 때문에 형태만 보고자 한다면 limit을 걸어주면 됨

 

limit 5로 불러온 결과를 캡처해봤음

스파르타 내부 데이터를 변형하여 학습 자료로 제공하고 있는 것 같다.

어차피 임의로 만든 이메일 주소라 상관없겠지만 모자이크 처리를 해봤다 🤓

 


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

 

select distinct(필드명) from 테이블명

이렇게하면 필드값의 종류가 어떤게 있는지 알 수 있음

select count(distinct(필드명)) from 테이블명

이렇게하면 필드값의 종류수를 알 수 있겠음

 


 

한 번에 쭉 듣고 1주차부터 복습하면서 정리해본다.

4주차까지 쓴 다음에 후기를 작성해볼 예정!

 

 

 


loading