데이터베이스/MySQL

[MySQL] SELECT ~ FROM ~ WHERE

ReBugs 2023. 3. 8.

이 글은 혼자 공부하는 SQL(저자 : 우재남)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다.


member 테이블

 

buy 테이블

 


 

USE문

USE market_db;

market_db 데이터 베이스를 사용(선택)하겠다는 뜻

 


 

기본적인 SELECT ~ FROM ~ WHERE문

SELECT * FROM member WHERE mem_name = '블랙핑크';

 

mem_name이 블랙핑크인 결과만 추출

 


SELECT * FROM member WHERE mem_number = 4;

 

mem_number가 4인 결과만 추출

 

 


 

관계 연산자, 논리 연산자의 사용

관계 연산자

SELECT mem_id, mem_name FROM member WHERE height <= 162;

 

키가 162 이하인 mem_id와 mem_name을 추출

 


논리 연산자

SELECT mem_name, height, mem_number FROM member WHERE height >= 165 AND mem_number > 6;

SELECT mem_name, height, mem_number FROM member WHERE height >= 165 OR mem_number > 6;

 


 

BETWEEN ~ AND

SELECT mem_name, height FROM member WHERE height >= 163 AND height <= 165;

 

위 코드와 아래의 코드는 같은 뜻이다.

 

SELECT mem_name, height FROM member WHERE height BETWEEN 163 AND 165;

 

163과 165사이의 height과 mem_name 데이터를 추출하라는 뜻이다.

 

 


 

IN()

SELECT mem_name, addr FROM member WHERE addr = '경기' OR addr = '전남' OR addr = '경남';

 

위 코드는 아래 코드와 같다.

 

SELECT mem_name, addr FROM member WHERE addr IN('경기', '전남', '경남');

조건식에서 여러 문자 중 하나에 포함되는지 비교할 때는 IN()이 간결하다.

 


 

LIKE(문자열의 일부 글자 검색)

문자열의 일부 글자를 검색하려면 LIKE를 사용한다.

SELECT * FROM member WHERE mem_name LIKE '우%';

 

mem_name이 '우'로 시작되긴 하는데 정확히 기억 안 난다면 위와 같이 작성하면 된다.

 


언더바(_)

SELECT * FROM member WHERE mem_name LIKE '__핑크';

 

위처럼 언더바를 두 개 사용하면 앞 두 글자는 상관하지 않고 검색하게 된다.

 

 


 

서브 쿼리

SELECT 안에 또 다른 SELECT가 들어갈 수 있다. 이것을 서브 쿼리 또는 하위 쿼리라고 부른다.

mem_name이 에이핑크인 회원의 평균 height보다 큰 데이터를 검색하고 싶다고 가정하면

SELECT * FROM member WHERE height > (SELECT height FROM member WHERE mem_name = '에이핑크');

위와 같이 에이핑크의 평균 height인 164보다 높은 데이터를 추출할 수 있다.

 

댓글