SQL 2

이상우·2021년 12월 17일
0

데이터 개수를 확인할 때(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;
  • GROUP BY를 더 잘 활용하려면 SUM, AVG, COUNT, MAX, MIN를 활용

데이터 그룹에 조건 적용하기

SELECT user_id, COUNT(*)
FROM rental
GROUP BY user_id
HAVING COUNT(user_id) > 1;

->rental 테이블에서 user_id가 같은 1개 초과의 데이터가 몇 개 있는지 검색

JOIN

두 개 이상의 테이블들을 연결 또는 결합하여 데이터를 출력하는 것

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모두 만족하면 반환, 비교 연산 가능
profile
구상한것을 구현할 수 있는 개발자가 되고 싶습니다.

0개의 댓글