SELECT, FROM, WHERE
SELECT: 조회할 열(column)을 선택
FROM: 조회할 테이블(table)을 지정
WHERE: 조건을 지정해 필요한 데이터만 필터링
-- 모든 20세 이상의 회원 이름과 나이를 조회
SELECT name, age
FROM usertbl
WHERE age >= 20;
ORDER BY, DESC
ORDER BY: 결과를 지정한 열 기준으로 정렬
DESC: 내림차순 정렬(기본은 ASC, 오름차순)
-- 나이를 기준으로 내림차순으로 회원 조회
SELECT name, age
FROM usertbl
ORDER BY age DESC;
DISTINCT
중복된 값을 제거하고 고유한 결과만 반환
-- 중복 없이 모든 도시 목록 조회
SELECT DISTINCT city
FROM usertbl;
LIMIT
결과에서 반환할 행의 개수를 제한
-- 상위 5명의 회원 조회
SELECT name, age
FROM usertbl
LIMIT 5;
GROUP BY, SUM(), WITH ROLLUP
GROUP BY: 같은 값을 가진 행을 그룹화
SUM(): 그룹별 합계 계산
WITH ROLLUP: 그룹화된 결과에 소계와 총계를 추가
-- 지역별 회원 수와 총합 계산
SELECT city AS '지역', COUNT(*) AS '지역별 회원 수'
FROM usertbl
GROUP BY city WITH ROLLUP;
HAVING
GROUP BY 절 이후의 조건을 지정, WHERE과 다르게 데이터가 그룹화된 후에 필터링
-- 회원 수가 10명 이상인 지역 조회
SELECT '지역', COUNT(*) AS '지역별 회원 수'
FROM usertbl
GROUP BY city
HAVING COUNT(*) >= 10;
BETWEEN AND
조건문 대신 특정 범위를 간편하게 검색할 때 사용
-- 20세부터 30세 사이의 회원 조회
SELECT name, age
FROM usertbl
WHERE age >= 20 AND age <= 30; -- 조건문 사용
WHERE age BETWEEN 20 AND 30; -- BETWEEN AND 사용
IN
명시된 값 중 하나라도 일치 시 참, BETWEEN AND로 처리할 수 없는 문자열 등 여러 값을 간편하게 조건으로 지정할 때 사용
-- 서울, 부산, 대구에 거주하는 회원 조회
SELECT name, city
FROM usertbl
WHERE city='서울' OR city='부산' OR city='대구'; -- 조건문 사용
WHERE city IN ('서울', '부산', '대구'); -- IN 사용
LIKE
문자열 패턴을 검색할 때 사용하며, 주로 와일드카드(%, _)와 함께 사용
%: 0개 이상의 모든 문자
_: 1개의 임의 문자
-- '권'으로 시작하는 회원 조회
SELECT name
FROM users
WHERE name LIKE '권%';
-- 두 번째 글자가 '지'인 4글자 이름 조회
SELECT name
FROM users
WHERE name LIKE '_지__';
ANY
서브쿼리 결과 중 하나라도 조건을 만족하면 참(OR)
-- 서울에 거주하는 회원 중 최소 1명보다 나이가 많은 회원 조회
SELECT name, age
FROM usertbl
WHERE age > ANY (
SELECT age
FROM usertbl
WHERE addr='서울'
);
ALL
서브쿼리 결과의 모든 값에 대해 조건을 만족하면 참(AND)
-- 서울에 거주하는 모든 회원보다 나이가 많은 회원 조회
SELECT name, age
FROM usertbl
WHERE age > ALL (
SELECT age
FROM usertbl
WHERE addr='서울'
);
'DBMS > MySQL' 카테고리의 다른 글
[MySQL]문자와 문자 연결 (0) | 2025.02.25 |
---|---|
[MySQL]형 변환 (0) | 2025.02.25 |
[MySQL]중복 키(ON DUPLICATE KEY UPDATE, IGNORE) (0) | 2025.02.20 |
[MySQL]데이터 삭제, 테이블 삭제(DELETE, DROP, TRUNCATE) (0) | 2025.02.20 |
[MySQL]테이블 생성, 데이터 추가, 데이터 수정(CREATE, INSERT, UPDATE) (0) | 2025.02.20 |