[SQL] 8장. 데이터 조작 함수 사용하기

김상현·2022년 9월 25일
0

SQL

목록 보기
8/22
post-thumbnail

[손에 잡히는 10분 SQL - 벤 포터 지음, 박남혜 옮김] 책의 학습 후 정리자료입니다.


📍 함수 이해하기

  • SQL도 데이터를 조작할 수 있도록 함수를 지원한다.
  • 함수는 데이터를 변환하거나 조작할 수 있게 해준다.

📌 함수로 인해 발생하는 문제

  • SELECT ~ 같은 SQL 문은 거의 모든 DBMS에서 똑같이 지원한다.
  • 하지만, 대다수 함수는 DBMS에 매우 종속적이다.
  • SQL 문과 달리 SQL 함수는 DBMS 간 호환성이 매우 낮다.
  • 즉, 특정 DBMS에 맞게 작성한 SQL 코드가 다른 DBMS에서 동작하지 않을 수 있다.

💡 함수를 사용해야만 할까?

  • 만약 SQL 문에서 함수를 사용하기로 했다면, 코드에 주석을 잘 작성해야 한다.
  • 다른 개발자가 이 코드가 어떤 SQL 실행 환경에서 동작하도록 작성한 것인지 알 수 있을 것이다.

📍 함수 사용하기

  • 대부분의 SQL 실행 환경은 다음에 나오는 유형의 함수를 지원한다.
    • 문자열을 조작하기 위한 문자 함수
    • 수치 데이터로 수학 꼐산을 시행하기 위한 수치 함수
    • 날짜와 시간을 조작하기 위한 날짜 함수
    • 결과를 사용자 친화적인 형식으로 보여주기 위한 서식 설정 함수
    • 사용하고 있는 DBMS 정보를 반환하는 시스템 함수

📌 문자열 조작 함수

  • 자주 사용되는 문자열 조작 함수
함수설명
LEFT()문자열 왼쪽에서부터 문자열 일부를 추출
LENGTH()문자열의 길이를 반환
LOWER()문자열을 소문자로 변환
LTRIM()문자열의 왼쪽에 있는 공백 문자를 삭제
RIGHT()문자열 오른쪽에서부터 문자열 일부를 추출
RTRIM()문자열의 오른쪽에 있는 공백 문자를 삭제
SUBSTR() or SUBSTRING()문자열의 일부분 추출
SOUNDEX()문자열의 SOUNDEX 값을 반환
UPPER()문자열을 대문자로 변환
  • UPPER() 는 문자열을 모두 대문자로 변환한다.
SELECT vend_name, UPPER(vend_name) AS vend_name_upcase
FROM Vendors
ORDER BY vend_name;

📌 날짜와 시간 조작 함수

  • 날짜와 시간은 각 DBMS 마다 특별한 특성을 지닌 데이터형을 사용한다.
  • 날짜와 시간 값은 물리적인 저장공간을 절약할 수 있고, 효율적이면서 빠르게 정렬되거나 필터링 되도록 특별한 형식으로 저장된다.
  • 보통 날짜와 시간을 저장하는데 사용하는 내부 데이터 형식은 여러분의 응용 프로그램에서는 사용할 수 없는 형식이므로, 날짜 또는 시간을 읽거난 조작하기 위해서는 날짜와 시간 함수가 필요하다.
  • 이 때문에 날짜와 시간 조작 함수는 SQL 언어에서도 매우 중요한 기능을 차지하지만, 날짜와 시간 조작 함수는 일관성이 매우 적고, 각 DBMS 마다 호환이 거의 되지 않는다.
SELECT order_num
FROM Orders
WHERE EXTRACT(year FROM order_date) = 2020;

📌 수치 조작 함수

  • 수치 조작 함수는 수치 데이터를 조작한다.
  • 대형 DBMS에서 지원하는 수치 조작 함수는 대부분 비슷하다.
  • 자주 사용되는 수치 조작 함수
함수설명
ABS()숫자의 절대값을 반환한다.
COS()숫자의 코사인값을 반환한다.
EXP()숫자의 지숫값을 반환한다.
PI()숫자의 파이값을 반환한다.
SIN()숫자의 사인값을 반환한다.
SQRT()숫자의 제곱근을 반환한다.
TAN()숫자의 탄젠트값을 반환한다.
profile
목적 있는 글쓰기

0개의 댓글