SQL (14) 썸네일형 리스트형 [패스트캠퍼스] SQL 강의 : SQL 공부하기 좋은 사이트 HackerRank & SQL로 시작하는 데이터 분석 첫걸음 후기 SQL 외에 다양한 프로그래밍 언어들을 공부하기 좋은 사이트 HackerRank HackerRank HackerRank is the market-leading technical assessment and remote interview solution for hiring developers. Learn how to hire technical talent from anywhere! www.hackerrank.com 회원가입을 하고 로그인을 한 후 SQL을 클릭한다 모두 영어로 되어있어서 안타깝지만 어쩔 수 없다... 문제를 선택해서 풀어볼 수 있고 문제의 아래는 쿼리의 정답이 나와있다 문제의 수준도 정할 수 있으니, 해커랭크를 통해 SQL 공부를 더 꾸준히 할 수 있다 문제가 나온다 영어로....난감하지만 .. [패스트캠퍼스] SQL 강의 : 유저별 세그먼트별, 매출 관련 분석 유저 세그먼트별 분석 1. 전체 유저의 Demographic 알고 싶어요. 성/연령별 유저 숫자를 알려주세요. 어느 세그먼트가 가장 숫자가 많나요? 참고로 기타 성별은 하나로, 연령은 5세 단위로 적당히 묶어주시고 유저 수가 높은 순서대로 보여주세요. *성별 유저 숫자 쿼리 select gender, count(*) from fastcampus.tbl_customer group by 1 *성별에 null 값이 있을 때 null 값은 others 로 표현하는 쿼리 select case when gender is null then 'Others' else gender end as gender , count(*) from fastcampus.tbl_customer group by 1 *이렇게 했음에도 data.. [패스트캠퍼스] SQL 강의 : 날짜를 응용하여 active user 및 revenue 구하기 1. 2020년 7월의 총 Revenue를 구해주세요 where 절에 날짜를 넣어 필터 가능 집계함수 sum 사용하였으나 따로 그룹함수 지정하지는 않음 Select sum(price) from fastcampus.tbl_purchase WHERE purchased_at >= '2020-07-01' AND purchased_at < '2020-08-01'; 2. 2020년 7월의 MAU를 구해주세요 Monthly Active User 이해, 방문기록을 기반으로 MAU 구하기 집계함수 COUNT 사용 3가지 예시 1. COUNT * : 모든 테이블에 있는 모든 레코드 조회 2. COUNT(컬럼이름) : 컬럼이름에 있는 모든 레코드 조회, null 값 제외 3. COUNT(DISTINT 컬럼이름) : 컬럼이름.. [패스트캠퍼스] SQL 강의 : 데이터 삭제, 수정(DELETE, UPDATE)/ 제약 조건(CONSTRAINTS)/ 권한과 DCL(GRANT, REBOKE)/ 트랜잭션과 TCL(COMMIT, ROLLBACK, SAVEPOINT) 데이터 삭제하기 DELETE 1. 쿼리문법 DELETE FROM [테이블 이름] WHERE 조건식; 2.DELETE 예제 DELETE FROM mypokemon WHERE attack > 50; 데이터 수정하기 UPDATE, SET 1. 쿼리문법 UPDATE [테이블 이름] SET [컬럼이름] = [새 값] WHERE 조건식; 2. UPDATE/ SET 예제 UPDATE mypokemon SET type = 'normal' WHERE name = 'chikorita' 제약조건 데이터를 입력할 때 실행되는 데이터 입력 규칙 테이블을 만들거나 변경하면서 설정한다 → CREATE TABLE 및 ALTER TABLE 구문 사용 가능 제약 의미 NOT NULL 이 컬럼에는 NULL값을 저장할 수 없다 UNIQUE.. [패스트캠퍼스] SQL 강의 : 조건에 조건 더하기, 서브쿼리 사용하기 *서브쿼리 특징 쿼리(SELECT/ FROM/ WHERE/ GROUP BY/ HAVING/ ODER BY) 안에 서브쿼리를 사용하여 조건에 조건을 더하는 것이 가능하다 쿼리문의 핵심키워드 6가지 중 GROUB BY 제외 서브쿼리 사용 가능 서브쿼리는 하나의 쿼리 내에 포함된 또 하나의 쿼리를 의미 서브 쿼리는 반드시 괄호 안에 있어야 한다 INSERT, UPDATE, DELETE 문에서도 사용 가능 서브쿼리에는 ;(세미콜론) 붙이지 않아도 됨 SELECT 절의 서브쿼리 스칼라 서브쿼리라고도 한다 SELECT절의 서브 쿼리의 결과 값은 반드시 하나여야 한다 *SELECT 절의 서브 쿼리 SLECT [컬럼이름], (SELECT [컬럼이름], FROM [테이블이름], WHERE 조건식) FROM [테이블이름].. [패스트캠퍼스] SQL 강의 : 테이블 집합 연산(여러 테이블 한번에 다루기) 데이터 더하기(합집합) UNION, ALL UNION 1. UNION / UNION ALL (합집합) [쿼리A] UNION [쿼리B] 또는 [쿼리A] UNION ALL [쿼리B] 형식으로 사용 [쿼리A와 [쿼리B]의 결과의 값의 합을 보여 준다 UNION은 동일한 값을 제외하고 보여주고, UNION ALL은 동일값도 포함하여 보여준다 [쿼리A]와 [쿼리B] 결과 값의 개수가 같아야 한다. 만약, 다를 경우 에러 발생 ODER BY는 쿼리 가장 마지막에 작성하고 [쿼리A]에서 가져온 컬럼으로만 가능 *UNION 쿼리문법 SELECT [컬럼이름] FROM [테이블A이름] UNION SELECT [컬럼이름] FROM [테이블B이름]; *UNION ALL 쿼리문법 SELECT [컬럼이름] FROM [테이블A이름.. [패스트캠퍼스] SQL 강의 : 테이블 합치기, JOIN 함수 테이블 합치기 JOIN 같은 의미를 가지는 컬럼 값을 기준으로 테이블을 합친다 1. INNER JOIN 기본 JOIN 으로 JOIN만 입력하면 INNER JOIN으로 인식된다 두 테이블 모두에 있는 값만 합친다 *쿼리문법 SELECT [컬럼이름] FROM [테이블 A이름] INNER JOIN [테이블 B이름] ON [테이블 A이름]. [컬럼 A이름] = [테이블 B이름]. [컬럼 B이름] WHERE 조건식; *INNER JOIN 예제 SELECT * FROM mypokemon INNER JOIN ability ON mypokemon.number = ablility.number; 2. LEFT JOIN 왼쪽 테이블에 있는 값만 합치기 *쿼리문법 SELECT [컬럼이름] FROM [테이블 A이름] LEFT .. [패스트캠퍼스] SQL 강의 : 그룹함수 조건만들기/ 함수만들기 조건 만들기 IF IF(조건식, 참일때 값, 거짓일때 값) 형식 사용 주로 SELECT 절에서 사용하는 함수로 결과 값을 새로운 함수로 반환 1. 예제문제 SELECT name, IF(attack>=60, 'strong', 'week') AS attack_class FROM pokemon.mypokemon; IF NULL *IS NULL : 데이터가 NULL인지 아닌지 확인하는 연산자 데이터가 NULL인지 아닌지 확인하여 NULL이라면 새로운 값을 반환하는 함수 IFNULL([컬럼이름], NULL일때 값) 형식 사용 해당 컬럼의 값이 NULL인 로우에서 NULL일때 값을 반환 주로 SELECT절에서 사용하는 함수로 결과 값을 새로운 컬럼으로 반환 1. 예제 SELECT name, IFNULL(name, .. 이전 1 2 다음