- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 데이터 분석
- mysql
- python연동
- SQL
- GROUP BY와 NULL
- 재귀쿼리
- Tableau
- TWBX
- 고객세분화분석
- 대시보드
- 아니시에이팅
- 살짝보기
- 네이버웹툰
- 태블로
- IF()
- 데이터리안 세미나
- TWBX 7기
- 4LS
- SQL캠프입문반
- 데이터분석
- 퀵테이블계산
- 데이터분석가
- 데이터리안
- SQL캠프
- 대시보드 체크리스트
- NULL값 있는 컬럼 정렬하기
- 채용공고
- 리텐션
- pmset
- 특정차원
ThinkCatLog
[SQL] SELECT로 데이터 가져오기 본문
SQL 공부한 내용을 정리하기 위해 작성하는 글입니다. 아래의 데이터를 python을 이용하여 SQL에 저장하여 사용하였습니다.
작업환경
MySQL Server 8.2.0
MySQL Workbench 8.0.34
Python 3.11.2
사용한 데이터 : Netflix Movies and TV Shows(kaggle)
데이터 출처 : https://www.kaggle.com/datasets/shivamb/netflix-shows
SQL로 데이터 가져오기
SQL로 데이터를 가져올 때 SELECT 명령문(statement)을 사용한다. LIMIT, DISTINCT, WHERE 문에 대해서 정리하였다.
WHERE문은 일반 조건문 뿐만 아니라 BETWEEN, IN, LIKE 등의 연산자를 이용하여 사용할 수 있다. 다음 포스팅에서 정리해보려고 한다.
기본 문법
SELECT column1, column2, ...
FROM table_name
SELECT 뒤에는 table에서 가져오고 싶은 컬럼명을 FROM 뒤에는 사용할 table의 이름을 적는다.
table의 모든 데이터를 가져오기
모든 컬럼을 가져오고 싶을 때에는 SELECT 뒤에 *(asterisk)를 사용한다.
SELECT *
FROM table_name
아래 사진은 MySQL Workbench에서 실제 SQL 쿼리를 실행한 사진이다.
일부 데이터만 가져오기
SELECT *
FROM table_name
LIMIT 10
LIMIT 뒤에 가져오고 싶은 만큼의 행의 수를 적어주면 된다. 위의 쿼리는 10개의 행을 가져온다는 의미이다.
중복되는 행을 제거하여 가져오기
SELECT DISTINCT 구문을 사용하여 중복되는 행을 제거하여 가져온다. 지정한 컬럼의 unique 값만 보고 싶을 때 사용할 수 있다.
SELECT DISTINCT
column1
FROM table_name
아래 사진과 같이 중복되는 열을 제거하여 하나의 값만 가져온다.
아래의 쿼리는 Netflix 테이블의 type 컬럼의 unique 값을 가져오는 쿼리이다. type column은 Movie와 TV Show 값으로 이루어진 것을 알 수 있다.
COUNT 함수와 함께 사용하여 해당 컬럼의 unique 값의 갯수를 출력할 수 있다.
SELECT COUNT(DISTINCT column1)
FROM table_name
특정 조건의 행만 가져오기
WHERE을 이용하여 특정 조건의 행만 가져올 수 있다. 아래 쿼리는 column1이 value1인 행만 가져오게 하는 쿼리이다. value1가 string인 경우에는 따옴표로 감싸줘야 하며, 숫자는 그대로 사용하면 된다.
SELECT *
FROM tabel_name
WHERE column1 = "value1"
아래의 쿼리는 Netflix라는 테이블에서 type = "movie"인 행을 가져오는 쿼리이다. type에는 Movie와 TV Show가 있다.
아래의 쿼리는 Netflix라는 테이블에서 release_year >= 2020 에 해당하는 행을 가져오는 쿼리이다.
AND, OR, NOT
WHERE문에는 AND, OR, NOT 연산자(operator)를 사용할 수 있다.
두 개 이상의 조건을 AND나 OR로 연결하여 사용할 수 있다. NOT은 부정 연산자로 조건에 해당하지 않는 행을 가져온다.
SELECT *
FROM table_name
WHERE column1 = 'value1' AND column2 >= value2
아래 쿼리는 Netflix 테이블에서 country가 'South Korea', release_year 가 2020 이상인 행을 가져오는 쿼리이다.
아래 쿼리는 Netflix 테이블에서 country가 'South Korea' 또는 'Japan'인 행을 가져오는 쿼리이다.
아래의 쿼리는 type = 'Movie'가 아닌 행을 가져오는 쿼리이다.
'데이터 분석 > SQL' 카테고리의 다른 글
[SQL] CASE와 IF() (1) | 2024.01.24 |
---|---|
[SQL] GROUP BY는 NULL을 어떻게 처리할까? (0) | 2024.01.21 |
[SQL] ORDER BY를 했을때 NULL이 있으면 어떻게 정렬될까? (2) | 2024.01.15 |
[SQL] WHERE문과 BETWEEN, IN, LIKE 그리고 서브쿼리 (1) | 2024.01.10 |
[SQL] MySQL 설치 및 기초 기능 활용해보기 (2) | 2024.01.01 |