언빌리버블티
[MySQL] SQL 비교 연산자 및 함수 (LIKE, BETWEEN, IS NULL, DISTINCT, SUBSTRING, ROUND) 본문
Language/MySQL
[MySQL] SQL 비교 연산자 및 함수 (LIKE, BETWEEN, IS NULL, DISTINCT, SUBSTRING, ROUND)
나는 정은 2022. 10. 13. 02:08멋쟁이 사자처럼 AI스쿨
데이터리안 Special Lecture : 일단 해보는 SQL - 2
[백문이불여일타] 데이터 분석을 위한 기초 SQL - 인프런 | 강의
인프런 누적 수강생 10,000명 이상, 풍부한 온/오프라인 강의 경험을 가진 데이터리안의 SQL 기초 강의. SQL 기초 이론을 배우고, 해커랭크 문제 10개를 함께 풀어봅니다., - 강의 소개 | 인프런...
www.inflearn.com
SQL 이란?
데이터와 통신하는 언어
SELECT
- Data Query Language 질의어 - DQL
- 데이터를 꺼내옴
INSERT, UPDATE, DELETE
- Data Manipulation Language 조작어 - DML
- DB에 데이터를 쌓고
- 데이터를 업데이트하고
- 데이터를 삭제
SQL을 더 공부하고 싶다면 ?
해커랭크
- SQL 코딩테스트 대비 연습문제 사이트
w3school SQL
- SQL 코드 실습해볼 수 있는 사이트
SQL 비교 연산자
LIKE : 데이터베이스 검색 쿼리
데이터베이스의 수많은 형태의 데이터들 중 원하는 형태의 데이터 값만 찾고 싶을때,
특정 패턴을 정해두고, 내가 정한 패턴을 포함하고 있는 데이터를 찾는 과정에서 사용된다.
와일드카드 이스케이프
와일드카드
|
Description
|
|
%
|
0개 이상의 문자를 가진 문자열
모든 문자를 의미 |
% 문자 % - 문자가 포함된 모든 데이터를 가져옴
% 문자 - 문자 앞에 무슨 글자가 오던지 문자로 끝나면 된다. 문자 % - 문자 뒤에 무슨 글자가 오던지 문자로 시작하면 된다. |
_ (밑줄)
|
한 개 (단일)문자
|
문자 ____ -> 어떤 문자라고 특정하지 않았지만 문자 시작 후 어떤 문자던지 밑줄 개수 만큼의 문자가 온다.
|
SQL 조건에 맞는 데이터 검색하기
BETWEEN a AND b
a(시작값) 보다 크거나 같고 b(끝값)보다 작거나 같다. 라는 의미
특정 수 사이 값을 필터링한다.
-- WHERE studentID BETWEEN 3 AND 5
# int
SELECT *
FROM Products
WHERE CustomerID BETWEEN 10 AND 20
# str
SELECT *
FROM Products
WHERE CustomerName BETWEEN 'C' AND 'M'
# datetime
SELECT *
FROM Orders
WHERE CustomerOrders BETWEEN 2019-01-01' AND '2020-01-01'
IS NULL / IS NOT NULL
숫자도 아니고 문자도 아닌 아무런 값이 존재하지 않는 데이터
- NULL 값을 검색할 때는 = 연산자가 아닌 ' IS NULL ' 사용
- 반대로 NULL이 아닌 행을 검색할 땐 IS NOT NULL 사용
WHERE customerID IS NULL
-> NULL, NaN (Not a Number)
- 집계함수에서는 NULL까지 포함시킨 아스타(*) 로 계산하는 것이 좋다고한다.
EX )

-- IS NULL
SELECT *
FROM SAMPLE
WHERE NAME IS NULL

-- IS NOT NULL
SELECT *
FROM SAMPLE
WHERE NAME IS NOT NULL
IN
결과에 포함시키고자 하는 값 목록을 지정할 수 있는 SQL 논리 연산자
데이터 유형에 관계없이 쉼표로 구분
SELECT *
FROM TABLE_NAME
WHERE COL_NAME IN ('VALUE1','VALUE2'....)
DISTINCT : 중복 제거
- 특정 열의 중복되는 부분을 제거하여 unique한 값들만 볼 수 있게 해준다.
SELECT DISTINCT col_name
FROM TABLE_NAME
ORDER BY : 정렬
- DESC 내림차순
- ASC 오름차순
SELECT *
FROM TABLE_NAME
WHERE A > 10
ORDER BY A DESC or (ASC and 아무런 값도 입력x)
MySQL 문자열 자르기
LEFT(컬럼명 or 문자열, 문자열의 길이)
SELECT LEFT("20140323", 4)
=> 2014
RIGHT(컬럼명 or 문자열, 문자열의 길이)
SELECT RIGHT("20140323", 4)
=> 0323
SUBSTR(컬럼명 or 문자열, 시작위치 , 길이 ) : substring
SUBSTR("20130323",1,4)
=> 2014
SUBSTR("20130323",5)
=> 0323
MySQL 소수점 처리
CEIL() : 숫자 올림
SELECT CEIL(5.5)
=> 6
FLOOR() : 숫자 내림
SELECT FLOOR(5.5)
=> 5
ROUND() : 숫자 반올림
ROUND(5.556901,4)
5.5569
'Language > MySQL' 카테고리의 다른 글
[MySQL] SQL CASE~WHEN을 활용한 피벗테이블 만들기 (0) | 2022.10.14 |
---|---|
[MySQL] SQL 조건문 (IF, CASE WHEN ~ THEN) (0) | 2022.10.14 |
[MySQL] SQL 그룹별로 요약하기 ( GROUP BY , HAVING ~ ORDER BY ) (0) | 2022.10.14 |
[MySQL] SQL 집계함수 : SUM(), COUNT(), AVG() ... (0) | 2022.10.14 |
[MySQL] SQL기초 - SELECT, FROM, ORDER BY (0) | 2022.10.02 |
Comments