📏 SELECT문
SELECT 열_이름
FROM 테이블_이름
WHERE 조건식
GROUP BY 열_이름
HAVING 조건식
ORDER BY 열_이름
LIMIT 숫자
📏 USE - 스키마 (데이터베이스) 선택
SELECT member_id, name FROM member;
SELECT * FROM member;
SELECT * FROM market_db.member;
SELECT * FROM member;
- 기본적으로 테이블 이름은 스키마명.테이블명 으로 표현한다.
- 하지만 USE문으로 데이터베이스를 지정해주었다면 테이블명만 명시해도 된다.
📏 WHERE - 특정 조건만 조회하기
SELECT * FROM member
WHERE mem_number >= 5;
- WHERE절을 사용해 특정 조건에 해당하는 데이터만 조회할 수 있다.
- 관계 연산자 / 논리 연산자 사용 가능
논리 연산자 AND, OR 사용 가능
SELECT TRUE OR FALSE AND FALSE;
SELECT (TRUE OR FALSE) AND FALSE;
- 여러 조건이 필요한 경우 논리 연산자를 사용하면 된다.
- AND가 OR보다 우선 순위를 가진다.
- MySQL에서는 && 나 || 도 사용 가능하다.
BETWEEN - 범위 표현식
SELECT * FROM member
WHERE height between 160 and 165;
- between 연산자를 이용하여 특정 범위에 해당하는 데이터를 조회할 수 있다.
- 하지만 인덱스를 사용할 수 없으므로 주의
IN () - 여러 값 매칭
SELECT * FROM member
WHERE addr IN('경기', '전북', '경남');
SELECT * FROM member
WHERE addr = '경기' OR addr = '전북' OR addr = '경남';
- IN() 연산자를 이용하여 특정 값이 포함된 데이터를 조회할 수 있다.
- IN 연산자는 동등비교 '=' 를 여러번 수행하는 효과를 가진다. 따라서 인덱스를 최적으로 활용할 수 있다.
LIKE - 문자열의 일부 글자 검색
SELECT * FROM member WHERE mem_name LIKE '블___';
SELECT * FROM member WHERE mem_name LIKE '블%';
SELECT * FROM member WHERE mem_name LIKE '%블%';
- 문자열의 일부 글자 검색
- _ : 한 글자만 매치
- % : 몇 글자든 매치 (어떤게 오든 상관이 없는)
- 홍길% : 홍길로 시작하되 뒤에 어떤 값이 오든 상관없다!
- %홍길 : 끝이 홍길이면 어떤 값이 오든 O
- %홍길% : 홍길이 포함되면 O
- %홍%길% : 홍과 길 포함 O, 하지만 ~길홍~이면 안됨! 홍이 먼저 길이 후에
서브 쿼리
SELECT mem_name, height
FROM member
WHERE height > (select height from member where mem_name LIKE '에이핑크');
📏 ORDER BY - 조회된 데이터를 정렬
SELECT * FROM member
ORDER BY debut_date;
- ORDER BY절은 데이터를 정렬한다.
- WHERE 절 다음에 나와야 함
- ASC (ascending order) : 오름차순 → (생략시 기본값)
- DESC (descending order) : 내림차순
SELECT * FROM member
WHERE height >= 164
ORDER BY height DESC, debut_date;
📏 LIMIT - 출력 개수 제한
SELECT * FROM member
LIMIT 3;
SELECT * FROM member
LIMIT 3, 2;
LIMIT 2 OFFSET 3;
- LIMIT 시작, 개수
- LIMIT 뒤에 하나의 숫자만 입력시 처음부터 N까지의 데이터만 가져옴
- LIMIT 과 OFFSET 조합으로도 출력 개수를 제한할 수 있다.
📏 DISTINCT - 중복 데이터 제거
SELECT DISTINCT addr
FROM member;
- DISTINCT를 열 이름 앞에 붙이면 중복된 값은 1개만 출력된다.