SQL(3) SQL Quiz(1)

이건홍·2023년 1월 29일
0

SQL

목록 보기
3/6

문제풀기[TIP]

  1. show tables;를 사용하여 테이블들을 검색한다.
  2. select문을 사용하여 원하는 정보가 있을 거 같은 테이블을 찾는다.
  3. 테이블을 찾았다면 조건을 걸어줄 필드를 찾아준다.
  4. select문과 where절을 사용하여 문제에서 원하는 값을 구한다.

Q1) 결제수단이 CARD가 아닌 주문데이터만 추출해보기

show tables;

show tables를 사용하여 테이블들을 본다. 문제에서는 주문데이터를 원하므로 orders 테이블을 검색해본다.

select * from orders;

결제수단과 관련된 payment_method 필드를 찾았다. 이제 select문과 where절을 사용하여 문제에서 원하는 값을 구한다.
문제에서 원하는 건 "CARD"가 아닌 주문 데이터이므로 !=를 사용한다.

select * from orders
where payment_method != "CARD";


Q2) 20000~30000 포인트 보유하고 있는 유저만 추출해보기

show tables;

포인트와 관련되어 있어보이는 point_users를 검색한다.

select * from point_users;

포인트와 관련된 point 필드를 찾았다. 이제 select문과 where절을 사용하여 문제에서 원하는 값을 구한다.
문제에서 원하는 건 포인트가 20000~30000인 유저이므로 between을 사용한다.

select * from point_users
where point between 20000 and 30000;


Q3) 이메일이 s로 시작하고 com로 끝나는 유저만 추출해보기

show tables;

유저와 관련되어 있어 보이는 users 테이블을 검색한다.

select * from users;

이메일과 관련된 email 필드르 찾았다. 이제 select문과 where절을 사용하여 문제에서 원하는 값을 구한다.
문제에서 원하는건 이메일이 s로 시작하고 com로 끝나는 유저이므로 like를 사용한다.

select * from users
where email like "s%.com";


Q4) 이메일이 s로 시작하고 com로 끝나면서 성이 이씨인 유저만 추출해보기

위 문제와 비슷하므로 이어서 시작...

조건이 두 개이므로 and를 사용해서 두 개의 조건을 걸어준다.

select * from users
where email like "s%.com" and name="이**";


Q5) 성이 남씨인 유저의 이메일만 추출하기

show tables;

유저와 관련되어 있어 보이는 users 테이블을 검색한다.

select * from users;

이름과 관련된 name 필드르 찾았다. 이제 select문과 where절을 사용하여 문제에서 원하는 값을 구한다.
문제에서 원하는건 성이 남씨인 유저의 이메일이므로 코드는 다음과 같다.

select email from users
where name="남**"


Q6) Gmail을 사용하는 2020/07/12~13에 가입한 유저를 추출하기

show tables;

유저와 관련되어 있어 보이는 users 테이블을 검색한다.

select * from users;

이메일과 관련된 email 필드와 가입 날짜와 관련된 created_at 찾았다. 이제 select문과
where절을 사용하여 문제에서 원하는 값을 구한다.

문제에서 원하는건 Gmail을 사용하는 2020/07/12~13에 가입한 유저이다.
더욱 간단하게 말해서 이메일이 gmail.com으로 끝나는 유저를 찾으므로 like
2020/07/12 ~ 2020/07/13에 가입한 유처를 찾으므로 between을 써준다.

select * from users
where email like "%@gmail.com"
and created_at between "2020-07-12" and "2020-07-14";


Q7) Gmail을 사용하는 2020/07/12~13에 가입한 유저의 수를 세기

위 문제와 비슷하므로 이어서 시작...

유저의 수를 세는 것이므로 count를 사용한다.

select count(*) from users
where email like "%@gmail.com"
and created_at between "2020-07-12" and "2020-07-14";

0개의 댓글