스파르타_SQL_개발일지

SQL 명령어 - 조건절(between/in (0,0)/like), 개수(count), 중복제거(distinct), 제한(limit)

천재메기 2023. 2. 8. 13:26

# 조건절 기본구조 : where절

예제 : 주문 내역에서 코스 이름이 웹개발 종합반인 것만 찾아라!

select * from orders
where course_title != "웹개발 종합반";

# 범위 조건 걸어보기 : where 열이름(헤더) between '값(날짜, 숫자)' and '값(날짜, 숫자)'

예제 : 주문내역에서 주문 생성일이 2020년 7월 13일에서 15일 사이에 있는 것을 찾아내라!

select * from orders
where created_at between "2020-07-13" and "2020-07-15";

# 포함 조건 걸어보기 : where 열이름(헤더) in (숫자,숫자,숫자...)

예제 : 체크인했던 주차가 1주차 3주차인 것만 찾아보자!

select * from checkins where week in (1,3)

# 패턴 조건 걸어보기 : where 열이름 like '%~~'

예제 : 유저 중에서 다음 이메일을 가진 유저들만 찾아봐라! 

select * from users where email like '%daum.net';
  • 'A%' : A로 시작하는 문자열이 담긴 데이터를 찾을 때 사용한다.
  • '%B' : 뒷부분이 B로 끝나는 문자열이 담긴 데이터를 찾을 때 사용한다.
  • 'A%B' : A로 시작하여 B로 끝나는 문자열이 담긴 데이터를 찾을 때 쓴다.
    예) 'a%t' -> apple@daum.net , a123@daum.net 이렇게 중간이 뭐가 됐든 a로 시작하여 t로 끝나는 것만 찾아준다.

퀴즈 !!

//1번
SELECT * FROM orders WHERE payment_method != 'card';

//2번
SELECT * FROM point_users WHERE `point` BETWEEN 20000 and 30000;

//3번
SELECT * FROM users WHERE email LIKE 's%com';

//4번
SELECT * FROM users WHERE email like 's%com' and name LIKE '이%';

# 개수 제한 : limit 숫자 

예 : 주문내역에서 결제수단이 카카오페이인것 5개만 보여줘!

SELECT * FROM orders 
where payment_method = 'kakaopay'
LIMIT 5;
  • 다 불러오면 속도가 너무 느려지니까 개수 제한해서 확인할 때 많이 쓴다.

 

# 중복 제거하고 보기 : distinct(열이름)

예: 주문내역에서 결제수단 뭐있나 중복제거하고 보여줘!

SELECT DISTINCT (payment_method) from orders;

 

# 몇 개인지 개수 세기 : Count(*)

예 : (1) 전체가 몇개일까? (2) 결제수단이 kakaopay인 건 몇개일까?

select count(*) from orders;

select count(*) from orders 
where payment_method = 'kakaopay';

# 중복제거한 후 개수세기

SELECT count(DISTINCT(name)) FROM users;