1. view : 많이 사용되는 select 문을 저장해놓은 가상의 테이블
create view empLogin(id, pass) as select ename, empno from emp;
--> 오류 발생
-- 원래 오라클의 객체를 부를 때는 스키마이름.객체명으로 불러야 한다.
-- 스키마 이름 : 소유자 이름
create view empLogin(id, pass) as select ename, empno from hr.emp;
select * from empLogin;
2. data dictionary : 데이터 사전
-- 데이터베이스의 구성 정보를 저장하는 시스템 테이블
-- system catalog, meta data 라고 한다.
-- 누구나 읽을 수 있지만 아무도 바꿀 수 없다. SQL을 실행하고 DBMS 가 자동 갱신
-- 이 정보는 빠른 처리를 위해 DBMS가 처리하기 편한 기호로 저장 -> 사람은 이해 불가능
-- 대신 사용자가 이해할 수 있도록 데이터 사전에 대한 뷰를 제공한다.
3. 뷰의 종류
-- dba_XXXX : DBA만 접근 가능, 모든 객체에 대한 정보
-- all_XXXX : 자신이 소유 또는 접근 가능한 객체에 대한 정보
-- user_XXXX : 자신이 소유한 객체에 대한 정보
-- 대표적인 뷰 : tables, sequences, indexes, views....
-- 유저에 대한 정보 : dba_users, user_users;
-- 테이블 스페이스에 대한 정보 : dba_data_files;
4. 테이블 스페이스 : 테이블, 뷰, 인덱스 등이 만들어지는 저장 위치
select * from dba_data_files;
1) 테이블 스페이스 지우기
drop tablespace hoonzzang INCLUDING contents and datafiles;
-- drop tablespace만 하면 테이블스페이스만 지운다 -> 파일은 수동으로 지운다
-- 테이블스페이스, 내용, 저장파일까지 다 지우려면 위와 같이 한다.
2) 테이블 스페이스 만들기
create tablespace summer datafile 'd:/summer.dbf' size 10m;
3) 테이블 스페이스를 지정해서 사용자 만들기
drop user happy cascade;
create user happy identified by day default tablespace summer;
select * from dba_users;
4) happy에게 role 주기 (role : 권한들의 집합. connect, resource는 미리 만들어진 롤)
grant connect, resource to happy;
5) happy 삭제
drop user happy; -- 실패.
drop user happy cascade;
-- 유저를 삭제하기 위해 테이블까지 삭제했다.
-- 테이블을 지우면 바로 지우지 않고 휴지통에 집어넣어 select * from tab 할 때 지저분
purge recyclebin;
drop tablespace summer including contents and datafiles;
* 좀 더 상세한 옵션으로 테이블 스페이스 만들기
create tablespace summer datafile 'd:/summer.dbf' size 20m
autoextend on next 10m maxsize 200m;
create temporary tablespace jackup tempfile 'd:/jackup.dbf' size 20m
autoextend on next 10m maxsize 200m;
-- 작업 테이블스페이스는 alter database로 지정. 유저가 아니라 시스템에 지정
alter database default temporary tablespace jackup;
select * from dba_users;
5. 테이블 명령어
--자신의 유저 정보를 확인하시오
select * from user_users;
-- 테이블을 만들자.
create table sample (
num number(4), -- 정수, 실수를 아우르는 숫자형
title nvarchar2(50), -- utf-8로 한글을 처리하는 문자 자료형(4000바이트 최대 길이)
content nvarchar2(1000), -- nvarchar2의 최대 글자수 : 1333자. (CLOB 자료형 : 1333자보다 큰 자료형을 처리할 때)
calendar date default sysdate -- 자바에서 처리할 떄 javax.sql.Date 나 Timestamp를 사용
);
-- 자료 삽입
insert into sample(num, title, content) values(1,'첫글', '치즈케익');
-- 자료 조회
select * from sample;
-- 다른 접속으로 결과를 확인하면 행이 출력되지 않는다. insert 를 하면 데이터가 추가되지만
-- 실제로 저장하려면 commit; 명령을 통해 저장하라고 지시해야 한다.
-- DDL(create , alter, drop)은 자동 커밋된다. DML을 commit명령으로 커밋해야 한다.
-- jdbc의 경우는 DML도 auto commit 하므로 커밋을 끄고 수동작업을 해야 한다.
commit;
[system 계정]
-- 1. spring, jackup 테이블 스페이스를 삭제하시오.
drop tablespace summer;
drop tablespace jackup ;
-- 2. userData 테이블스페이스를 기본 50메가, 최대 400메가, 10메가씩 증가하도록 만드시오
create tablespace userData datafile 'd:/userData.dbf' size 50m autoextend on next 10m maxsize 400m;
-- 3. userTemp 임시 테이블 스페이스를 기본 50메가, 최대 400메가, 10메가씩 증가하도록 만드시오.
create temporary tablespace userTemp tempfile 'd:/userTemp.dbf' size 50m autoextend on next 10m maxsize 400m;
-- 4. 비밀번호 dog를 가진 migkey 사용자를 생성하시오.
create user migkey identified by dog;
grant connect, resource to migkey;
-- 5. 밍키의 테이블 스페이스를 userData로 지정하고 시스템 임시 테이블 스페이스를 userTemp로 하시오.
alter database default temporary tablespace userTemp;
select * from dba_users;
alter user migkey default tablespace userData;
[migkey 계정]
-- 6. .밍키로 접속하여 empno, ename, mgr, job, sal, comm, hiredate, deptno로 구성된 emp 테이블을 만드시오.
create table emp(
empno number(3),
ename nvarchar2(10),
mgr number(3),
job nvarchar2(10),
sal number(10),
comm number(10),
hiredate date default sysdate,
deptno number(2)
);
-- 7. 테이블에 행을 한 개 삽입하고 저장하시오.
insert into emp (empno, ename, mgr, job, sal, comm, deptno) values (101, '서하림', 301, '수습', 3000000, 500000, 10);
select * from emp;
commit;
drop table emp;
'개발메모장' 카테고리의 다른 글
HTML 기본예제2 (0) | 2014.12.18 |
---|---|
html 기본 예제 (0) | 2014.12.18 |
순위, 그룹(cube, rollup), Grouping (0) | 2014.12.18 |
다중컬럼 서브쿼리 (0) | 2014.12.18 |
상관관계 서브쿼리, 복수행 서브쿼리 (0) | 2014.12.18 |