일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 멋사
- Rag
- 파이썬
- 알고리즘
- folium
- tog
- 멋재이사자처럼
- 마이온
- parklab
- DP
- graphrag
- Python
- SQL
- GNN
- BFS
- ux·ui디자인
- Join
- likelionlikelion
- DFS
- seaborn
- paper review
- 그리디
- TiL
- 마이온컴퍼니
- likelion
- 프로젝트
- intern10
- 멋쟁이사자처럼
- 시각화
- 인턴10
- Today
- Total
지금은마라톤중
멋사 AI스쿨_SQL_TIL (1) 본문
2023.01.13
python만 공부하다가 처음으로 SQL을 배웠다.
파이썬을 어느정도 알고 배워서 그런지 이해를 좀 더 쉬웠던 것 같다.
수업 중 파이썬의 문법이 SQL에서 적용이 가능한지에 대해 궁금한 부분이 많았다.
내용정리
● 데이터와 데이터 베이스(DB)
- 데이터란 컴퓨터 안에 기록된 문자, 숫자를 말한다.
- 이런 데이터들의 집합이 데이터베이스이다.
● 데이터베이스 관리시스템)(DBMS : 데이터베이스를 효율적으로 관리하는 소프트웨어
● 관계형 모델
: 데이터를 표 형태로 구조적으로 관리하는 모델
- 관계형 데이터베이스(RDB)
- RDB기반의 데이터베이스관리시스템이 RDBMS
- RDBMS 소프트웨어로는 Oracle, DB2, SQL Server PostgreSQL, MySQL, SQLite 등
● SQL : 관계형 모델을 관리하는 언어
- 정보를 저장, 업데이트,. 제거 및 검색을 할 수 있음
- 데이터베이스 성능을 유지하고 관리하는 것에도 사용
● Google BigQuery
: 머신러닝, 지리정보 분석, 비즈니스 인텔리전스와 같은 기본 제공 기능으로 데이터를 관리하고 분석할 수 있게 해주는 완전 관리형 엔터프라이즈 데이터 웨어하우스
🙌🏻Tips 실제 회사에서도 빅쿼리 사용해서 데이터 쫙 모아줌. (예를 들어 당근마켓이 이렇게 사용하고 있는데요. 서버가 수십대이고, 그 서버에서 모이는 데이터를 전부 빅쿼리로 조회할 수 있도록 모아줌. 이렇게 데이터가 모이는 곳을 데이터 웨어하우스라고 함) => 조회는 누구나 가능합니다. 디자이너도 가능하고, 마케터도 가능 |
- BigQuery에서는 한글이 안된다
-> 영어만 사용하자
함수
● as : 변수명을 변경해줄 때 사용, 필드명, 테이블명 둘 다 가능
ex) name as product_name, from `thelook_ecommerce.prducts` as a
● limit : 갯수 제한을 줄 때 사용,
ex) limit 5 ;
● distinct : 중복 제거할 때 사용
ex) select distinct country, city
# 500개로 갯수 제한을 줌
select *
from `thelook_ecommerce.products`
limit 500;
#국가와 시티를 중복 제거함.
select distinct country, city
from `thelook_ecommerce.users`;
● where : 조건문
ex) where id = 2427 ; #id 가 2427인 것만 조회
select *
from `thelook_ecommerce.users`
where age <= 20
or age >= 60;
select *
from `thelook_ecommerce.users`
where (country = 'Japan' or country = 'Brasil')
and age >= 60
🙌🏻Tips 한 SELECT 문이 작동할 때, 파이썬 처럼 위에서부터 한 줄씩 실행되는 게 아니라 모두 한 번에 작동! 그래서 product_profit_rate를 만들 때, product_profit 이라는 컬럼이 존재하는게 아니라 아직 만들어지지 않은 컬럼으로 인식됩니다. 그래서 한 SELECT 안에서는 다른 컬럼의 값을 가져오거나 쓸 수 없습니다! |
🙌🏻Tips 대부분 데이터베이스가 연산처리가 느려서, 아주 간단한 연산 또는 짧은 연산만 디비에서 처리하고 나머지는 서버(python이나 JS 등등)에서 SELECT로 값을 불러와서 연산처리를 해주는 게 보통 방식입니다 |
* SQL은 대소문자 등 문법이 좀 느슨한 편이다. 그래서 들여쓰기를 하거나 가독성이 좋게 하는 것이 중요하다.
● between : 사이를 출력, 양쪽 경계값도 다 포함
ex) between 20 and 30 : 20과 30 사이를 출력
in : 안에 포함된 것을 출력, ()를 사용
select * from `thelook_ecommerce.users`
where country in ('United States', 'Brasil', 'Korea', 'Japan');
●like
- % : 문자열 조건을 제시
- ___: 문자 수를 제시
# 성 중간에 a가 들어가는 사람 찾음
select *
from `thelook_ecommerce.users`
where first_name like '%a%';
# 성이 총 5글자인데 Da로 시작하는 사람 찾음
select distinct first_name
from `thelook_ecommerce.users`
where first_name like 'Da___';
● IS NULL : SQL에서 널값을 찾을 때 사용
select *
from `thelook_ecommerce.order_items`
where delivered_at IS NULL
and shipped_at IS NOT NULL
● count : 갯수를 세는 집계 함수
ex) select count(distinct name)
● sum : 합계를 구하는 함수
ex) select sum(retail_price)
● avg : 평균을 구하는 함수
ex) select avg(cost)
● max : 최댓값 구하는 함수
● min : 최솟값 구하는 함수
● variance : 분산 구하는 함수
select count(id)
from `thelook_ecommerce.users`;
select count(distinct city)
from `thelook_ecommerce.users`;
select sum(retail_price)
from `thelook_ecommerce.products`;
select avg(cost)
from `thelook_ecommerce.products`;
select max(cost), max(retail_price)
from `thelook_ecommerce.products`;
select min(cost), min(retail_price)
from `thelook_ecommerce.products`;
select variance(retail_price)
from `thelook_ecommerce.products`;
select stddev(retail_price)
from `thelook_ecommerce.products`;
● GROUP BY : 특정 항목을 기준으로 그룹화하여 조회할 수 있음
'멋쟁이사자처럼 > SQL' 카테고리의 다른 글
멋사 AI스쿨_SQL_TIL (6) (0) | 2023.02.07 |
---|---|
멋사 AI스쿨_SQL_TIL (5) (0) | 2023.02.02 |
멋사 AI스쿨_SQL_TIL (4) (0) | 2023.02.02 |
멋사 AI스쿨_SQL_TIL (3) (0) | 2023.01.25 |
멋사 AI스쿨_SQL_TIL (2) (0) | 2023.01.20 |