반응형
COUNT(*)와 COUNT(컬럼)
COUNT(*)와 COUNT(1)은 동일한 기능을 하고 있다. 하지만 COUNT(컬럼)과는 약간의 차이점이 있다.
COUNT(*)은 NULL값을 포함한 모든 행의 갯수를 나타낸다
COUNT(컬럼)은 NULL값은 제외한 행의 갯수를 나타낸다.
SELECT COUNT(*) FROM EMP; -- 전체 사원수
기본적인 내장 함수
평균값을 나타내는 AVG(컬럼)
SELECT AVG(age) FROM TEST; -- 평균나이
이때 평균나이가 소수점 이하로 떨어져 실수가 될 수 있는데 그럴때는 아래 코드처럼 하면된다.
SELECT ROUND(AVG(age)) FROM TEST; -- 반올림 : ROUND()
SELECT CEIL(AVG(age)) FROM TEST; -- 올림 : CEIL
SELECT FLOOR(AVG(age)) FROM TEST; -- 내림 : FLOOR
컬럼의 값들중 가장 큰 값과 작은 값을 나타내는 함수도 있다.
SELECT MAX(age) FROM TEST; -- 최고령
SELECT MIN(age) FROM TEST; -- 최연소
-- MAX()는 최대값을 MIN()은 최소값을 출력해준다.
오라클에서는 NULL값인 데이터를 다른 데이터로 출력을 할 수 있는 함수가 있다.
SELECT NVL(age, 0) FROM TEST;
// age컬럼에서 NULL값을 가진 데이터를 0으로 변환시킨다.
다른 데이터타입을 문자열로 바꿔주는 변환함수가 있다. 형식보다는 어떤 기호, 알파벳이 무슨 의미를 가지고 있는지 알면 기호를 사용해 여러가지 조합을 하여 사용할 수 있다.
-- TO_CHAR
SELECT TO_CHAR(SYSDATE, 'yyyy') FROM DUAL; -- 현재날짜에서 4자리 년도 출력
SELECT TO_CHAR(SYSDATE, 'year') FROM DUAL; -- 현재날짜에서 영어로 년도 출력
SELECT TO_CHAR(SYSDATE, 'month') FROM DUAL: -- 현재 날짜에서 월 출력
SELECT TO_CHAR(SYSDATE, 'mm') FROM DUAL; -- 현재 날짜에서 2자리 월 추출 (01, 02...)
SELECT TO_CHAR(SYSDATE, 'dd') FROM DUAL; -- 현재날짜에서 일 출력
SELECT TO_CHAR(SYSDATE, 'hh') FROM DUAL; -- 시간 2자리(1~12)
SELECT TO_CHAR(SYSDATE, 'hh24') FROM DUAL; -- 시간 2자리(1~24)
SELECT TO_CHAR(SYSDATE, 'mi') FROM DUAL; -- 분 2자리 // mm이 아니라 mi이다 주의!
SELECT TO_CHAR(SYSDATE, 'ss') FROM DUAL; -- 초 2자리
문자함수
SQL 뿐만 아니라 다른 언어에서도 기본적으로 지원해주는 함수와 비슷한 것들이 많다.
SELECT CONCAT('apple', 'banana') FROM DUAL;
> applebanana // 문자를 합치는 함수
SELECT INITCAP('apple') FROM DUAL;
> Apple // 첫글자만 대문자로 출력한다
SELECT LOWER('APPLE') FROM DUAL;
> apple // 문자를 소문자로 출력한다.
SELECT UPPER('apple') FROM DUAL;
> APPLE // 문자를 대문자로 출력한다.
SELECT LENGTH('happy day') FROM DUAL;
> 9 // 문자의 길이를 출력한다.
SELECT RPAD('12345', 10, '*') FORM DUAL;
> 12345***** // RPAD(표시될문자, 총문자길이, 표시될기호)
SELECT LPAD('12345', 10, '*') FROM DUAL;
> *****12345 // LPAD(표시될문자, 총문자길이, 표시될기호)
반응형
'DATABASE > Oracle' 카테고리의 다른 글
[ORACLE] CONSTRAINT 제약조건 생성,삭제, PRIMARY KEY, UNIQUE, NOT NULL, FOREIGN KEY, CHECK, DEFAULT (0) | 2020.02.05 |
---|---|
[ORACLE] 기본적인 OUTER JOIN (외부 조인) (0) | 2020.02.04 |
[ORACLE] EQUI JOIN (동등 조인, 등가 조인) (0) | 2020.02.04 |
[ORACLE] 기본적인 테이블 생성하기 (0) | 2020.02.04 |
[ORACLE] ORA-01950 : 테이블스페이스 'USERS'에 대한 권한이 없습니다. (0) | 2020.02.03 |