SQL (8) 썸네일형 리스트형 실전에서 유용한 SQL 문법 (문자열, Case) 1. 문자열 데이터 다뤄보기 👉 실제 업무에서는, 문자열 데이터를 원하는 형태로 한번 정리해야 하는 경우가 많습니다. 👉 이메일 주소에서 @앞의 아이디만 가져오거나, @뒤의 이메일 도메인을 가져오고 싶어요!SUBSTRING_INDEX 라는 문법을 사용select user_id, email, SUBSTRING_INDEX(email, '@', 1) from users 👉 @를 기준으로 텍스트를 쪼개고, 그 중 첫 번째 조각을 가져오라는 뜻! (1) 이메일에서 이메일 도메인만 가져와보기select user_id, email, SUBSTRING_INDEX(email, '@', -1) from users 👉 @를 기준으로 텍스트를 쪼개고, 그 중 마지막 조각을 가져오라는 뜻! (-1) 2. 문자.. with 절로 더 깔끔하게 쿼리문을 정리하기 select c.title, a.cnt_checkins, b.cnt_total, (a.cnt_checkins/b.cnt_total) as ratiofrom( select course_id, count(distinct(user_id)) as cnt_checkins from checkins group by course_id) ainner join( select course_id, count(*) as cnt_total from orders group by course_id ) b on a.course_id = b.course_idinner join courses c on a.course_id = c.course_id이렇게 계속 서브쿼리가 붙으면, inner join 안쪽이 너.. Subquery: 원하는 데이터를 더 쉽게 얻어보기 👉 Subquery란? 쿼리 안의 쿼리라는 의미로, 하위 쿼리의 결과를 상위 쿼리에서 사용하면, SQL 쿼리가 훨씬 간단해져요!즉, Subquery를 사용하지 않아도 원하는 데이터를 얻어낼 수 있겠지만, 더 편하고 간단하게 원하는 데이터를 얻기 위해 사용되는 파워풀한 기능입니다. 자주 쓰이는 Subquery 유형 알아보기 1. Where 에 들어가는 Subquery👉 Where은 조건문이죠? Subquery의 결과를 조건에 활용하는 방식으로 유용하게 사용합니다.where 필드명 in (subquery) 이런 방식으로요!예를 들면, 카카오페이로 결제한 주문건 유저들만, 유저 테이블에서 출력해주고 싶을 때는 아래와 같이 표현할 수 있겠죠.select * from users uwhere u.user_id.. 결과물 합치기! Union Select를 두 번 할 게 아니라, 한번에 모아서 보고싶은 경우, 있을걸요!👉 근데, 그러려면 한 가지 조건이 있어요! 노란색과 파란색 박스의 필드명이 같아야 한답니다. 🙂 (당연하겠죠?)(select '7월' as month, c.title, c2.week, count(*) as cnt from checkins c2inner join courses c on c2.course_id = c.course_idinner join orders o on o.user_id = c2.user_idwhere o.created_at group by c2.course_id, c2.week order by c2.course_id, c2.week)union all(select '8월' as month, c.title,.. Join: 여러 정보를 한 눈에 보고 싶다면 Join 이란?👉 Join이란? 두 테이블의 공통된 정보 (key값)를 기준으로 테이블을 연결해서 한 테이블처럼 보는 것을 의미해요.예) user_id 필드를 기준으로 users 테이블과 orders 테이블을 연결해서 한 눈에 보고 싶어요! 👉 위의 예시와 같이, 두 테이블의 정보를 연결해서 함께 보고싶을 때가 있겠죠?그럴 때를 대비해서 무언가 연결된 정보가 있을 때, user_id 처럼 동일한 이름과 정보가 담긴 필드를 두 테이블에 똑같이 담아놓는답니다. 이런 필드를 두 테이블을 연결시켜주는 열쇠라는 의미로 'key'라고 불러요. 👉SQL의 Join은 엑셀의 vlookup과 동일하다고 생각하시면 됩니다 :-) Join의 종류 1. Left Join한 쪽에는 있는데 한 쪽에는 없는 데이터 통계시에 .. 별칭 기능: Alias 👉 쿼리가 점점 길어지면서 종종 헷갈리는 일이 생길 수 있습니다. 그래서 SQL은 Alias라는 별칭 기능을 지원합니다. select * from orders owhere o.course_title = '앱개발 종합반' select payment_method, count(*) as cnt from orders owhere o.course_title = '앱개발 종합반'group by payment_method 출력될 필드에 별칭을 붙이는 것도 가능해요! 그럼 아래와 같이 출력됩니다. count(*)가 아니라 cnt로 출력되었네요! 👉 이처럼, 혼동을 최소화하고 원하는 이름으로 결과를 출력하기 위해 사용. [SQL] 통계 구하기 (group by, order by) 동일한 범주의 데이터를 묶어주는 Group by👉 Group by란?동일한 범주를 갖는 데이터를 하나로 묶어서, 범주별 통계를 내주는 것을 의미해요. Group by를 이용하면1) 같은 성씨의 데이터를 하나로 묶고select name, count(*) from usersgroup by name;from users: users 테이블에서 데이터를 불러옵니다group by name: name이라는 필드에서 동일한 값을 갖는 데이터를 하나로 합쳐줍니다select name, count(): 이름과 count()를 출력해 주는데, 여기서 count(*)는 group by로 합쳐진 데이터의 개수를 세어주는 것입니다! 2) 각 성씨의 회원수를 구할 수 있어요. 1. 동일한 범주에서의 최솟값 구하기 👉 동일한 범주.. [SQL] Select, Where 문법 SQL과 친해지기 1일차스파르타코딩클럽으로 교육을 진행하고 있다.너무너무 재미있고 쉽게 수업을 해주셔서 재미가 붙었다.나도 SQL입문자 Where 절의 개념👉 Where 절은, Select 쿼리문으로 가져올 데이터에 조건을 걸어주는 것을 의미.예1) orders 테이블에서 결제수단이 카카오페이인 데이터만 가져와줘!예2) point_users 테이블에서 포인트가 5000점 이상인 데이터만 가져와줘!예3) orders 테이블에서 주문한 강의가 앱개발 종합반이면서, 결제수단이 카드인 데이터만 가져와줘! [꿀팁🍯] 이렇게 쿼리를 작성하면 편해요!1) show tables로 어떤 테이블이 있는지 살펴보기 2) 제일 원하는 정보가 있을 것 같은 테이블에 select * from 테이블명 쿼리 날려보기3) 원하.. 이전 1 다음