DataBase

<DataBase_231107화> 시퀀스, 뷰, 인덱스

Technoqueen_X 2023. 11. 7. 16:54
728x90
반응형

<시퀀스>


create sequence s_deptno --101부터 3씩 증가해서 999까지 (예를 들면 주문번호 생성할 때, 기본키 컬럼-노사이클)
increment by 3 --증가치(증가치가 -이면 maxvalue가 minvalue가 된다)
start with 101 --초기치
maxvalue 999; --최대치

insert into dept(deptno, dname, loc) values(s_deptno.nextval, '생산부', '제주');
insert into dept(deptno, dname, loc) values(s_deptno.nextval, '생산2부', '제주');

select s_deptno.currval from dual; -- 현재 카운트 정보를 보는 것.

-----------------------------------------------

<Data Dictionary View>-데이터사전뷰 : 오라클의 모든정보

all_ : 모든세션 접근
user_ : 현재 세션의 모든 정보
dba_ : 모든 세션의 모든 정보 (관리자만 접근)
V$ : 동적 성능뷰 (관리자만 접근)

conn/as sysdba
desc v$database

select * from all_users;

desc all_users;
desc user_users;
desc user_tables;
desc dba_users;

어떤 테이블에 어떤제약조건이 어떤 컬럼에 있는지 보는 뷰
select CONSTRAINT_TYPE, TABLE_NAME, CONSTRAINT_NAME, CONSTRAINT_TYPE
from USER_CONSTRAINTS
where TABLE_NAME='STUDENT';

ex)
select table_name, constraint_name, constraint_type 
from user_constraints;

desc user_cons_columns

set linesize 120
col column_name format a20
select 
uc.constraint_name, uc.constraint_type, uc.table_name, ucc.column_name
from user_constraints uc, user_cons_columns ucc
where uc.constraint_name = ucc.constraint_name;

-----------------------------------------------

<색인, index> = 행들의 주소록 (색인을 사용하지 않는건 full table scan)

기본 normal 인덱스는 b*tree 인덱스. 중복성 떨어지고, 빈도수 낮을 때 

select table_name, index_name, index_type from user_indexes;

select table_name, index_name, column_name from user_ind_columns;

create index i_sawon_sabun on sawon(sabun); --기본 normal 인덱스는 b*tree 인덱스. 중복성 떨어지고, 빈도수 낮을 때 

create bitmap index i_sawon_sasex on sawon(sasex); - bitmap 인덱스, 중복성많고, 빈도수 높을 때

create index i_sawon_sapay on sawon(sapay*1.1); --function-based 컬럼에 수식을 포함하는 경우의 인덱스

create index i_sawon_samgr on sawon(samgr) reverse; --역방향 인덱스

create index i_sawon_sahire on sawon(sahire desc)--내림차순 인덱스

728x90
반응형