충청권 ICT 교육 - 내장함수 + 연산

김재현·2022년 11월 13일
0

충청권 ICT 교육

목록 보기
5/5

연산자 & 내장함수

목표

  • 산술/비교/논리 연산자를 사용할 수 있다.
  • 내장함수 사용할 수 있다.
  • 문자열을 다룰 수 있다.

산술 연산자

SQL에서 숫자 리터럴에 사용할 수 있는 연산자

  • 데이터의 형식(정수/실수/날자 ..)에 따라 결과값이 다를 수 있다.

예시

  • book 테이블의 price에 0.05 곱하기

    SELECT price * 0.05 FROM book;

  • book 테이블의 price를 2로 나눔

    SELECT price / 2 FROM book;

  • book 테이블의 price를 2로 나누기 100 곱하기
    - 우선순위를 위해 ( ) 사용

    SELECT (price / 2) * 100 FROM book;

비교 연산자

SQL 비교 리터럴 및 WHERE 절의 값의 비교에 사용하는 연산자

  • 비교 연산자 사용 시 연산 결과 조건이 성립한 경우
    • 참 : 1, 거짓 : 0 값 반환

논리 연산자

여러 리터럴 조건을 조합해 복합 조건을 나타낼 수 있음

  • 참 : 1, 거짓 : 0 값 반환.
  • AND
    • 연결된 두 구문이 모두 참이여야 참 반환
    • 연결된 두 구문 중 하나만 거짓이어도 거짓 반환
  • OR
    • 연결된 두 구문 중 하나만 참이어도 참 반환
    • 연결된 두 구문이 모두 거짓이여야 거짓 반환
  • NOT
    • 비교 연산의 결과를 반대로 전환해줌.

내장함수

  • 내장함수와 ALIAS 사용 알아보기

내장함수는 DBMS에서 자주 사용하는 기능을 제공하는 것.

  • 쿼리에 내장함수를 활용해 질의할 수 있다.
    • SUM, COUNT, AVERAGE 등
SELECT 내장함수();

SELECT 내장함수(column)
FROM 테이블이름;

몇 가지 내장함수

  • 값의 합, 평균, 개수, 최대, 최소 값에 대한 함수를 집계 함수라고 한다.
  • 다른 함수와 다르게, COUNT 함수는 *같이 와일드카드 값이 들어갈 수 있다.
고객이 주문한 도서의 총 판매액 구하기
SELECT  SUM(saleprice)
FROM    Orders;
  • 단, 내장함수 결과 출력시 컬럼 이름이 내장함수 이름으로 나타난다.
  • Alias의 AS절로 정리할 수 있다.

ALIAS

  • SQL 구문에서 대상을 다른 이름으로 사용.
    • Column Alias : AS 절을 붙여 컬럼 이름을 사용
    • Table Alias : 테이블 이름 뒤에 Alias 이름 사용
SELECT  column_name AS column_alias,
        column_name AS column_alias,
        ...
FROM    table_name table_alias,
        table_name, table_alias,
        ...;

내장함수와 Alias 사용 예시

  • 고객이 주문한 도서의 총 판매액을 '총매출'로 구하기.
SELECT SUM(saleprice) AS 총매출 
FROM    Orders;
  • 고객의 주문한 도서의 평균 판매액을 '매출평균'으로 구하기
SELECT AVG(saleprice) AS 매출평균
FROM    Orders;
  • 의미 있는 열 이름을 출력하고 싶다면, 속성이름의 별칭을 지칭하는 AS 키워드를 사용해 열 이름을 부여할 수 있음

기타 내장함수

POWER (숫자, 제곱);

  • SELECT POWER(2,1), POWER(2,2), POWER(2,3);
  • 2의 1, 2, 3 제곱 구하기

ROUND(값, 소수점);

  • SELECT ROUND(12345.6789,1), ROUND(12345.6789,2), ROUND(12345.6789,-1)
  • 값(12345.6789)의 소수점 1,2 번째 자리와 -1 자리(1의 자리) 구하기.

