코린이
article thumbnail
Published 2023. 1. 31. 14:40
SQL / SELECT FROM WHERE 개발/DB

SELECT FROM

 SELECT 는 원하는 데이터를 가져올 때 사용한다!

SELECT * from 테이블명;

 

 * 은 테이블의 모든 데이터들을 보여달라는 뜻이다! 

 

테이블 이름 = USERTBL

 

만약 테이블의 일정 데이터만 뽑아내고 싶다면

 

SELECT USERID, USERNAME, BIRTHYEAR FROM USERTBL;

요렇게 하면 된다. 이러면 USERTBL테이블의 아이디, 이름, 생년만 뽑아낼 수 있게 된다.

만약 아이디로 사람을 찾고싶다면 어떻게 해야할까?

 

SELECT FROM WHERE

 

그럴 때 붙여주는 것이 WHERE 이다. 조건이 달린 데이터를 출력하는 것이다.

 

SELECT
    userid,
    username,
    birthyear    
FROM
    usertbl    
WHERE
    userid = 'KBS';

USERTBL테이블의 USERID 중 'KBS'인 사람의 USERID, USERNAME, BIRTHYEAR을 뽑아내는 것이다. 쉽게 설명하면 

FROM에 있는 WHERE의 SELECT를 뽑아낸다! 라고 생각하면 조금 쉽게 이해가 간다. 

 

WHERE 숫자 비교

그렇다면 숫자에 조건을 거는 것은 어떻게 할까! 나는 키가 180~183의 사람의 이름과 키를 뽑아내고싶다! 그렇다면

 

SELECT USERNAME, HEIGHT -- 이름과 키
FROM USERTBL --USERTBL이라는 테이블에서
WHERE HEIGHT >= 180 AND HEIGHT <= 183; -- 키의 값이 180~183 인 사람

 

키의 값이 180~183인 사람의 이름과 키를 USERTBL에서 출력하도록 하면 된다. 그러면 

 

 

짜잔~ 장신 두 분이 나오게 된다! 숫자같은 경우는 BETWEEN으로도 조건을 주는게 가능한데 

WHERE HEIGHT >= 180 AND HEIGHT <= 183;  이걸 

WHERE HEIGHT BETWEEN 180 AND 183; 이렇게 써도 무방하다!

 

WHERE 문자 비교

이번엔 ADRR이 '서울'인 사람의 이름과 지역을 한 번 추려보겠다. 그럼 SELECT에는 USERNAME, ADRR이 들어갈 것이다. FROM에는 여전히 USERTBL이 들어가야 할 것이고 WHERE에는 어떤 조건이 들어가는지 한 번 보자!

SELECT USERNAME, ADRR, BIRTHYEAR
FROM USERTBL
WHERE ADRR = '서울';

생각보다 간단하지 않은가? 서울과 경북을 뽑고싶으면 어떻게 해야할까? 어떤 방법이 있을까? OR을 쓰면 되지 않을까?! 정답이다!

WHERE ADRR = '서울' OR '경북'; 이렇게 수정하면 되는 것이다! 또 이 것은

WHERE ADRR IN ('서울', '경북'); 으로도 표현이 가능하다. 

 

LIKE

만약 '김'씨를 찾는다면 어떻게 해야 할까? 그럴 때 나오는 것이  LIKE 이다.

SELECT USERNAME, BIRTHYEAR
FROM USERTBL
WHERE USERNAME LIKE '김%';

USERNAME에 김블라블라씨를 찾는다는 뜻이다. %는 0개 이상의 문자를 의미한다.

그럼 '경'이 들어간 사람의 이름과 생년을 뽑고싶다면?

SELECT USERNAME, BIRTHYEAR
FROM USERTBL
WHERE USERNAME LIKE '%경%';

요렇게 쓰면 가능하다! % 말고 '_'(언더바)도 있는데 이 것은 한 글자를 뜻한다.

 

SUBQUERY

조건을 다른 쿼리문과 비교하는 것서브쿼리라 하는데, SUBQUERY 값이 2개 이상이면 오류가 뜨게 되니 잘 생각해서 작성해야 한다. 만약에 내가 '김경호'씨보다 키가 큰 사람들의 이름과 키를 뽑고싶다면

SELECT
    USERNAME
FROM
    USERTBL
WHERE
    height > (
        SELECT
            HEIGHT
        FROM
            USERTBL
        WHERE
            USERNAME = '김경호'
    );

WHERE에 USERTBL의 '김경호'씨의 HIGHT를 조건에 넣어주는 것이다.

김경호씨의 키는 177이니 그보다 큰 저 세 사람이 나오게 된다.

반응형
profile

코린이

@코인아님

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!