데이터 개수를 확인할 때(COUNT)
SELECT COUNT(id)
FROM book;
*NULL인 데이터는 제외
데이터 일부만 보고싶을 때(LIMIT)
-- book 테이블에서 데이터를 5개만 가져오기
SELECT * FROM book LIMIT 5;
--2번째 데이터부터 5개를 가져오기
SELECT * FROM book LIMIT 1, 5;
지정한 컬럼들의 값을 모두 더하여 총점을 보고싶을때(SUM)
SELECT SUM(math) FROM grade;
지정한 컬럼들의 값의 평균을 보고싶을때(SUM)
SELECT AVG(math) FROM grade;
테이블에 존재하는 데이터에서 최대값을 보고싶을 때(MAX)
SELECT MAX(math) FROM grade;
테이블에 존재하는 데이터에서 최소값을 보고싶을 때(MAX)
SELECT MIN(math) FROM grade;
GROUP BY
SELECT user_id, COUNT(*)
FROM rental
GROUP BY user_id;
데이터 그룹에 조건 적용하기
SELECT user_id, COUNT(*)
FROM rental
GROUP BY user_id
HAVING COUNT(user_id) > 1;
->rental 테이블에서 user_id가 같은 1개 초과의 데이터가 몇 개 있는지 검색
두 개 이상의 테이블들을 연결 또는 결합하여 데이터를 출력하는 것
1.INNER JOIN - 두 데이터중 겹치는 부분만 출력
2.FULL JOIN - 전체적으로 출력
3.LEFT JOIN - 왼쪽 데이터와 겹치는 부분을 출력
4.RIGHT JOIN - 오른쪽 데이터와 겹치는 부분을 출력
두 테이블의 정보를 한 번에 조회하는 INNER JOIN
SELECT *
FROM rental
INNER JOIN user;
조건을 적용해 두개의 테이블 조회하기
SELECT *
FROM rental
INNER JOIN user
ON user.id = rental.user_id;
서브쿼리란?
하나의 쿼리 안에 포함된 또 하나의 쿼리. 메인 쿼리가 서브쿼리를 포함하는 종속적인 관계
서브쿼리의 특징
예시
SELECT * FROM employee
WHERE 급여 >
(SELECT 급여 FROM employee WHERE 이름='elice');
->사원 elice의 급여를 알지 못해도 검색 가능
서브쿼리 사용시 주의사항
1.서브쿼리는 괄호와 함께 사용되어야 한다.
2.서브쿼리 안에서 ORDER BY절은 사용할 수 없다.
3.서브쿼리는 연산자의 오른쪽에 사용되어야 한다.
4.서브쿼리는 오로지 SELECT문으로만 작성 할 수 있다.
단일 행 서브쿼리
결과가 한 행만 나오는 서브쿼리. 서브쿼리가 결과를 1개의 값만 반환하고, 이 결과를 메인쿼리로 전달하는 쿼리
단일 행 서브쿼리 연산자
기호 | 뜻 |
---|---|
= | 같다 |
<> | 같지 않다 |
> | 크다 |
>= | 크거나 같다 |
< | 작다 |
<= | 작거나 같다 |
= | 같다 |
다중 행 서브쿼리
결과가 한 행만 나오는 단일 행 서브쿼리와는 다르게 서브쿼리가 결과를 2개 이상 반환하고, 이 결과를 메인쿼리로 전달하는 쿼리
다중 행 서브쿼리 연산자
기호 | 뜻 |
---|---|
IN | 하나라도 만족하면 반환 |
ANY | 하나라도 만족하면 반환,비교연산 가능 |
ALL | 모두 만족하면 반환, 비교 연산 가능 |