29 Fri

TIL

데이터 분석을 위한 기초 SQL

OT

강좌 소개

  • SELECT - 질의어

  • INSERT, UPDATE, DELETE - 조작어

강의 수강을 위한 준비 & 링크 안내

  • 해커랭크 가입 -> 문제 풀이를 위함

  • w3school -> 실습

보고 싶은 데이터 꺼내오기

SELECT / FROM /LIMIT

  • 데이터는 표로 나타내며 가로는 row, 세로는 column

  • 가로는 데이터 한 개를 의미하며 세로는 데이터의 특성을 의미

SELECT * FROM Customers;
  • FROM : 어떤 테이블에서 데이터를 가져올 지

  • SELECT : 무엇을 가져올지

  • *: 전체 내용을 가지고 오라는 단축어(asterisk)

  • SELECT 뒤에 필드 명을 입력하면 되고 여러개의 필드 명은 콤마로 구분 가능

  • LIMIT : 데이터를 N개만 뽑아 오는 방법

    • 데이터가 너무 많으면 많은 정보를 출력해야 하며 많은 시간이 소요된다.

    • 데이터의 구조를 간단하게 파악할 때 사용 가능

  • SQL에서 대소문자 구별에 대한 강제는 존재하지 않지만, 가독성을 위해 예약어는 대문자로, 나머지 문자들은 소문자로 쓰는것이 권장된다.

조건에 맞는 데이터 검색하기

비교연산자와 논리연산자

  • 실제로 데이터를 모두 볼 일은 없음

    • ID가 30번 이상이거나 VALUE가 5 이상인 데이터만을 보는 등의 조건부 데이터 관찰을 많이함

  • WHERE : 특정 컬럼만을 가지고 오기 위해서 사용

    • EX

      • Customers < "B"

      • Country = 'Germany'

      • CustomerID = 5 AND City = 'Berlin

    • WHERE 구문에서 AND 또는 OR 연산을 사용 가능

LIKE, IN, BETWEEN, IS NULL

  • LIKE : 문자열의 패턴을 가지고 검색을 할 때 사용한다

    • EX

      • LIKE '%r%' : 중간에 'r'이 들어가는 문자열

      • LIKE 'br%' : 'br' 로 시작하는 문자열

  • IN : 구문이 너무 길어질 때 사용 가능하다

    • Counttry IN ('Germany', 'France', 'Korea')

  • BETWEEN : 범위형 집합을 정의할 때 사용한다.

    • CustomerID BETWEEN 3 AND 5

    • 숫자, 문자열, 날짜 데이터 등 가능하다.

    • 시작값과 끝값도 포함한다.

  • ISNULL : 비어있는 값을 나타내며 비교연산자로 비교할 수는 없다.

    • CustomerID != NULL (X)

    • CustomerID IS NULL

    • CustomerID IS NOT NULL

LIKE 심화

  • % : 어떤 문자열과도 매칭되며 이 문자를 와일드카드라고 부른다.

  • =LIKE 보다 빠르다

    • 검색하고자 하는 키워드가 명료하자면 = 을 사용할 것.

  • LIKE 'B_____'

    • B로 시작한 다음에 5개의 문자가 따라온다는 의미. 문자의 개수와 언더바의 개수와 동일하다.

    • 이와 같은 경우는 Brazil은 찾아지지만 Belgium은 찾아지지 않는다.

  • string %

    • 와일드카드가 아닌 실제 퍼센트를 찾고 싶다면 \% 과 같이 표현하면 된다.

  • 다양한 데이터베이스

    • postgresql

    • mssql

    • redshift

    • 다양한 데이터베이스에서 문법을 검색할 때는 데이터베이스 소프트웨어 이름과 문법을 검색할 것

    • EX) redshift LIKE

  • SELECT DISTINCT city

    • city의 테이블 값을 중복되는 값이 없게 출력해서 보여주라는 의미

  • RLIKE

    • 여러개의 조건이 필요할 때 LIKE 같은 경우에는 LIKE regex OR 을 반복적으로 써야 한다.

    • RLIKE를 사용하게 되면 RLIKE 'regex | regex' 와 같은 꼴로 쓸 수 있다.

Last updated

Was this helpful?