걷기 시작한 Coding Novice

SQL

Select 쿼리문

Spell 2022. 5. 3. 17:44

데이터 베이스에서 어떤 필드의 데이터를 가져오냐가 핵심이다.

실습은 스파르타코딩클럽에서 제공해주는 실습용 데이터베이스를 활용한다.

(그러므로 나와있는 데이터는 실제 존재하는 값이 아니고 실습을 위해 만들어진 데이터이다)

 

  • 테이블?

아래의 사진은 orders 테이블이라고 한다.

Orders 테이블의 예시

필드는 order_no / created_at 등등 이다.

order_no, created_at, course_title, user_id, payment_method, email 이라는 필드가 있다

 

  • 앞으로 사용할 스파르타 데이터베이스 살펴보기

- checkins: 강의실 들어오며 남기는 '오늘의 다짐'이 들어있다

- courses: 스파르타의 개설 강좌 정보가 들어있다

- enrolleds: 유저별 강좌 등록정보가 들어있다

- enrolleds_detail: 유저별 들을 수 있는 영상과, 들었는지 여부가 들어있다

- orders: 주문 (수강등록) 정보가 들어있다

- point_users: 유저별 포인트 점수가 들어있다

- users: 유저 정보가 들어있다

 

show table;

선택한 데이터베이스안에 있는 테이블을 보여달라

 

select * from orders;

orders 테이블에서 모든 필드의 데이터를 가져와라

( '*' 은 포든 필드를 나타낸다 )

 

select created_at, course_title, payment_method, email from orders;

orders 테이블에서 created_at, course_title, payment_method, email 필드의 데이터를 가져와라


  • Select, Where 절 등 문법 연습해보기
select * from orders where payment_method = 'kakaopay'

orders 테이블에서 결제수단이 'kakaopay'인 데이터만 가져와라

(데이터 값을 특정지을때 작은 따옴표'' 를 꼭 붙여주어야 한다)

(문자열이기 때문에 숫자에는 사용하지 않는다)

SQL문은 길어지고 방대해지면 아주 헷갈린다. 그래서 줄을 잘 맞춰서 적어줘야 하는데, 프로젝트마다 규칙이 있을 것이지만 가장 중요한건 "잘 보이게" 이다.

 

select * from orders
where payment_method = 'kakaopay'

이렇게 줄을 나눠서 좀 더 보기 슆게 표현하면 구분하기 좋다.

 

select * from point_users
where point >= 5000

point_users 테이블에서 포인트가 5000점 이상인 데이터만 가져와라

(이상, 이하, 초과, 미만 등은 부등호를 사용한다)

 

select * from orders
where course_title = '앱개발 종합반' and payment_method = 'CARD'

orders 테이블에서 주문한 강의(course_title)가 '앱개발 종합반'이면서, 결제 수단이 'CARD'인 데이터만 가져와라

(또는 이라는 명령어는 'and' 대신에 'or'를 사용하면 된다)

(여기서 CARD는 소문자여도 상관없지만, 가시성이 좋아야 하며 통일성이 있으면 좋기 때문에 같은 값의 모양으로 적어주는것이 좋다)

해당 사진처럼 payment_method 필드의 값 중 카드는 CARD로 대문자로 나와 있다

 

 

select * from point_users
where point > 20000

포인트가 2만점보다 많은 유저만 뽑아보기

 

select * from users
where name = '황**'

성이 황씨인 유저만 뽑아보기

실제 useres 테이블에 가보면 '김**' '이**' 라고 나와있으니 '황**'으로 값을 넣어주면 된다

 

select * from orders
where course_title = '웹개발 종합반' and payment_method = 'CARD'

'웹개발 종합반'이면서 결제수단이 'CARD'인 주문건만 뽑아보기

 

Tip

1. show tables로 어떤 테이블이 있는지 확인

2. select * from 테이블명 쿼리를 확인해보기

3. 원하는 정보가 없으면 다른 테이블도 확인

4. 찾았다면, 조건을 걸 필드명과 값을 확인해서 찾고

5. select * from 테이블명 where 조건 으로 쿼리 완성하기