관리 메뉴

log.Sehee

SQL 1주차 단어/문법 정리 본문

SQL

SQL 1주차 단어/문법 정리

Sehe_e 2023. 2. 23. 19:49

 

 

 

DataBase

: 데이터를 모아놓은 곳, 대부분 CRUD에 해당하는 기능을 지원한다.

 

  • C (Create) : 데이터의 생성
  • R (Read) : 저장된 데이터를 읽는 것
  • U (Update) : 저장된 데이터의 변경
  • D (Delete) : 저장된 데이터의 삭제

 

 

 

SQL = Structured Query Language

 

데이터베이스에 요청을 날려 원하는 데이터를 가져오는 것을 도와주는 언어

Read 기능을 지원해주며 데이터를 정리, 분석하는 기능도 지원한다.

 

데이터를 가져오는 명령어를 작성하는 것을 'SQL 쿼리를 작성한다' 라고 한다.

 

 

 

Select 쿼리문

: 데이터베이스에서 데이터를 선택해서 가져오겠다.

 

1) 어떤 테이블에서

2) 어떤 필드의 데이터를 가져올지

 

select (조회할 데이터의 필드명) from (테이블명)

 

*  :  모든, 전부를 뜻함

 

select * from (테이블명)

=  테이블 속 모든 필드의 데이터를 조회하겠다

 

 

 


- Select 쿼리문의 문법 정리 -

 

 

 

Where

: 가져올 데이터에 조건을 걸어주는

 

 

=

: '같다' 의 조건을 걸 때 사용

 

SELECT * from orders
where payment_method = 'kakaopay'

= orders 테이블에서 payment_method 필드에 있는 'kakaopay'와 일치하는 데이터만 전부 조회하겠다.

+) 문자열은 ' ' 를 붙여야 인식된다

 

 

> 결과값

 


 

And

: 한 개 외 여러 조건을 걸어줄 때

 

SELECT * from orders
where payment_method = 'kakaopay'
and course_title = '앱개발 종합반'

 

> 결과값

 


 

!=

: '같지 않음'의 조건을 걸 때 사용

 

SELECT * from orders
WHERE course_title !='앱개발 종합반'

 

> 결과값

 


 

Between @ and #

: '범위'의 조건을 걸 때 사용, @ and #

 

SELECT * from orders
WHERE created_at between '2020-07-25' and '2020-07-28'

+) 이렇게 입력할 경우 25일 오전 12시 정각부터 27일 23시 59분까지의 데이터를 조회할 수 있다.

 

 

> 결과값

 


 

In (@, #)

: '포함' 조건을 걸 때 사용

 

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

 

> 결과값

 


 

Like

: '패턴' 조건을 걸 때 사용

 

SELECT * from orders
where email like '%gmail.com'

 +) % = 이 기호가 존재하는 위치에 무슨 문자열이 와도 상관없다는 뜻

 

ex) '%a' , 'a%' , '%a%' , '%a%b'        // % 자리에 어떤 문자열이 들어가도 지정문자 위치만 맞다면 조회 대상이 됨

 

 

> 결과값

 

 


- 조건 외 유용한 문법 -

 

 

Limit

: 테이블에 데이터의 양이 너무 많을 때, 일부 데이터만 불러오는 명령

 

SELECT * from orders
limit 5;

 

> 기존

 

> Limit 후

 


 

Distinct

: 중복 데이터는 제외하고 가져오는 명령

 

SELECT distinct(payment_method) from orders

 

> 결과값

 


 

Count

: 데이터의 갯수를 세어주는 명령어 (행의 갯수)

 

SELECT count(*) from orders

 

> 결과값

 


 

+) DistinctCount 같이 써보기

 

 

 - users 테이블에 있는 유저들의 성씨 갯수를 조회하기 -

 

1) 테이블에 있는 유저의 성씨를 중복되지 않게 조회한다.

SELECT DISTINCT(name) from users

 

 

2) distinct(name) 을 count()로 감싸 성씨의 갯수를 조회한다.

SELECT count(DISTINCT(name)) from users

 

 


- 응용하기 -

 

 

 [ = ]

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

 

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

 


 

 [ like, and, between ]

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

 

SELECT * from users
where email like '%gmail.com'
and created_at between '2020-07-12' and '2020-07-14'

 


 

 [ like, and, between, count ]

 - Naver를 사용하는 2020/07/12~13에 가입한 유저의 수를 세기 -

 

SELECT count(*) from users
where email like '%naver.com'
and created_at between '2020-07-12' and '2020-07-14'

 


 

 [ like, and ]

 - Naver 이메일을 사용하면서, 웹개발 종합반을 신청했고 결제는 kakaopay로 이뤄진 주문데이터 추출하기 -  

 

SELECT * from orders
where email like '%naver.com'
and course_title = '웹개발 종합반'
and payment_method = 'kakaopay'

 

 

 

 

Comments