MYSQL

[SQL] SQL 함수 정리

yunseohhe 2024. 7. 20. 21:37

안녕하세요. :-)

SQL문 절안에 사용할 수 있는 함수들에 대해 정리해보겠습니다.

 (함수라고 지칭하긴 했지만 구문, 절 안에 사용할 수 있는 모든 것들을 정리해보려고 합니다..!)

 

비교 연산자

연산자 설명
 < 미만
> 초과
= 같다
<> 같지 않다

 

다양한 구문

연산자 설명
IN(컬럼, 컬럼, ...) 포함
BETWEEN 컬럼 IN 컬럼 사이
LIKE ~처럼 비슷한 값

 

여러가지 조건의 적용

연산자 설명
AND 그리고, 조건 계속 붙일 때 사용
OR 또는
NOT 제외한 값 조건 붙일 때

 

숫자 연산 종류

연산자 설명
+ 더하기
- 뺄셈
* 곱하기
/ 나누기

 

계산 연산 종류

연산자 설명
SUM(컬럼) 합계 
AVG(컬럼) 평균
COUNT(컬럼) 데이터 개수
(컬럼 대신 1 또는 * 사용 가능)
[ cf : count(distinct 컬럼) = 해당하는 컬럼이 몇개의 값을 가지고 있는지 구할 때 사용함 ]
MIN (컬럼) 최솟값
MAX(컬럼) 최댓값

 

replace

  • 한꺼번에 값을 바꾸고 싶을 때 사용합니다. 즉, 특정 문자를 다른 문자로 바꾸는 것
  • 괄호 안에 값을 적을 때는 문자이면 ' '(작은따옴표)를 꼭 써야됩니다.
replace(바꿀 컬럼, 현재 값, 바꿀 값)

 

substring(substr)

  • 특정 문자만 골라서 조회할 수 있습니다.
  • 사용 방법
substr(조회 할 컬럼, 시작 위치, 글자 수)
  • 예시를 들어보면 밑의 SQL은  " 'food_orders'테이블에서  '서울특별시'인 주소를 첫글자부터 시작해서 2번째 글자까지만 조회" 입니다.
select addr "원래 주소",
       substr(addr, 1, 2) "시도"
from food_orders
where addr like '%서울특별시%'

 

concat

  • 여러 컬럼의 값을 하나로 합칠 수 있습니다.
  • 사용 방법
concat(붙이고 싶은 값1, 붙이고 싶은 값2, 붙이고 싶은 값3, .....)
  • 예시를 들어보면 밑의 SQL은  '서울시에 있는 음식점은 '[서울]음식점명'이라고 수정한 내용입니다.
select restaurant_name "원래 이름",   
       addr "원래 주소",
       concat('[', substring(addr, 1, 2), '] ', restaurant_name) "바뀐 이름"
from food_orders
where addr like '%서울%'

 [ cf : ' ' (작은따옴표) 항상 붙여야 됩니다!! ]

 

If

  • 원하는 조건에 충족할 때 적용할 방법과 아닌 방법을 지정해 줄 수 있습니다.
  • 사용 방법
if(조건, 조건을 충족할 때, 조건을 충족하지 못할 때)
  • 예시를 들어보면 [ 음식타입을 'Korean'일 때는 '한식', 아닐 경우에는 '기타'라고 지정 후 "음식 타입" 이라고 별명을 지정 ]한 내용입니다.
select restaurant_name,
       cuisine_type "원래 음식 타입",
       if(cuisine_type='Korean', '한식', '기타') "음식 타입"
from food_orders

 

case

  • 두 개 이상 지정을 해야 할 경우, 각 조건별로 적용할 값을 지정해 줄 수 있습니다.
  • 조건별로 지정을 해주기 때문에 IF문을 여러번 쓴 효과를 낼 수 있습니다.
  • 사용 방법 [ cf : case가 시작이라면 항상 end로 조건문을 끝내야 합니다!! ]
case when 조건1 then 값(수식)1
     when 조건2 then 값(수식)2
     else 값(수식)3
end
  • 예시를 들어보면 [ 음식 타입을 ‘Korean’ 일 때는 ‘한식’, ‘Japanese’ 혹은 ‘Chienese’ 일 때는 ‘아시아’, 그 외에는 ‘기타’ 라고 지정 ]한 내용입니다.
select restaurant_name,
       cuisine_type AS "원래 음식 타입",
       case when (cuisine_type='Korean') then '한식'
       else '기타'
       end as " 음식 타입"
from food_orders

 

 


  • 조건이 끝난 다음에 항상 "(별명)" 큰따옴표를 붙여서 컬럼명을 바꿀 수 있습니다.

'MYSQL' 카테고리의 다른 글

[MYSQL] 명령어 모음  (0) 2024.10.17
[SQL] SQL문 정리  (0) 2024.07.19