날짜 형식의 문자열을 날짜로 변환
to_date(날짜형식의 문자열, '패턴')
숫자형식의 문자열을 숫자로 변환
to_number('숫자형식의 문자열') // 잘 안씀
모든 컬럼 값을 모아서 하나로 만드는 일.
group by절과 함께 사용하면 그룹별 집계를 얻을 수 있다.
여러 레코드가 조회하는 컬럼과 함께 사용하면 error가 발생
where절에서 집계함수를 직접 사용할 수 없다.
: 레코드의 총수를 얻을 때 사용. Null인 컬럼은 count에 포함되지 않는다.
count('컬럼명')
합계를 구할 때 사용.
sum(컬럼명)
컬럼의 평균을 구할 때 사용.
avg(컬럼명)
컬럼의 값 중 최고값을 구할 때 사용.
max(컬럼명)
컬럼의 값 중 최저값을 구할 때 사용.
min(컬럼명)
select 컬럼명, 집계함수(일반컬럼명) // 그룹별 집계를 얻기 위한 컬럼. group by절에 포함되지 않는 함수도 사용 가능.
from 테이블명
group by 그룹으로 묶을 컬럼명
ctrl + p : 실행계획
소계 후 전체 합계 출력 //맨 밑에 전체합계
select deptno, count(empno), sum(sal) //소계
from emp
group by rollup(deptno); // 전체 합계 출력

전체 합계 출력 후 소계 출력 //맨 위에 전체합계
select deptno, count(empno), sum(sal)
from emp
group by cube(deptno);

-rollup과 cube는 여러 컬럼이 그룹으로 묶이면 다른 결과를 보여준다.
group by rollup(컬럼명, 컬럼명)

group by cube(컬럼명, 컬럼명)

rank() over( partition by 컬럼명 order by 순위를 설정할 컬럼명 정렬조건(asc, desc))
row_number() over( partition by 컬럼명 order by 순위를 설정할 컬럼명 정렬조건(asc, desc))
월을 더할 때 사용하는 함수
add_months(날짜, 더할 개월수)
두 날짜간의 개월 차이(실수로 결과가 나옴.)
months_between(큰 날짜, 작은 날짜)
dbms_random 패키지 사용
dbms_random.string(생성문자, 자릿수)
-- u - 대문자, l - 소문자, a - 대소문자 합쳐진, x - 영문자와 숫자가 합쳐진, p - 특수문자도 합쳐진
query문안에 select query문 정의하는 문법
단수행, 복수행 서브쿼리 모두 사용할 수 있다.
single-row subquery : 서브쿼리의 조회 결과가 한 행이 나오는 서브쿼리
multi-row subquery : 서브쿼리의 조회 결과가 여러 행이 나오는 서브쿼리
테이블을 복사할 때 사용.
단수행, 복수행 서브쿼리를 모두 사용할 수 있다.
원본 테이블의 제약사항은 복사되지 않는다.(not null조건은 복사된다.)
// 테이블에 설정된 제약사항을 확인하려면 제약사항이 들어있는 dbms에서 운영하는 테이블을 확인해야한다.
DD(Date Dictionary) : dbms가 운영되기 위해 사용하는 테이블.
-개발자는 DML작업을 직접할 수 없다.
-select만 가능.
조회쿼리에 사용되는 컬럼명, 데이터형, 크기, 레코드가 그대로 복사.
create table 테이블명 as (select ,,,,);
다른 컬럼의 값으로 레코드를 추가할 때 사용.
단수행, 복수행 서브쿼리 모두 사용할 수 있다.
insert into 테이블명(컬럼명,,,) values(값,,(
select 컬럼명 from 테이블명 where 검색조건),,, );
insert into 테이블명(컬럼명,,,) (select 컬럼명 from 테이블명);
단수행 서브쿼리만 가능.
다른 컬럼에 존재하는 값으로 변경할 때
where절에 in을 사용하면 복수행 서브쿼리도 사용 가능.
update 테이블명
set 컬럼명 = (select ,,,,),,,,
where 검색조건
단수행 서브쿼리만 가능.
다른 컬럼에 존재하는 값으로 삭제할 때
where절에 in을 사용하면 복수행 서브쿼리도 사용 가능.
delete from 테이블명 where 컬럼명 = (select,,,,);