데이터리안 week 1 숙제

sujinzzang수진짱·2022년 7월 10일
0

sql basic

목록 보기
2/8

LIKE

% 뭐가 들어가도 상관없다. 어떤 문자가 들어가도 매칭을 해줘라

# Br로 시작하는 나라를 찾고 싶다
SELECT *
FROM Customers
WHERE country LIKE 'Br%
# r이 들어가는 나라를 찾고 싶다
SELECT *
FROM Customers
WHERE country LIKE '%r%

IN

OR 연산자와 비슷

SELECT *
FROM Customers
WHERE country IN ('Germany', 'France')
# WHERE country = 'Germany' OR country = 'France'

BETWEEN

AND 연산자와 비슷

# CustomerID가 3과 5사이의 값을 출력
SELECT *
FROM Customers
WHERE CustomerID BETWEEN 3 AND 5
# WHERE CustomerID >=3 AND CustomerID <= 5

데이터가 비어있는 부분을 찾는 예약어

ISNULL

SELECT *
FROM Customers
WHERE CustomerID IS NULL

NULL, NaN (Not a Number): 숫자도 아니고, 문자도 아니고, 비어있는 값이다.

LIKE 심화

%: 와일드카드 / 어떤 문자가 들어가도, 혹은 안 들어가도 괜찮다.

SELECT *
FROM Customers
WHERE country LIKE 'Brazil'
# WHERE country = 'Brazil'

명확하게 어떤 값을 가져올지 안다면 LIKE라고 쓰는 것보다 =이라고 쓰는 것이 속도가 훨씬 빠르다.

_ (언더바): 한글자 와일드카드 / 와일드카드이지만 몇 개의 문자가 따라오는지 알려준다.

SELECT *
FROM Customers
WHERE country LIKE 'B_____'
  • 문자열 안에 % 또는 _가 있을 때 어떻게 찾을 수 있을까?
    \ (역슬래시) : 이스케이프 / 예약어를 탈출한다.
SELECT *
FROM Customers
WHERE discount LIKE '__\%' 
# 두자리수 % 디스카운트 찾기
  • 아웃풋에 중복이 없어야 할 때
    DISTINCT
SELECT DISTINCT city
FROM station
WHERE city LIKE 'a%'
OR city LIKE 'e%'
OR city LIKE 'i%'
OR city LIKE 'o%'
OR city LIKE 'u%'
  • ~와 같지 않은
    NOT LIKE

정렬하기

ORDER BY :정렬하기, ASC: 오름차순(디폴트), DESC: 내림차순
SELECT, FROM, WHERE 뒤에 나온다.

mysql 문자열 자르기 (슬라이싱)

LEFT (컬럼명 또는 문자열, 문자열의 길이)
LEFT ('20140323', 4)
-> 2014
RIGHT (컬럼명 또는 문자열, 문자열의 길이)
RIGHT ('20140323', 4)
-> 0323
SUBSTRING, SUBSTR (컬럼명 또는 문자열, 시작 위치, 길이)
SUBSTR('20140323', 1, 4) -- 1번째부터 4개
-> 2014
SUBSTR('20140323', 5) -- 5번째부터 문자열의 끝까지
-> 0323

mysql 소수점처리

CEIL(): 올림
FLOOR(): 내림
ROUND(): 반올림

solvesql 연습 문제

  1. 우리 레스토랑에 온 부자손님
  2. 평점 높은 영화 찾기
  3. 보상 고객 목록입니다

문제 풀이 및 제출 완료~

0개의 댓글