show tables;
*은 모든 것을 뜻함, 즉 users 테이블에 있는 모든 필드의 데이터를 검색하라는 뜻select * from users;
특정 필드를 검색 할 때는 필드의 이름을 직접 써준다.
select created_at, updated_at, name from users;
select * from orders
where payment_method = "kakaopay";
payment_method 필드의 값이 "kakaopay"인 데이터만 검색한다는 뜻
select * from orders
where course_title = "앱개발 종합반" and payment_method = "kakaopay";
course_title 필드의 값이 "앱개발 종합반"이면서 payment_method 필드의 값이 "kakaopay"인 데이터를 검색한다는 뜻
select * from orders
where course_title = "웹개발 종합반" or payment_method = "CARD";
course_title 필드의 값이 "웹개발 종합반"이거나 payment_method 필드의 값이 "kakaopay"인 데이터를 검색한다는 뜻
select * from orders
where course_title != "웹개발 종합반";
!는 부정을 뜻함, 즉 ! 같지 않음을 뜻함, 그러므로 course_title필드의 값이 "웹개발 종합반"이 아닌 데이터를 검색한다는 뜻
select * from orders
where created_at between "2020-07-13" and "2020-07-15";
created_at 필드의 값이 2020-07-13에서 2020-07-15안에 있는 데이터들을 검색한다.
select * from checkins
where week in (1, 3);
week 필드의 값이 "1"과 "3"인 데이터를 검색한다는 뜻
select * from users
where email like "%@daum.net";
%는 모든 문자을 뜻함, 즉 email 필드의 값이 "@daum.net"으로 끝나는 데이터를 찾는다
이밖의 표현들
%: 모든 문자, 어떤 문자, 문자열이 와도 상관 없음
ex1) where email like "%@daum.net"
@daum.net으로 끝나는 값
=> test@daum.net
ex2) where email like "@daum%.net"
@daum으로 시작하고 .net으로 끝나는 값
=> @daumtest.net
ex3) where email like "@daum.net%"
@daum.net으로 시작하는 값
=> @daum.nettest
_ : 한글자, 무조건 한글자만 와야됨
ex1) where email like "_@daum.net"
한 문자로 시작하고 @daum.net으로 끝나는 값
=> t@daum.net
ex2) where email like "@daum_.net"
@daum으로 시작하고 중간에 한 문자가 있고 .net으로 끝나는 값
=> @daumt.net
ex3) where email like "@daum.net_"
@daum.net으로 시작하고 한 문자로 끝나는 값
=> @daum.nett
select * from orders
where payment_method = "kakaopay"
limit 5;
너무 많은 데이터가 나올 경우 limit를 사용하여 검색되는 데이터의 수를 줄여줄 수 있음
select distinct(payment_method) from orders;
select count(*) from orders;
스파르타 회원 분들의 성(family name)씨가 몇개인지 궁금하다면?
users 테이블에서 name 필드가 성씨에 해당한다. 성씨가 몇 개인지 구하기 전 distinct를 사용하여 중복을 제거해준다.
select distinct(name) from users
중복을 제거했으므로, count를 사용하여 개수를 구해준다.
select count(distinct(name)) from users;
select * from point_users
where point > 20000;
문제에서 포인트, 즉 point 필드의 값이 20000보다 많은 유저를 원하므로 코드는 위와 같이 된다.
이 밖의 표현들
point > 20000
포인트가 20000보다 큼
point < 20000
포인트가 20000보다 작음
point = 20000
포인트는 20000
point >= 20000
포인트가 20000이상
point <= 20000
포인트가 20000이하
select * from users
where name = "황**";
문제에서 성이 황씨인 유저, 즉 name필드의 값이 "황**"인 유저를 찾으므로 코드는 위와 같이 된다.
select * from orders
where course_title = "웹개발 종합반" and payment_method = "CARD";