SQL-함수

Aiden·2020년 7월 15일
0

애이콘 아카데미

목록 보기
1/3

DQL(Data Query Language) : 질의어 Select

INITCAP(email)- 첫글자만 대문자로 출력

LOWER(column|expression) - 모든 문자를 소문자로 출력.

UPPER(컬럼명|표현식)- 모든 문자를 대문자로 출력

테이블에 저장된 이름이 대문자로 저장되어있는지 또는 소문자로 저장되어 있는지 또는 대소문자가 혼합되어 있는지 정확하지 않는 경우에 유용하게 사용될수 있다.

select EMPNO, ENAME, LOWER(JOB), DEPTNO FROM EMP WHERE LOWER(ename) = 'scott';

SELECT EMPNO, ENAME, JOB, DEPTNO FROM EMP WHERE ENAME = UPPER('scott');

select empno, ename, job, concat(ENAME, JOB) from emp where empno = 7369;

LPAD 함수

  • 왼쪽에 문자열을 끼워 넣는 역할을 한다. n은 반환되는 문자열의 전체 길
    이를 나타내며 첫 번째 문자열이 n보다 클 경우 첫 번째 문자열을 n개 문자
    열만큼 RETURN 한다.
    select ename, lpad(ename, 15, ''), sal, lpad(sal, 10, '')
    from emp
    where deptno = 10;

RPAD 함수

  • LPAD와 반대로 오른쪽에 문자열을 끼워 넣는 역할을 한다.
    select ename, rpad(ename, 15, ''), sal, rpad(sal, 10, '')
    from emp
    where deptno = 10;

CONCAT 함수

  • 두 개의 문자열을 합성합니다. CONCAT는 두 개의 매개변수만 사용 가능.
  • CONCAT 함수는 Concatenation의 약자로 두 문자를 결합하는 역할.
  • || 연산자와 같은 역할
    select empno, ename, concat(substr(hiredate,1,2),'년도 입사') as "입사년도"
    from emp;
    select empno, ename, job, concat(ENAME, JOB) from emp where empno = 7369;

SUBSTR (column|expression,1,8 )- m번째 자리부터 길이가 n개인 문자열을 반환한다. m이 음수일 경우에는

뒤에서 m번째 문자부터 반대 방향으로 n개의 문자를 RETURN 한다

select empno, ename, concat(substr(hiredate,1,2),'년도 입사') as "입사년도"
from emp;

LENGTH(column|expression) -

select empno, ename, length(ename), sal, length(sal)
from emp
where deptno = 20;

select empno, ename, length(ename) as "자릿수"
from emp
where deptno = 20
order by 자릿수 desc;

REPLACE 함수

  • 특정 문자열을 치환하는 함수 .
    select replace('000101-3123456', substr('000101-3123456',9),'**') from dual;
    select substr('000101-3123456',9) from dual;

select replace('000101-3123456', substr('000101-3123456',9),'**') from dual;

 INSTR 함수

  • 문자열이 포함되어 있는지를 조사하여 문자열의 위치를 RETURN 한다.
  • 지정한 문자열이 발견되지 않으면 0이 반환 됩니다. 문자/시작위치/몇번째
    select ename, instr(ename,'L') e_null, instr(ename,'L',1,1) e_11,
    instr(ename,'L',1,2) e_12, instr(ename, 'L',4,1) e_31, instr(ename,'L',4,2)e_42
    from emp;

 LTRIM함수

-문자열의 첫 문자부터 확인해서 지정 문자가 나타나는 동안 해당 문자를 제거.
-지정문자가 생략되면 공백문자가 기본값이다.
select ltrim('MILLER','M') from dual;

select ename, job, ltrim(job, 'A'), sal, ltrim(sal,1)
from emp;

 RTRIM함수

  • 문자열의 끝 문자부터 확인해서 지정 문자가 나타나는 동안 해당 문자를 제거.
    -지정문자가 생략되면 공백문자가 기본값이다
    select ename, job, rtrim(job, 'T'), sal, rtrim(sal,0)
    from emp
    where deptno = 10;

TRIM함수

-문자열에서 머리말,꼬리말 또는 양쪽에 있는 지정 문자를 제거.
( leading | trailing | both 가 생략되면 both가 기본 )

  • 제거할 문자를 입력하지 않으면 기본적으로 공백이 제거 된다.
    select trim(0 from 00093298479238400) "trim example" from dual;
    select empno, job, trim(leading 'S' from job) as LEADING,
    trim(TRAILING 'N' from job) as "trailing" from emp where empno = 7844;
    select length(trim(' hello ')) from dual;

select sysdate from dual;

 CEIL 함수 (올림값)

  • 주어진 숫자보다 크거나 같은 최소 정수 리턴.

select ceil(10.1) from dual;--올림

 FLOOR 함수 (버림값)

  • 주어진 숫자보다 작거나 같은 최대 정수 리턴

select floor(10.7) from dual;--버림

 MOD 함수

  • 숫자의 나머지를 구하는 함수.
  • n으로 나누어 남은 값을 반환한다. n이 0일 경우 그 자체를 반환.

select mod(10,3) from dual;--나머지

ROUND 함수

-숫자를 소수점 n자리에서 반올림한다. 생략하면 기본값은 0.
-n이 양수이면 소수 자리를, 음수이면 정수 자리를 반올림한다.
select round(4567.678),round(4567.678,0),round(4567.678,1), round(4567.678,2), round(4567.678,-2)
from dual;

0개의 댓글