HeidiSQL/SQL_ex
DML
ldh1123
2023. 3. 15. 22:17
목차
SELECT
기본 구조
SELECT [DISTINCT] [컬럼명]
FROM [테이블명]
WHERE [쿼리 조건]
GROUP BY [컬럼명] HAVING [집계함수 조건]
ORDER BY [컬럼명 ASC || 컬럼명 DESC]
;
테이블 전체 조회
모두 조회
SELECT *
FROM employees;
컬럼명으로 조회
SELECT emp_no
FROM employees;
SELECT
emp_no
, first_name
FROM employees;
특정 조건으로 조회
기본 구조
SELECT [컬럼명]
FROM [테이블명]
WHERE [쿼리 조건];
특정 테이터와 일치하는 조건으로 조회
SELECT *
FROM employees
WHERE emp_no = 10001;
SELECT *
FROM employees
WHERE first_name = 'Georgi';
관계 연산자를 이용하여 조회
SELECT *
FROM employees
WHERE emp_no <= 10005;
AND, OR로 여러 조건을 설정하여 조회
SELECT *
FROM employees
WHERE emp_no >= 10001
AND emp_no <= 10005;
SELECT *
FROM employees
WHERE emp_no <= 10003
OR emp_no >= 499997;
BETWEEN [A] AND [B]로 해당 범위 내의 데이터 조회
SELECT *
FROM employees
WHERE emp_no BETWEEN 10003 AND 10010;
IN()으로 해당 데이터 조회
SELECT *
FROM employees
WHERE emp_no IN(10003, 10010);
LIKE로 문자열의 내용을 조회
- "%"는 무엇이든(무슨 글자든지, 몇글자던지) 허용한다는 의미
SELECT *
FROM employees
WHERE first_name LIKE('%eo');
SELECT *
FROM employees
WHERE first_name LIKE('eo%');
- "_"는" _"의 갯수만큼만 허용
SELECT *
FROM employees
WHERE first_name LIKE( '_eorgi' );
SELECT *
FROM employees
WHERE first_name LIKE( 'Georg_' );
ORDER BY로 정렬하여 조회
- ASC는 오름차순
SELECT *
FROM employees
ORDER BY emp_no ASC;
- DESC는 내림차순
SELECT *
FROM employees
ORDER BY emp_no DESC;
DISTINCT로 중복값 없이 조회
SELECT DISTINCT dept_no
FROM dept_manager;
LIMIT로 출력 개수를 제한하여 조회
SELECT *
FROM employees
LIMIT 5;
OFFSET은 숫자만큼 건너뛰고나서 조회
SELECT *
FROM employees
LIMIT 5
OFFSET 10;
SubQuery
쿼리 안에 또다른 쿼리가 있는 형태
SELECT *
FROM dept_manager
WHERE
dept_no = (
SELECT dept_no
FROM dept_manager
WHERE emp_no = 110114
);
집계 함수
- AVG(컬럼명) : 평균을 구함
- MAX(컬럼명) : 최대값을 구함
- MIN(컬럼명) : 최소값을 구함
- COUNT(컬럼명) : 개수를 구함
GROUP BY
그룹으로 묶어서 조회함
GROUP BY 컬럼명 [ HAVING 집계함수조건 ]
SELECT
dept_no
, COUNT(emp_no) AS cnt
FROM dept_manager
GROUP BY dept_no
HAVING cnt > 2;
Github