Oracle 서버에서 포인터를 사용하여 행의 검색 속도를 높이기 위해 사용하는 Object
Oracle 서버가 자동으로 사용하고 유지 관리함.
WHERE절이나 조인조건에서 자주 사용되는 컬럼인 경우 인덱스 생성 시 성능에 도움이 됨.
테이블이 작거나 자주 갱신되는 컬럼 또는 자주 사용하지 않는 컬럼에는 인덱스 생성 권장하지 않음.
사용방법 : x
정의방법 : create index, alter index, drop index
create index emp_lname_idx
on employees(last_name);
create index dept_dname_idx
on departments(department_name);
select table_name, index_name from user_indexes;
drop index emp_lname_idx;
create synonym emps
for employees;
drop synonym [동의어명];
• Dictionary에는 DB관리에 필요한 모든 정보가 저장되어있다.
• DBA는 Dictionary의 정보를 이용하여 효율적인 데이터베이스 운영을 위해 필요한 정보를 획득할 수 있다.
• 일반 사용자 및 Application 개발자에게도 데이터베이스에 대한 중요한 정보를 제공한다.
select cc. column_name, c.constraint_name, c.constraint_type, c.search_condition,c. r_constraint_name
from user_constraints c join user_cons_columns cc
on c.constraint_name = cc.constraint_name
where lower(c.table_name) = lower('&t_name');
/home/oracle/cons2.sql로 저장
-- 1번
select sname "학생이름", sno "학번"
from student
where sname = '김순미';
-- 2번
select s.sname "학생이름", count(e.cno) "수강과목수"
from enrol e join student s
on e.sno = s.sno
where s.sname = '이홍근'
group by s.sno;
-- 3번
select c.cname "과목명", s.sname "학생이름"
from course c join enrol e
on c.cno = e.cno
join student s
on e.sno = s.sno
where c.cname = '데이터베이스';
-- 4번
select c.cname "과목명", count(e.sno) "수강학생수"
from enrol e join course c
on e.cno = c.cno
group by c.cname;
-- 5번
select sno "학번", count(if(credit = 'A+', 1, null)) "수강과목수"
from enrol
group by sno;