문자 함수

 

*문자 함수

-문자 데이터를 입력하여 문자나 숫자를 결과로 반환하는 함수

 

*문자 함수의 종류

-대소문자 변환 함수

-문자조작 함수

-문자열 길이반환 함수

 

[표6.1] 대소문자 변한 함수의 종류와 사용 예

 

단일 행 함수 사용법

 

*단일 행 함수 사용법

 function_name(column | expression, [arg1, arg2, . . . ])

 

 

-function_name : 단일 행 함수 이름

-column : 칼럼 이름

-expression : 문자열 또는 표현식

-arg1, arg2 : 함수의 인수(상수, 변수, 칼럼 이름, 표현식)

 

 

 

단일 행 함수

 

*단일 행 함수

-데이터 값을 조작하는데 주로 사용

-행별로 함수를 적용하여 하나의 결과를 반환하는 함수

 

*단일 행 함수의 종류

 

SQL 함수의 개념

 

*SQL 함수

-칼럼의 값이나 데이터 타입의 변경하는 경우

-숫자 또는 날짜 데이터의 출력 형식 변경하는 경우

-하나 이상의 행에 대한 집계(aggregation)를 하는 경우

 

*SQL 함수의 유형

-단일 행 함수 : 테이블에 저장되어 있는 개별 행을 대상으로 함수를 적용하여 하나의 결과를 반환하는 함수

-복수 행 함수 : 조건에 따라 여러 행을 그룹화하여 그룹별로 결과를 하나씩 반환하는 함수

 

 

실습

 

-보너스를 받는 모든 사원에 대해서 이름, 급여 그리고 보너스를 출력하는 질의문을 형성하라. 단 급여와 보너스에 대해서 내림차순 정렬

 SQL> SELECT ename, sal, comm

        2 FROM emp

        3 WHERE comm is not null

        4 ORDER BY sal DESC, comm DESC;

 

-보너스가 급여의 20% 이상이고 부서번호가 30인 많은 모든 사원에 대해서 이름, 급여 그리고 보너스를 출력하는 질의문을 형성하라.

 SQL> SELECT ename, sal, comm

        2 FROM emp

        3 WHERE comm>=sal*0.2 and deptno=30;

 

 

 

실습

 

-부서 10과 30에 속하는 모든 사원의 이름과 부서번호를 이름의 알파벳 순으로 정렬되도록 질의문을 형성하라.

SQL>SELECT ename, deptno

      2 FROM emp

      3 WHERE deptno IN(10,30)

      4 ORDER BY ename;

 

 

-1982년에 입사한 모든 사원의 이름과 입사일을 구하는 질의문은?

SQL> SELECT ename, hiredate

       2 FROM emp

       3 WHERE hiredate LIKE '%82';

 

 

 

 

다중 열에 의한 정렬

 

-Order by list에 명시한 순서가 정렬되는 순서임

-Select list에 없는 열로도 정렬은 가능

-모든 사원의 이름과 급여 및 부서번호를 출력하는데, 부서 번호로 결과를 정렬한 다음 급여 대해서는 내림차순으로 정렬하라.

 

 SQL> SELECT ename, job, deptno, sal

       2 FROM emp

       3 ORDER BY deptno, sal DESC;

 

 

 

order by 절 사용 시 정렬 기준의 원칙

 

-디폴트는 오름차순 정렬이 원칙

-NUMBER TYPE은 가장 적은 값부터 출력됨(예:1-99)

-날짜 타입은 가장 빠른 값부터 출력됨(예:80-12-17,  81-02-20, 82-01-23, ..)

-문자 값은 알파벳 순서로 출력됨(예:특수문자-A_Z_a_z)

-Null값은 오름차순에서는 제일 나중에 그리고 내림차순에선느 제일 먼저 출력됨

-SELECT 절에 포함되지 않는 컬럼도 정렬을 하기 위한 ORDER BY절에 올수 있음

 

 

+ Recent posts