SQL 7

SQL DATEDIFF( ) / TIMESTAMPDIFF( ) / case when then else end

DATEDIFF( ) 👉 차이 구하는 애 👉 datediff( '시작' , '끝') 👉 "시작" 에서 "끝" 을 뺀 select * from enrolleds_detail ed where week = 1 and seen = true and done = true and datediff(done_date , seen_date) > 0 TIMESTAMPDIFF( ) 👉 차이 구하는 애. 차이를 구할 단위 지정 가능 👉 timestampdiff(단위, '시작', '끝') 👉 "끝" 에서 "시작" 을 뺀 select timestampdiff(second, seen_date, done_date) From enrolleds_detail ed where done = true and seen = true and time..

SQL 2023.09.24

SQL Subquery / with table1 as / distinct

Subquery 👉 쿼리문 안에 또다른 쿼리문을 작성하는 것. 👉 where절, from 절, select 절 에서 이용. where 절에서 사용한 Subquery in 👉 Subquery의 결과를 조건에 활용 👉 where 필드명 in (subquery) 👉 where 필드명 이 (서브쿼리) 에 해당할 때~~ 이런말. = 기호 아니고 in 써야함! select user_id, name, email from users where user_id in ( select user_id from orders where payment_method = 'kakaopay' ) ❗️ Query 👉 users 테이블 에서, user_id와, name을 가지고 오는데, ❗️ Subquery 👉 orders 테이블에서 pay..

SQL 2023.09.24

SQL 테이블 붙이기 inner join / left join / NULL

join 👉 서로 다른 2개의 테이블 붙여서 하나의 테이블 처럼 보는거. 👉 붙이려는 각각의 테이블에 공통 정보를 기준으로 연결한다. 👉 Join의 종류가 많음. 👉 Inner Join / Left Join / Right Outer Join / Full Outer Join / Cross Join / Self Join Inner Join 👉 두 테이블 모두 가지고 있는 데이터만 보여준다. 👉 한마디로 교집합. select * from users u inner join point_users p on u.user_id = p.user_id on 을 이용해서 join한다. 👉 공통된 정보를 기준으로 붙여야 하니까 두 테이블 모두 가지고 있는 정보인 user_id를 기준으로 붙인거. 👉 끝에 u, p 이런거는 a..

SQL 2023.09.23

sql 기초 + group by / order by / where 중복

limit 숫자 👉 테이블에서 데이터 '숫자' 개수 만큼만 잘라서 보여줘. select * from checkins limit 5 max(필드명) / min(필드명) 👉 최댓값 구하기 / 최솟값 구하기. select week, min(likes) from checkins group by week avg(필드명) 👉 평균 구하기. select week,avg(likes) from checkins group by week round( , 숫자) 👉 소숫점 "숫자" 자리 까지만 나오게 반올림 해줘 예 ) round 괄호 끝에 적힌 숫자가 2라면, 소숫점 2째 자리 까지만 나오게 해줘. select week, round(avg(likes),3) from checkins group by week count(필드명..

SQL 2023.09.23

SQL limit / distinct / count

limit 데이터들을 보고싶은데 양이 너무 방대하고 많을때, 몇개만 보여줘~~ 라는 명령어 select * from orders where payment_method = 'kakaopay' limit 7 distinct( ) 데이터가 중복되지 않은 애들만 보여줘 distinct( 가져오고 싶은 필드이름) ___ select 문에 써야함. select distinct(payment_method) from orders count ( ) 데이터 몇개인지 궁금할때. 예시) orders 라는 테이블의 데이터들이 몇개나 들어가 있을까? select count(*) from orders 예시) orders 라는 테이블에서 payment_method 가 kakaopay 로 되어있는것의 개수는? select count(..

SQL 2023.09.20

SQL where/ between and / like '%' / in() / != 이거 제외하고 보여줘

select 쿼리문 어떤 테이블 에서 어떤 필드의 데이터를 가져오는가. 테이블 ___ orders 필드 ___ order_no, created_at, course_title, user_id, payment_method, email 각각이 필드 show tables show Tables라는 폴더 안에 들어있는 테이블들을 다 보여준다. 실행하기 control(^) + Enter 데이터 베이스에서 특정 테이블 가져오기 select * from orders orders 테이블 전부(*) 가져와줘. select payment_method from orders orders 테이블 에서 payment_method 라는 필드만 가져와줘 select order_no, created_at, user_id, email fr..

SQL 2023.09.20

SQL 프로그래머스

문제 설명 다음은 어느 의류 쇼핑몰에 가입한 회원 정보를 담은 USER_INFO 테이블입니다. USER_INFO 테이블은 아래와 같은 구조로 되어있으며 USER_ID, GENDER, AGE, JOINED는 각각 회원 ID, 성별, 나이, 가입일을 나타냅니다. Column name Type Nullable USER_ID INTEGER FALSE GENDER TINYINT(1) TRUE AGE INTEGER TRUE JOINED DATE FALSE GENDER 컬럼은 비어있거나 0 또는 1의 값을 가지며 0인 경우 남자를, 1인 경우는 여자를 나타냅니다. 문제 USER_INFO 테이블에서 2021년에 가입한 회원 중 나이가 20세 이상 29세 이하인 회원이 몇 명인지 출력하는 SQL문을 작성해주세요. sel..

SQL 2023.06.04