[DB] SELECT

선형채·2022년 6월 16일
0

DB

목록 보기
2/2
post-thumbnail

SELECT란?

  • 데이터베이스(DB) 테이블의 데이터를 읽어 출력하는데, 이 동작을 조회라고 한다. 테이블을 조회하는 것은 가장 기본적인 동작이며, SELECT 문은 모든 SQL 명령 중 사용 빈도가 압도적으로 가장 높음.

기본형태

-- 테이블에서 필드목록 조회

SELECT 필드목록 FROM 테이블;

예시

-- HUMAN라는 테이블에서 모든 필드(*) 조회
SELECT * FROM HUMAN;
 
-- HUMAN라는 테이블에서 name, age 컬럼 조회
SELECT name, age FROM HUMAN;

WHERE (조건문)

기본 형태

-- 테이블에서 조건에 맞는 경우에 대해, 필드목록 조회
SELECT 필드목록 FROM 테이블 WHERE 조건;

예시

-- 아래 모든 예시는 HUMAN 테이블 사용
-- age가 19 초과인 경우, 모든 컬럼(필드) 출력
SELECT * FROM HUMAN WHERE age > 19;
 
-- age가 19 초과인 경우, name과 age 컬럼(필드) 출력
SELECT name, age FROM HUMAN WHERE area > 1000;
 
-- name(이름)이 '호동'인 경우, 모든 컬럼 출력
SELECT * FROM HUMAN WHERE name = '호동';

LIKE (문자열 검색)

기본형태

-- 테이블에서 필드에 '와일드카드 포함 문자'가 있는 경우에 대해, 필드목록 조회
-- (LIKE는 WHERE절과 함께 쓰입니다.)
SELECT 필드목록 FROM 테이블 WHERE 필드 LIKE '와일드카드 포함 문자'

와일드 카드란?

%	: 임의의 복수개의 문자와 대응합니다. 도스의 *와 동일한 의미입니다.
_	: 임의의 하나의 문자와 대응합니다. 도스의 ?와 동일한 의미입니다.
[ ]	 : [ ] 안에 포함된 문자들 중 하나의 문자와 대응하는 경우.
[^ ] : [^ ] 안에 포함된 문자들에 포함되지 않는 경우.

예시

-- name(이름) 컬럼에 '김'가 들어가는 경우, 모든 컬럼 출력
SELECT * FROM HUMAN WHERE name LIKE '%김%'
 
-- name(이름) 컬럼이 '김'로 시작하는 경우, 모든 컬럼 출력
SELECT * FROM HUMAN WHERE name LIKE '김%'
 
-- name(이름) 컬럼이 '김'로 시작하고, 2글자인 경우, 모든 컬럼 출력
SELECT * FROM HUMAN WHERE name LIKE '김_'
 
-- name(이름) 컬럼이 '김'로 끝나는 경우, 모든 컬럼 출력
SELECT * FROM HUMAN WHERE name LIKE '%서'
 
-- name(이름) 컬럼에 '김'가 포함되지 않는 경우, 모든 컬럼 출력
-- (NOT 연산자 사용 가능합니다.)
SELECT * FROM HUMAN WHERE name NOT LIKE '%서%'

DISTINCT (중복값 제외후 한번씩만 출력)

기본형태

-- 테이블에서 중복 제외하고 필드목록 조회

SELECT DISTINCT 필드목록 FROM 테이블;

BETWEEN : ~이상 ~이하 (연속 범위 ex - 1 이상 5 이하)

기본형태

-- 테이블에서 필드가 A이상 B이하 인 경우에 대해, 필드목록 조회
-- (BETWEEN 최소값 AND 최대값은 WHERE절과 함께 쓰입니다.)
SELECT 필드목록 FROM 테이블 WHERE 필드 BETWEEN A AND B;

예시

-- age(나이)가 20 이상 50 이하인 경우, 모든 컬럼 출력
SELECT * FROM HUMAN WHERE AGE BETWEEN 20 AND 50;

IN : 리스트에 하나라도 포함되는 경우 (불연속적인 값. ex - ['a', 'b', 'c'])

기본형태

	-- 테이블에서 필드가 ('리','스','트')에 포함되는 경우, 필드목록 조회
-- (IN 연산자는 WHERE절과 함께 쓰입니다.)
SELECT 필드목록 FROM 테이블 WHERE 필드 IN ('리','스','트')

예시

-- name(이름)이 '김' 이나 '박'에 속하는 경우, 모든 필드 출력
SELECT * FROM HUMAN WHERE name IN ('김','박');

profile
JAVA BACK-END DEVELOPER 👩‍💻

0개의 댓글