[Doit]Do it! SQL 입문[1]

2 minute read

** 본 포스팅은 이지스퍼블리싱의 Do it! SQL 입문 도서를 기반으로 작성되었습니다. ** Do it! SQL입문의 1장은 SQL에 대한 기초적인 설명과 배워야할 필요성에 대해 말하고 있고, 2장은 SQL설치 및 실습환경 구축에 관한 내용입니다. 본 포스팅에서는 3장 내용부터 정리합니다.

3장 SQL 시작하기

3-1 SELECT 문으로 데이터 검색하기

⏹️ SELECT문 SELECT 문은 데이터베이스에서 데이터를 검색하는 구문이다.

SELECT <col> FROM [table] WHERE [value]

  • [table]에서 조회하고 싶은 데이터의 필드 리스트를 기술
  • 여러 개의 필드를 읽을 때는 콤마(,)로 구분하여 연결
  • 테이블 전체를 조회할 때는 SELECT * FROM 을 사용(최대한 필요한 컬럼만 조회해야 한다! 불필요한 데이터를 불러올 때 오버헤드가 발생하기 때문!)

[table]

  • from 절 뒤에 위치
  • 데이터가 저장되어 있는 테이블명 기술
  • 스키마명을 적용하여 기술 가능
  • [table] AS [별칭] 으로 별명 사용 가능

SELECT의 다양한 함수

  • SELECT top 1 from ~ : 조회된 데이터의 1행 반환
  • SELECT top @n from ~ : 조회딘 데이터의 변수 행만큼 반환
  • SELECT count(*) from ~ : 조회된 데이터의 ROW 카운트 반환

3-2 WHERE 문으로 조건에 맞는 데이터 검색하기

⏹️ WHERE문 WHERE [value] : 필요한 정보만 조회할 수 있도록 필터를 적용하는 부분

  • 비교연산자(-, >=, <=, >, <, > 등), 논리연산자(AND, OR, IN, NOT IN) 사용 가능
  • 범위 검색시 BETWEEN 사용 가능.
    • 날짜
      
      SELECT * FROM [table] WHERE [col] BETWEEN '2017-03-17' AND '2017-03-19' 
      

      [col]에서 2017-03-17 ~ 2017-03-19 사이의 날짜를 가진 데이터 출력 </br>

    • 문자열
      
      SELECT * FROM [table] WHERE [col] BETWEEN 'A' AND 'B'
      

      [col]에서 A와 B를 포함한 값을 검색 </br>

    • NOT을 사용하여 범윗값을 제외하고 검색
      
      SELECT * FROM [table] WHERE [col] NOT BETWEEN 'A' AND 'B' 
      

      A와 B를 포함하지 않은 값을 검색 </br>

  • AND 와 OR을 사용하여 다양한 조건을 적용하여 데이터를 검색할 수 있다.
    • AND 연산자
      
      SELECT * FROM nasdaq_company WHERE sector = 'Finance' AND industry = 'Major Banks' 
      

      sector가 ‘Finance’이면서 industry가 ‘Major Banks’인 데이터 검색 가능 </br>

    • OR연산자
      
      SELECT * FROM nasdaq_company WHERE symbol = 'MSFT' OR symbol = 'XXXX'
      

      symbol이 ‘MSFT’ 또는 ‘XXXX’인 데이터를 검색한다. OR은 양쪽 조건 중 하나라도 만족하는 결과를 모두 반환한다.
      </br>

  • NULL 데이터 검색
    
    SELECT * FROM nasdaq_company WHERE sector is NULL
    

    sector 데이터가 NULL인 데이터 검색 </br></br>

다양한 연산자

  • In Operator : 여러 값을 동일한 열에 비교해야할 때 유용
  • ESCAPE </br></br>

3-3 ORDER BY 문으로 데이터 정렬하기

ORDER BY문의 기본 형식


SELECT [col] FROM [Table] WHERE [col] = [조건값] ORDER BY [열] [ASC, DESC]
  • desc (내림차순) ASC(오름차순)

  select * from nasdaq_company ORDER BY Atable DESC Btable ASC

</br>

  • 데이터를 건너 뛰는 OFFSET

  SELECT * FROM nasdaq_company ORDER BY symbol OFFSET 1000 ROWS

1000개의 데이터를 뛰어넘고 데이터를 출력하라. </br>

  • FETCH NEXT (반드시 OFFSET과 함께 사용해야 함.)

  SELECT * FROM nasdaq_company ORDER BY symbol OFFSET 1000 ROWS FETCH NEXT 10 ROWS ONLY

1000개의 데이터를 뛰어남고 1001번째부터 10개의 데이터를 출력하라.

</br></br>

참고자료

Categories:

Updated:

Leave a comment