데이터베이스

DB-SQL명령어

운동하는 주니어개발자 2023. 4. 27. 17:06

데이터베이스란?

데이터베이스란 구조화된 정보 또는 데이터의 조직화된 모음으로서 일반적으로 컴퓨터 시스템에 전자적으로 저장이 된다. 데이터베이스는 일반적으로 데이터베이스 관리 시스템(DBMS)에 의해 제어되고
이러한 데이터를 정의, 제어, 조작하는 명령어가 존재하는데 이런 명령어를 쉽게 SQL이라고 할 수 있다.

SQL이란?

Structured Query Language의 약자로 데이터를 쿼리, 조작 및 정의하고 액세스 제어를 제공하기 위해 거의 모든 

관계형 데이터베이스에서 사용되는 프로그래밍 언어이다.

그럼 SQL은 왜 필요할까? 

SQL은 CRUD기능 중 하나인 R(Read)를 엄청나게 편하게 만들어 준다. 그리고 데이터를 손쉽고 깔끔하게

정리/분석하는 기능도 지원하기 때문에 원하는 데이터를 빠르게 찾아낼 수 있기에 사용한다.
그러므로 오늘 배울 내용은 데이터베이스에 있는 데이터를 조작할 수 있는 SQL명령어에 대해 공부를 해보았다.

1. show [테이블명]

show명령어는 내가 가져올 데이터를 저장해둔 테이블을 보여주는 명령어이다.

show [테이블명]

2. SELECT [가져올 데이터 필드이름] FROM [테이블명]

데이터베이스에서 데이터를 선택해서 원하는 데이터만 가져오겠다 라는 문법이다.
SELECT 쿼리문은 어떤 테이블에서 어떤 필드의 데이터를 가져올지 작성하는 쿼리문이다.

SELECT [모든데이터] FROM [테이블명]

예를 들면 위의 사진처럼 쿼리문을 작성할 수 있는데 *는 모든 데이터를 가져와 달라는 뜻으로 

쿼리문을 해석해 보면 orders라는 테이블에 있는 모든 데이터를 가져와줘 라는 의미로 해석할 수 있다.
모든 데이터가 아닌 특정 필드만 가져오고 싶을 경우에는 다음과 같이 작성하면 된다.

SELECT [가져올 데이터 필드이름] FROM [테이블명]

쿼리문을 해석해보면 orders 테이블에서 created_at, course_title, payment_method, email필드를 가져와줘 라는

뜻으로 해석할 수 있다. 쿼리문 아래 결과를 확인하면 전체 데이터를 가져온 것과 달리 내가 지정한 필드만 가져와 

출력해주는 것을 확인할 수 있다.

3. SELECT [가져올 데이터 필드이름] FROM [테이블명] WHERE [조건]

Where 절은, Select 쿼리문으로 가져올 데이터에 조건을 걸어주는 것을 의미한다.

SELECT [가져올 데이터 필드이름] FROM [테이블명] WHERE [조건]

쿼리를 해석해 보면 orders 테이블에서 payment_method가 카카오페이인 데이터를 모두 가져와줘

처럼 조건을 걸어주는 것이 WHERE [조건] 쿼리이다. 여러 조건을 걸어주기 위해서는 다음과 같이

and를 적어주면 된다. 여기서 여러조건을 걸어주는 방법은 총 2가지 인데 하나는 and 하나는 or가 있다.

and는 ~~면서 ~~인것을 가져와줘 즉 조건이 둘다 해당되는 것을 가져와달라는 뜻이고

or는 ~~이거나 ~~인것을 가져와줘 즉 조건이 둘중에 하나만 해당되도 가져와달라는 뜻이다.

여러조건을 걸어주는 방법

이 외에도 '같지 않음' 조건, '범위'조건, '포함'조건, '패턴'조건도 존재한다.

우선 '같지 않음' 조건을 먼저 걸어보겠다.

4. 같지 않음 조건( != )

같지 않음 조건은 != 로 걸 수 있다.

!=에서 !는 부정을 의미하고 =는 같음을 의미하니 !=는 같지 않음을 의미한다.

예로는 웹개발 종합반이 아닌 데이터만 가져와달라고 할 때 쿼리문이다. 위와같이 쿼리문을 작성하면

웹개발이 아닌 앱개발 종합반만 출력되는 것을 확인할 수 있다.

5. 범위 조건

범위 조건은 between으로 걸 수 있다. 예시를 보면 다음과 같이 사용할 수있다.

7월 13일, 7월 14일의 주문데이터만 가져와줘 라고 했을 때 쿼리문은 다음과 같이 사용할 수 있다.

결과를 보면 2020년7월13일 부터 2020년7월15일 사이에 있는 데이터를 가져와 주는걸 볼 수 있다.

여기서 주의할 점은 ~~ 부터 ~~사이의 데이터를 가져오기 때문에 13일부터14일까지 데이터를 가져오고 싶다면

13일부터 15일까지로 범위를 지정해 줘야 13일부터 14일까지의 데이터를 가져올 수 있다.

6. 포함 조건

'포함' 조건은 in 으로 걸 수 있다. 예시를 보면 다음과 같이 사용할 수 있다.

1, 3주차 사람들의 '오늘의 다짐' 데이터만 가져와줘 라고 했을 때 다음과 같이 작성하면 된다.

7. 패턴 조건

'패턴' 조건은 like 으로 걸 수 있다. 예시를 보면 다음과 같이 사용할 수 있다.

다음 (daum) 이메일을 사용하는 유저만 가져와줘 라고 했을 때 다음과 같이 작성할 수 있다.

결과를 확인하면 naver 등 다른 이메일 사용자는 나오지 않고 daum 사용자만 가져온걸 확인할 수 있다.

8. 일부 데이터만 가져오기

테이블에 어떤 데이터가 들어있나 잠깐 보려고 들어왔는데 데이터의 양이 엄청 많다면 데이터를 다 불 러오느라 시간이 오래 걸리게 된다. 이런 경우를 대비해 일부 데이터만 가져오는 조건을 사용하면 편리하게 확인할 수있다.

일부 데이터만 가져오는 조건 명령어는 Limit이라는 기능이다.

이 많은 데이터들 중에서 5개의 일부 데이터만 가져오려면 다음과 같이 작성해주면 된다.

19개 이상이 들어있던 데이터를 5개만 가지고 오면서 시간을 절약할 수 있다.

9. 중복 데이터를 제외

고객이 사용한 결제수단이 어떤 종류가 있을지 궁금할때 하나하나 세면서 종류를 찾기 보다는 같은 결제수단은 하나로

중복을 제거한 후 보면 더 편리할 것이다. 이럴 때 사용하는게 중복제거  기능이다. 중복제거 기능은 다음과 같이 사용한다.

결제수단이 속해 있는 테이블인 orders테이블에서 결제수단인 payment_method의 중복을 제거한 데이터를 가져온다.

10. 몇 개인지 숫자 세기

이번에는 orders 테이블에 데이터가 몇 개 들어있는지 셀 때 사용할 수 있는 기능이다.

orders 테이블의 데이터를 모두 불러와서, 한줄한줄씩 세는 것 보다 count 기능을 사용하여 편하게 구할 수 있다.

오늘 공부한 내용은 여기까지 이다. 데이터베이스 자격증인 SQLD를 준비하면서 SQL에 대해 다시 공부를 하고있다.

다음시간에는 더 깊숙한 내용을 다루고 블로그를 작성하겠다.