실제 데이터 분석 환경은 mysql 을 많이 사용한다.
이미 기업들이 mysql 을 사용하는 곳이 많기 때문인듯.
sqld 자격증은 별로 소용이 없다. 실제로 데이터 분석을 할 때 사용하는 sql 과는
차이가 좀 있기 때문이다.
데이터 분석가가 되려면
서브쿼리, 윈도우 함수 까지는 엄청 잘 쓸 수 있어야 한다.
SELECT * -- 모든 컬럼을 선택
FROM station -- station 이라는 테이블에서 데이터를 가져오겠다.
LIMIT 10; -- 10개만 출력하겠다.
SELECT name, address -- 특정 컬럼을 선택 할 수 있다.
FROM station -- station 이라는 테이블에서 데이터를 가져오겠다.
LIMIT 10 -- 10개만 출력하겠다.
-- AS 로 별칭을 설정하여 컬럼을 뽑을 수 있다.
SELECT name AS station_name
,address AS station_address
FROM station
WHERE type = "LCD"
-- where 에 OR 로 두개의 조건을 걸 수 있다.
SELECT *
FROM station
WHERE local = "마포구"
OR local = "광진구"
SELECT *
FROM station
WHERE local IN ("마포구", "광진구")
-- 서브쿼리
SELECT *
FROM station
WHERE lat > (select lat from station where name = "서울북부지방법원")
SELECT *
FROM station
WHERE local = "광진구"
-- DESC 내림차순 ASC 오름차순. default 는 ASC 이다.
ORDER BY updated_at DESC
SELECT *
FROM station
WHERE local = "광진구"
-- DESC 내림차순 ASC 오름차순. default 는 ASC 이다.
ORDER BY updated_at DESC, station_id DESC
SELECT station_id, name, local, address
FROM station
WHERE local in ("광진구", "동작구", "마포구", "성동구", "영등포구")
SELECT color, pH, alcohol, quality
FROM wines
WHERE quality >= 8
AND alcohol <= 12
AND color = "white"
SELECT *
FROM wines
WHERE quality >= 8
AND alcohol <= 12
AND color = "red"
ORDER BY quality DESC, alcohol
SQL문제 풀어볼 수 있는 사이트
https://solvesql.com/problems/
SQL 가독성을 높이는 5가지 사소한 습관
https://www.datarian.io/blog/good-sql-code?utm_source=sql-camp&utm_medium=camp&utm_campaign=referral&utm_content=sql-basic
SELECT day
, time
, SUM(total_bill)
FROM tips
GROUP BY day, time
SELECT day, time, SUM(total_bill) FROM tips GROUP BY day, time
위의 sql문이 더 보기가 좋다.
행갈이 기준은 주석처리 하기 좋은지 생각해 보면 좋다.
추천도서
데이터 분석을 위한 SQL 레시피
DQL (Data Query Language) 질의어 - SELECT
DMl (Data Manipulation Language) 조작어 - insert, update, delete
SELECT *
FROM Customers
WHERE Country <> "Germany"
비교연산자 중에 <> 는 다르다 는 뜻이다.
비교연산자로 알파벳도 비교 가능하다.
SELECT *
FROM Customers
WHERE CustomerName < "B"
-- 이러면 CustomerName이 "A"로 시작되는 애들만 출력된다.
-- % 는 와일드카드다. 어떤 문자가 와도, 안와도 상관없다.
SELECT *
FROM Customers
WHERE Country LIKE "Br%"
SELECT *
FROM Customers
WHERE CustomerID BETWEEN 3 AND 5
-- 비어있는 값 검색 =NULL 하면 검색이 안된다.
SELECT *
FROM Customers
WHERE CustomerID IS NULL
-- 언더바는 어떤 문자라고 특정해 주지는 않지만 몇개의 문자가 오는지 정해 줄 수 있다.
-- 언더바는 한글자 와일드카드라고 한다.
SELECT *
FROM Customers
WHERE country LIKE "B_____"
% 나 _ 인 예약어 자체를 검색해야 할 때는
\ 역슬레시를 앞에서 붙이면 이스케이프가 된다.
\% _
LIKE '50\%'
이렇게 하면 된다.
-- 모음으로 시작되는 걸 찾을 때!
SELECT
DISTINCT CITY
FROM STATION
WHERE CITY LIKE 'a%'
OR city LIKE 'e%'
OR city LIKE 'i%'
OR city LIKE 'o%'
OR city LIKE 'u%'
-- 모음으로 시작되거나 끝나지 않는 CITY 찾기
SELECT
DISTINCT CITY
FROM STATION
WHERE CITY NOT LIKE 'a%'
AND CITY NOT LIKE 'e%'
AND CITY NOT LIKE 'i%'
AND CITY NOT LIKE 'o%'
AND CITY NOT LIKE 'u%'
AND CITY NOT LIKE '%a'
AND CITY NOT LIKE '%e'
AND CITY NOT LIKE '%i'
AND CITY NOT LIKE '%o'
AND CITY NOT LIKE '%u'
포트폴리오로 Tech 블로그를 활용해 보는게 좋다.
select
count(*) as total,
count(sex) as sex_notnull,
count(*) - count(sex) as sex_null
from penguins
select
min(age) as min_age
, max(age) as max_age
, max(age) - min(age) as age_diff
from records