사용프로그램 : 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주차까지 쓴 다음에 후기를 작성해볼 예정!
'데이터 다루기' 카테고리의 다른 글
프로그래머스 SQL 코딩테스트 연습 (0) | 2023.05.25 |
---|---|
해커랭크 SQL 오류 / Weather Observation Station 17 (1) | 2023.04.18 |
스파르타 코딩클럽 SQL 4주차까지 완강 / 문법 정리 (0) | 2023.03.17 |
스파르타코딩클럽 SQL 3주차 - join 개발일지 (0) | 2023.03.15 |
스파르타 코딩클럽 엑셀보다 쉬운 SQL 2주차 (0) | 2023.03.14 |