#듀얼테이블 (dual table)
-작업을 수행하다보면 테이블이 없거나 처리가 어려운경우가 발생한다
- 듀얼 테이블은 사용자가 만드는것이 아닌 오라클 내장 기능이다.
-기본생성
select * from dual;
-테이블이 없지만 간단한 결과처리
select 1234 + 4567 from dual ;
#단일행 함수
-문자열의 덧셈
select concat('안녕,'하세요') from dual; ---> 안녕하세요
select '안녕'||'하세요' from dual ; --> 안녕하세요
ex)
select * from product where name like concat('바','%');
select * from product where name like '%' || '바' || '%';
※ 오라클에서 || 는 문자열 합성도구 자바의 or연산과 햇갈리지말자
-문자열 변환
select upper('hello') from dual; ( 대문자)
select lower('hello') from dual; (소문자 )
select initcap('hello java') from dual ; (단어의 첫글자만 대문자)
--> Hello java
ex)
select * from product where name ='banana';
select * from product where lower(name) = lower('banana');
select * from product where upper(name) = upper('banana');
- 문자열 자르기
select substr('abcdefg',2) "결과" from dual;
(주어진 문자열의 2번째부터 출력하겟다.)
--> bcdedfg
select substr('ABCDEFG',2,3) "결과" from dual;
(주어진 문자열에 2번째부터 3개를 출력하겟다)
--> bcd
-문자열 치환
select replace('오늘 점심은 치킨이다 !' , '치킨' ,'중국집')from dual;
--> 여기서 null을 처리하는것이 아닌 오라클은 nvl을 통하여 null을치환한다.
-nvl : null을 치환
select nvl(null,'hello') from dual;
--> null 이라면 hello로 치환하여 보여준다
ex) select member_id, member_pw, member_nick, member_birth ,
nvl( member_email, '없음')" member_email " ,nvl( member_phone ,'없음')" member_phone" ,
member_join, member_point, member_grade from member;
저 붉은색이 null 이라면 없음으로 치환하여 보여준다
-length 문자열의 길이 계산
select length('abcdefg') "길이" from dual;
집계 함수 :주어진 데이터를 취합하여 결과를 만들어 내는 함수
ex)가장 비싼 상품의 가격,모든 회원의 포인트 합계
- 최대 최소 합계 평균 개수
ex)
select max(price) "최대가격" from product;
select min(price) "최소가격" from product;
select sum(price) "총가격" from product;
select count(*) "상품갯수" from product;
select avg(price) "평균가격" from product;
만약 최대가격인 상품의 이름을 보고싶다면 어떻게해야하냐? 이부분은 서브쿼리 정리부분에서 적도록하겟다.
'[DBMS] > - Oracle' 카테고리의 다른 글
[Oracle]정렬 (Sort) asc/desc (0) | 2022.05.30 |
---|---|
[Oracle]서브쿼리(subQuery) (0) | 2022.05.30 |
[Oracle]테이블 조회 ( select) (0) | 2022.05.29 |
[Oracle]날짜데이터 다루기 (0) | 2022.05.29 |
[Oracle]제약조건 (0) | 2022.05.29 |
댓글