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

Link