MOD(값, 값);

  • SELECT MOD(9,2) FROM dual;
  • dual table은 시스템에서 제공하는 가상의 테이블로, 함수 등을 쿼리로 계산 시 사용한다.
  • CEIL(), FLOOR() 등이 있다.

문자열 다루기

문자열 결합 할 때는 CONCAT() 함수를 사용

  • 컬럼과 문자열, 문자열과 문자열 결합.
CONCAT("문자리터럴", "문자리터럴", ...);
  • 사용 예시
    • bookname 앞에 접두사로 도서명 : 을 붙이고 싶을 때.
SELECT CONCAT ("도서명 : ", bookname)
FROM book;

문자열 길이 함수

  • LENGTH(문자열) : 문자열의 Byte 길이
  • CHAR_LENGTH(문자열) : 문자의 개수

공백 제거 함수

  • TRIM : 문자열 좌우 공백 제거
    • SELECT TRIM (' 안녕하세요 ');
    • 안녕하세요
  • LTRIM : 좌측 공백 제거
    • SELECT LTRIM (' 안녕하세요 ');
    • 안녕하세요
  • RTRIM : 우측 공백 제거
    • SELECT RTRIM (' 안녕하세요 ');
    • 안녕하세요
  • LEADING : 문자열 좌측 문자 제거
    • SELECT TRIM(LEADING '안' FROM ' 안녕하세요안 ');
    • 녕하세요안
  • TRAILING : 문자열 우측 문자 제거
    • SELECT TRIM(TRAILING '안' FROM ' 요안녕하세요 ');
    • 요안녕하세

문자 개수 함수

  • Byte 단위 개수와 문자 개수 함수를 구분해야한다.

대/소문자 변환 함수

  • 알파벳 문자를 대문자/소문자로 변환
UPPER(문자열) : 대문자 변환
LOWER(문자열) : 소문자 변환

결합 함수

  • 문자열과 문자열 결합
CONCAT (문자열, 문자열, ...) : 공백없이 문자열들만 결합.

CONCAT_WS (구분자, 문자열, 문자열, ...) : 구분자로 문자열을 결합

SELECT GROUP_CONCAT (묶을 컬럼[, 데이터1, 데이터2, ....])
FROM 테이블명
  • 컬럼들을 지시해서 해당하는 컬럼들의 문자열을 어떤 식으로 결합해서 출력해야할지 지시할 때 GROUP_CONCAT사용. 여러 컬럼들을 동시에 할 때.
  • 컬럼에서 NULL이 아닌 모든 값을 ,(콤마)로 합쳐 하나의 문자열로 가져오는 함수
  • 컬럼에 추가로 데이터 1, 2, ... 를 붙인 다음 결합

문자열 추출 함수

  • SUBSTRING(문자열, 시작지점) : 문자열을 시작지점에서부터 모두 추출
    • SELECT SUBSTRING ('안녕하세요', 3);
    • 3번째 문자 부터 전체 문자 추출. 하세요
  • SUBSTRING(문자열, 시작지점, 길이) : 문자열을 시작지점에서부터 길이만큼 추출
    • SELECT SUBSTRING ('안녕하세요', 2, 3);
    • 두번째 글자인 부터 3개의 문자 추출. 녕하세
  • SUBSTRING_INDEX(문자열, 구분자, 구분자index) : 문자열을 구분자로 구분하고, index 개수만큼 추출.
    • SELECT SUBSTRING_INDEX('사과, 바나나, 딸기, 포도', ',', 3);
    • 사과, 바나나, 딸기
    • SELECT SUBSTRING_INDEX('사과, 바나나, 딸기, 포도', ',', -3);
    • 바나나, 딸기, 포도
  • LEFT(문자열, count) : 문자열에서 왼쪽을 기준으로 일정 갯수를 가져옴
  • RIGHT(문자열, count) : 문자열에서 오른쪽을 기준으로 일정 갯수를 가져옴
  • MID(문자열, start, count) : 문자에 지정한 시작 위치를 기준으로 일정 개수를 가져오는 함수
    • SUBSTRING()과 동일.

0개의 댓글