<9/23 (금)> - SQL 1
중급이 될 수 있다! 아자
https://www.datarian.io/blog/interview-sqld-certification-cannot-prove-data-analytics-capability
오... 자격증 따위 어필해봤자라네?!
서브쿼리 전까지 알고있으면, 중급
서브쿼리, 윈도우 함수, 숫자~정규표현식
빠삭하게 알고 있어야 코딩 테스트 통과할 수 있음.
드래그+ctrl/command+/ => 주석 처리 (파이썬과 동일)
ctrl/command+enter => 실행 (파이썬과 동일)
사실, 파이썬처럼 공백이나 줄바꿈 같은 문법적인 문제는 SQL 상으로 문제가 안됨
ONLY 가독성 때문에! 다른 사람들과 협업 시 필수
실제로~ sql은 파일을 다운받지 않는 경우가 더 많다! 너무 용량이 커서.
SQL은 대소문자가 구분 됨 (만약 안하고 싶다? 그렇게 세팅할 수도 있음)
따라서, 컬럼명 확실하게 적어줘야 함 (lcd (x), LCD (o))
tab, tab, 띄어쓰기 : 추천 문법!
SELECT ~ AS ~ : 별칭 붙여주기
별칭 안에 띄어쓰기 넣고 싶으면 ‘’ <- 이걸로 감싸줘야, 아니면 언더바 사용
비교 연산자: = > >= < <= != (파이썬이랑 다르다)
AND, OR, IN (행갈이 추천!)
서브쿼리: 쿼리 안의 쿼리 – 길게 늘여쓰는 것 추천
SELECT * FROM station WHERE lat > (SELECT lat FROM station WHERE name = '서울북부지방법원')
ORDER BY 컬럼명 DESC/(ASC): 정렬 (DESC: descending 내림차순, ASC: ascending 오름차순/생략가능)
정렬조건은 순서가 중요하다. 2개 이상이면 하나 정렬, 다음 걸로 같은 것들 안에서 정렬.
우선 순위 하나마다 DESC/ASC 각각 지정해줄 수도 있음
*color = ‘white’ 따옴표도 중요하네… => 연습문제 풀다가 오류남!
<정리>
SELECT name, address — SELECT 절: 특정 열 선택하기
FROM station — FROM 절: 테이블 이름
WHERE local = '광진구' — WHERE 절: 특정 행 선택하기
ORDER BY station_id DESC — ORDER BY 절: 정렬하기 LIMIT
<인프런>
테이블: 컬럼+로우
로우: 데이터 한 개
컬럼: 데이터들의 특성
SELECT+컬럼명: 무엇을 가져올 것인지 (*: 아스타 = 다 가져와주세요)
비교 연산자: 특정 컬럼이 특정 값을 가지는 데이터만 불러오기 위해서 사용
=, <>(같지 않다), >=, <=, >, <
꿀팁
테크 블로그 TIL 정말 중요하다!
우아한 형제들 기술 블로그 (팀에 대한 이야기)
깃허브 블로그, 브런치, 네이버, 노션, 벨로그
노션에 참고 링크 보면서 벨로그 꾸미자
데이터 분석가 이력서
책 데이터베이스 첫걸음 추천!
UPDATE
SET
DELETE
INSERT
VALUES
<데이터 베이스의 기본 기능>
1. 데이터의 수집과 갱신 *** 중요 파트! 이걸 잘하면 된다
데이터 검색: SELECT 질의
데이터 갱신: INSERT 등록, UPDATE 수정, DELETE 갱신
2. 동시성 제어
3. 장애 대응
4. 보안
<데이터 베이스의 종류>
관계형 데이터베이스(주류), NoSQL 데이터베이스, 계층형 데이터베이스
RDBMS(알디비) – relational database EX. MySQL, Oracle, PostgreSQL
<SQL: structured Query Lanauage>
관계형 데이터베이스를 조작하기 위한 언어
*** 오름차순과 내림차순이 헷갈려..
<집계함수> : NULL인 데이터는 제외하고 계산
COUNT(): 행 개수 세기
SELECT day , SUM(total_bill) AS revenue_daily FROM tips WHERE -- WHERE를 쓰고 싶다면 여기에 GROUP BY day HAVING revenue_daily >= 200 ORDER BY revenue_daily DESC LIMIT 1 -- 이 쿼리에서는 굳이 필요하지 않지만, 만약 LIMIT를 쓰고 싶다면 ORDER BY 아래에
<소수점 처리 함수>
CEIL() : 올림
FLOOR() : 내림
ROUND() : 반올림