TIL

[SQL] SELECT, FROM, WHERE

oceanflow 2024. 12. 13. 19:03

1. SQL이란?

SQL은 데이터 베이스와 대화하기 위한 언어이다.

 

2. 데이터 조회

데이터 조회는 SELECT로 하며 FROM은 어떤 테이블에서 조회를 할지 지정한다.

SELECT *
FROM shops

 

여기서 *은 All이라는 의미다.

즉, 모든 컬럼을 가져오라는 의미, shop은 테이블 이름이다.

 

이렇게 되면 shops에 있는 모든 컬럼 (속성) 을 다 조회하게 된다.

 

 

만약 필요한 컬럼(속성)만 가져오고 싶다면 

SELECT shop_name, shop_category
FROM shops

 

shop_name과 shop_category 컬럼(속성)만 조회하게 된다.

 

 

원하는 컬럼을 뽑았지만, 평소 사용하는 명칭과 다를 경우가 있다.

이럴 때는 별명(alias)를 줄 수 있다.

방법은 2가지가 있다.

1 : 컬럼1 as 별명1

2 : 컬럼1 별명1

SELECT shop_name as name, shop_category "카테고리"
FROM shops

shop_name을 name, shop_category를 카테고리 라는 별명을 붙여 주었다.

 

이때, 별명이 영문이나 언더바(_)가 들어갔다면 그대로 별명만 적어주면 되지만

다른 특수문자나 한글이 들어간 별명이라면 쌍따옴표를 붙여줘야 한다.

 

2. WHERE

WHERE 절은 조건을 걸어 필요한 데이터만 조회하는 것이다.

SELECT *
FROM shops
WHERE shops_category = 'computer'

업종(shops_category)이 컴퓨터(computer)인 가게만 조회하게 된다.

 

WHERE 절에 다양하게 필터링 할 수 있는 방법이 있는데

위의 예시 처럼 =을 사용하여 특정할 수도 있고

아니면, BETWEEN, IN, LIKE, 비교연산 등을 활용할 수도 있다.

 

BETWEEN

 A와 B사이값을 가진 데이터를 조회하고 싶다면

BETWEEN A AND B

예를 들어  매출이 10000과 30000 사이인 가게를 조회한다고 해보자

그렇다면

SELECT *
FROM shops
WHERE sales
BETWEEN 10000 AND 30000

이렇게 사용할 수 있다.

 

IN

IN은 몇가지의 값을 포함하는 조건이다.

A와 B, C의 값을 가진 데이터를 조회하고 싶다면

IN (A, B, C)

가게의 년도가 5, 7, 10년인 가게를 찾고 싶다면

SELECT *
FROM shops
WHERE age in (5, 7, 10)

이렇게 사용된다.

* IN에서 조건이 숫자가 아닌 문자라면 작은 따옴표를 써줘야 한다.

 

LIKE

LIKE는 완전히 같지는 않지만 특정 문자나 숫자로 시작한다거나 포함되어있는 데이터를 조회할 수 있다.

기본적으로 LIKE '시작문자%'의 형식이나

                  LIKE '%포함 문자%',

                  LIKE '%끝문자'의 형식을 쓴다.

가게 소유자의 성이 '이'인 가게를 찾고 싶다면

SELECT *
FROM shops
WHERE name LIKE '이%'

이렇게 사용된다.

 

그외에 <, >, <>(같지 않다), <=, >= 등을 사용할 수 있다.

 

여러개의 조건을 걸고 싶다면 조건과 조건 사이에 AND, OR, NOT을 사용하면 된다.

{AND = 그리고, OR = 또는, NOT = 아닌}이다.

'TIL' 카테고리의 다른 글

[SQL] Pivot Table과 윈도우 함수 그리고 값이 없을 때 대처법  (3) 2024.12.25
[SQL] Subquery와 JOIN  (0) 2024.12.24
[SQL] 문자 데이터 변경과 그 활용  (3) 2024.12.24
[SQL] 계산 및 정렬  (0) 2024.12.23
Starter Note  (4) 2024.12.12