이직하고 나한테 여유의 시간을 주다 보니,
점점 공부했던 내용들을 머리속에서 지우는 것 같다.
바로 활용 할 수 있도록 스터디 재시작 - !

현업에서 ORACLE도 많이 사용하고 MY SQL과 문법이 조금씩 다르지만
일단 우선 MY SQL부터 도장 깨기

✏️ BASIC

SQL 작성 순서

SELECT - FROM - WHERE - GROUP BY - HAVING - ORDER BY - LIMIT

SQL 실행 순서

FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY - LIMIT

함수

✏️ 숫자 함수

💡 평균 (AVG)

💡 반올림 (ROUND)

💡 MIN / MAX

✏️ NULL 처리

💡 IFNULL

컬럼이 NULL을 반환할 때, 다른 값으로 출력하는 함수

SELECT IFNULL(컬럼명, 대체값) FROM 테이블명
**MSSQL**
ISNULL(VALUE1, VALUE2)

**ORACLE**
NVL(VALUE1, VALUE2)

✏️ 날짜 함수

💡 DATE_FORMAT

날짜를 지정한 형식으로 출력

SELECT DATE_FORMAT(컬럼명,'%Y-%m-%d') FROM 테이블명

# 2016년09월22일 17시00분05초
SELECT DATE_FORMAT(컬럼명,'%Y년%m월%d일 %H시%i분%S초') FROM 테이블명
- FORMAT
형식설명
%Y연도 Year (4자리)
ex) 1999, 2000, 2020
%y연도 Year (2자리)
ex) 99, 00, 20
%M월 Month (영문/긴)
ex) January, February ...
%b월 Month (영문/짧은)
ex) Jan, Feb ...
%m월 Month (숫자/2자리)
ex) 01, 02, 03 ...
%c월 Month (숫자/1자리)
ex) 1, 2, 3 ...
%D월 Month
ex) 1st, 2dn, 3rd ...
%d일 Day (숫자/2자리)
ex) 00, 01, 02 ...
%e일 Day (숫자/1자리)
ex) 0, 1, 2 ...
%W요일 Day of Week
ex) Sunday, Monday ...
%a요일 Day of Week
ex) Sun., Mon. ...
%H시 Hour (24시간)
ex) 00, 01,24 ...
%h시 Hour (12시간)
ex) 00, 06,12 ...
%Thh:mm:ss
%pAP, PM

💡 DATE vs DATETIME

자료형표기 형식길이/크기
DATEYYYY-MM-DD3 Byte
참고 : varchar (8 Byte)
DATETIMEYYYY-MM-DD HH:mm:ss8 Byte

연산자

연산자들은 조건으로 필터링하는 역할이므로 WHERE절에 위치

WHERE 절
WHERE 절에서는 단일 행 기준의 조건을 사용해야 하므로, 집계 함수를 직접 사용할 수 없습니다.
EX) WHERE MIN(DATETIME)

✏️ 특수조건 검색

💡 IN / NOT IN

  • 연속적이지 않은 여러값 조회
  • 컬러명 IN ("")
#SELECT * FROM 테이블명 WHERE 컬럼명 = VALUE 1, 컬럼명 = VALUE 2, 컬럼명 = VALUE 3
SELECT * FROM 테이블명 WHERE 컬럼명 IN ("VALUE 1", "VALUE 2", "VALUE 3")

💡 BETWEEND, AND

  • 연속적인 값 조회
#SELECT * FROM 테이블명 WHERE 컬럼명 >= VALUE 1 AND Column <= VALUE 2
SELECT * FROM 테이블명 WHERE 컬럼명 BETWEEN VALUE 1 AND VALUE 2

💡 LIKE

  • 문자열 검색
  • _ : 글자수 1개 , % : 모든 글자
  • 컬럼명 LIKE ""
#A로 시작하는 문자 찾기
SELECT * FROM 테이블명 WHERE 컬럼명 LIKE 'A%'

#A로 끝나는 문자 찾기
SELECT * FROM 테이블명 WHERE 컬럼명 LIKE '%A'

#A를 포함하는 문자 찾기
SELECT * FROM 테이블명 WHERE 컬럼명 LIKE '%A%'

#A로 시작하는 두글자 문자 찾기
SELECT * FROM 테이블명 WHERE 컬럼명 LIKE 'A_'


#A로 시작하는 두글자 문자 찾기
SELECT * FROM 테이블명 WHERE 컬럼명 LIKE 'A_'

-----

#첫번째 문자가 'A''가 아닌 모든 문자열 찾기
SELECT * FROM 테이블명 WHERE 컬럼명 LIKE'[^A]'

#첫번째 문자가 'A'또는'B'또는'C'인 문자열 찾기
SELECT * FROM 테이블명 WHERE 컬럼명 LIKE '[ABC]'
SELECT * FROM 테이블명 WHERE 컬럼명 LIKE '[A-C]'

✏️ NULL 처리

💡 IS NULL / IS NOT NULL

SELECT * FROM 테이블명 WHERE 컬럼명 IS NULL
profile
데린이인데요 ໒꒰ྀ ˶ • ༝ •˶ ꒱ྀིა (잘못 된 부분은 너그러이 알려주세요.)

0개의 댓글

Powered by GraphCDN, the GraphQL CDN