[SQL 레벨업] 6강 SELECT 구문

가니·2023년 10월 31일
0

SQL레벨업

목록 보기
4/5
post-thumbnail

데이터베이스의 핵심이 되는 처리는 검색이다.

1. SELECT 구와 FROM 구

  • select 구문은 두개의 부분으로 구성되어 있다.
    • SELECT 구
      • 검색하고자 하는 요소
    • FROM 구
      • 데이터를 선택할 대상 테이블

⇒ RDB에서는 사용자에게 어떤 데이터가 필요한지의 정도만을 요구

SELECT name,phone_nbr , address FROM Address;

2. WHERE 구

  • 특정 조건에 맞는 일부의 레코드만 선택하고 싶을 때 사용
SELECT name , address FROM Address WHERE address = "인천시";
  • WHERE 구에서 사용하는 대포적인 연산자
    연산자의미
    =~와 같음
    < >~와 같지 않음
    >=~ 이상
    >~보다 큼
    <=~이하
    <~보다 작음
  • IN을 이용한 조건
SELECT name , address FROM Address WHERE address IN ('서울시','부산시','인천시');
  • NULL 레코드 선택
SELECT name , address FROM Address WHERE address IS NULL;
  • NULL 레코드 선택
SELECT name , address FROM Address WHERE address IS NULL;

3. GROUP BY 구

  • 합계 또는 평균 등의 집계 연산을 진행
SELECT address , COUNT(*) FROM Address GROUP BY address;
  • SQL 대표적인 집계 함수
함수 이름설명
COUNT레코드 수를 계산
SUM숫자를 더함
AVG숫자의 평균을 구함
MAX최댓값을 구함
MIN최솟값을 구함

4. HAVING 구

  • 선택된 결과 집합에 조건을 지정
SELECT address, COUNT(*) FROM Address GROUP BY address HAVING COUNT(*) = 1;

5. ORDER BY 구

  • 출력되는 순서
SELECT address,age FROM Address ORDER BY age DESC;

6. 뷰와 서브쿼리

  • 데이터베이스에 존재하는 일종의 가상 테이블
// 뷰 생성
CREATE VIEW CountAddress (v_address,cnt)
AS
SELECT address,COUNT(*)
	FROM Address
	GROUP BY address;

// 뷰 사용
SELECT v_address, cnt FROM CountAddress;

//뷰 실행될 때
SELECT v_address, cnt FROM (SELECT address,COUNT(*)
	FROM Address
	GROUP BY address) AS CountAddress;
  • 서브 쿼리 (IN 내부에서 서브쿼리 사용)
SELECT name FROM Address WHERE name IN (SELECT name from ADdress2);
profile
동료에게 선한 영향력을 전달할 수 있는 개발자가 되고싶닷 ദ്ദി(☆⸝⸝•̀ᴥ•́⸝⸝)

0개의 댓글