김갱환
맨땅에 코딩
김갱환
전체 방문자
오늘
어제
  • 분류 전체보기 (239)
    • ⁂ 맨땅에 코딩 (11)
      • : Story (3)
      • : MiniProject 'MyWeb' (1)
      • : Final Project (5)
      • : Josa-Moa 한국어 조사 처리 프로젝트 (1)
    • —————Frontend——————————————.. (0)
    • ⁂ HTML (10)
      • : 기본 익히기 (10)
    • ⁂ CSS (15)
      • : 기본 익히기 (15)
    • ⁂ Java Script (32)
      • : 기본 익히기 (28)
      • : 자바스크립트 라이브러리 (1)
      • : 연습 문제 (3)
    • ⁂ jQuery (11)
      • : 기본 익히기 (11)
    • ⁂ Bootstrap (3)
      • : 기본 익히기 (3)
    • ⁂ TailWind CSS (1)
    • ⁂ AJAX (5)
      • : 기본 익히기 (5)
    • ⁂ Vue.js (3)
      • : 기본 익히기 (3)
    • —————DB : Data Base————————.. (0)
    • ⁂ Oracle DB (27)
      • : 기본 익히기 (24)
      • : 연습 문제 (3)
    • ⁂ MyBatis Framework (15)
      • : 기본 익히기 (15)
    • —————Backend———————————————.. (0)
    • ⁂ Java (62)
      • : 기본 익히기 (42)
      • : JDBC - Java DataBase Conn.. (4)
      • : Crawling (2)
      • : 독학으로 공부하기(과거) (11)
      • : 연습문제 (3)
    • ——————Web————————————————— (0)
    • ⁂ JSP (28)
      • : 기본 익히기 (28)
    • ⁂ Spring FrameWork (15)
      • : Legacy Project (1)
      • : 기본 익히기(Boot 기반) (14)
    • ——————————————————————— (0)
    • ⁂ Error Note (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 코딩 #코딩공부 #프론트앤드 #백앤드 #풀스택개발자
  • HTML공부
  • http에러메세지
  • 풀스택
  • 자바공부
  • 개발자
  • 프론트앤드
  • ErrorPage
  • 코딩
  • 코딩 #코딩공부 #상수 #리터럴 #형변환 #개발자 #자바 #자바공부 #자바독학
  • httperror
  • 백앤드
  • 비트연산자 #코딩공부 #자바공부 #코딩 #자바 #프로그래밍 #개발자
  • 객체지향프로그래밍
  • 코딩공부
  • 연산자 #기본연산자 #코딩 #자바 #독학 #자바공부 #자바연산자
  • 자바
  • 코딩공부 #코딩 #자바 #자바독학 #자바공부 #개발자 #프론트앤드 #백앤드 #풀스택
  • web.xml수정
  • 코딩공부 #자바공부

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
김갱환

맨땅에 코딩

⁂ Oracle DB/: 기본 익히기

[Oracle] #6-3 뷰(View)

2022. 8. 30. 12:22

1. 뷰(View)?

 

1) 정의

 우리가 만든 논리적 형테의 테이블을 하나의 테이블로 저장해서 사용하는 것을 뷰(View)라고 한다.
 테이블에 대한 가상의 테이블로써 테이블처럼 직접 데이터를 소유하지 않고 검색시에 이용할 수 있도록 정보를 담고 있는 객체 테이블 정보의 부분집합이다.

 

2) 사용목적
  - 테이블에 대한 보안기능을 설정해야 하는 경우
  - 복잡하고, 자주 사용하는 질의 SQL문을 보다 쉽고 간단하게 사용해야 하는 경우

 

3) java202207 계정에 대해서 뷰 생성 권한 부여
  - grant create view to java202207
  
4) 뷰 생성 및 수정 형식
   create or replace view 뷰이름   -> replace : 이미 존재하는 뷰의 내용을 수정함
   as [SQL문]

 

 

2. 테이블과 뷰 목록 확인하기

select * from tab;                          -- 모든 객체 종류 확인
select * from tab where tabtype='TABLE';    -- 테이블 목록
select * from tab where tabtype='VIEW';     -- 뷰 목록

 

 

3. 뷰 사용해보기

 

1) 성적테이블에서 필요한 데이터 조회하기

 이전에 만들어두었던 성적 테이블을 사용하여 뷰를 만들어보자.

 성적 테이블의 내용은 아래와 같다.

-- sungjuk 테이블 생성
create table sungjuk(
     sno    int          not null  --일련번호
    ,uname  varchar(50)  not null
    ,kor    int          not null
    ,eng    int          not null
    ,mat    int          not null
    ,tot    int             
    ,aver   int          
    ,addr   varchar(50)            --주소
    ,wdate  date                   --등록일(년월일시분초)
);


● [sungjuk 테이블 입력 데이터]

insert into sungjuk(sno, uname, kor, eng, mat, addr, wdate)
values(sungjuk_seq.nextval,'솔데스크', 90, 85, 95, 'Seoul',sysdate);

insert into sungjuk(sno,uname,kor,eng,mat,addr,wdate)
values(sungjuk_seq.nextval,'무궁화',40,50,20,'Seoul',sysdate);

insert into sungjuk(sno,uname,kor,eng,mat,addr,wdate)
values(sungjuk_seq.nextval,'진달래',90,50,90,'Jeju',sysdate);

insert into sungjuk(sno,uname,kor,eng,mat,addr,wdate)
values(sungjuk_seq.nextval,'개나리',20,50,20,'Jeju',sysdate);

insert into sungjuk(sno,uname,kor,eng,mat,addr,wdate)
values(sungjuk_seq.nextval,'봉선화',90,90,90,'Seoul',sysdate);

insert into sungjuk(sno,uname,kor,eng,mat,addr,wdate)
values(sungjuk_seq.nextval,'나팔꽃',50,50,90,'Suwon',sysdate);

insert into sungjuk(sno,uname,kor,eng,mat,addr,wdate)
values(sungjuk_seq.nextval,'선인장',70,50,20,'Seoul',sysdate);

insert into sungjuk(sno,uname,kor,eng,mat,addr,wdate)
values(sungjuk_seq.nextval,'소나무',90,60,90,'Busan',sysdate);

insert into sungjuk(sno,uname,kor,eng,mat,addr,wdate)
values(sungjuk_seq.nextval,'참나무',20,20,20,'Jeju',sysdate);

insert into sungjuk(sno,uname,kor,eng,mat,addr,wdate)
values(sungjuk_seq.nextval,'홍길동',90,90,90,'Suwon',sysdate);

insert into sungjuk(sno,uname,kor,eng,mat,addr,wdate)
values(sungjuk_seq.nextval,'무궁화',80,80,90,'Suwon',sysdate);

-- 총점(tot), 평균(aver) 넣기
update sungjuk set tot=kor+eng+mat, aver=(kor+eng+mat)/3;

 

 이 성적 테이블에서 서울, 제주 지역에 사는 사람들의 이름, 국영수 성적, 주소를 조회해보았다.

-- 주소가 서울, 제주 지역의 이름, 국, 영, 수, 주소를 조회하시오
select uname, kor, eng, mat, addr
from sungjuk
where addr in ('Seoul', 'Jeju');

 

 이때 이 테이블을 우리는 필요에 따라 AA 테이블로 사용할 때가 있었다.

 이 테이블을 저장해두고 필요할 때마다 사용하는 것이 바로 View이다.

 

 이 결과를 View로 생성해보자.

 

 

2) 성적 테이블에서 View 만들기

create or replace view test1_view
as
    select uname, kor, eng, mat, addr
    from sungjuk
    where addr in ('Seoul', 'Jeju');

잘 생성이 되었다.

 

 

3) 생성된 뷰는 테이블 처럼 활용이 가능하다

select * from test1_view;

편리해 *_*

 

 

4) 별칭(alias)도 view 안에 함께 저장된다

create or replace view test2_view
as
    select uname as 이름, kor as 국어, eng as 영어, mat as 수학, addr as 주소
    from sungjuk
    where addr in ('Seoul', 'Jeju');
    
select * from test2_view;

칼럼명이 바뀌어있다

 

저작자표시 비영리 동일조건 (새창열림)

'⁂ Oracle DB > : 기본 익히기' 카테고리의 다른 글

[Oracle] #6-5 인덱스(index)  (0) 2022.08.30
[Oracle] #6-4 프로시져(PL/SQL (Procedural Language))  (0) 2022.08.30
[Oracle] #6-2 계정 생성하기(dbf 파일 만들기, grant)  (0) 2022.08.30
[Oracle] #6-1 SQL Developer로 CSV파일 가져오기  (0) 2022.08.29
[Oracle] #5-3 rownum으로 페이징하기  (0) 2022.08.29
    '⁂ Oracle DB/: 기본 익히기' 카테고리의 다른 글
    • [Oracle] #6-5 인덱스(index)
    • [Oracle] #6-4 프로시져(PL/SQL (Procedural Language))
    • [Oracle] #6-2 계정 생성하기(dbf 파일 만들기, grant)
    • [Oracle] #6-1 SQL Developer로 CSV파일 가져오기
    김갱환
    김갱환
    코딩의 코자도 모르는 이의 공부 기록장

    티스토리툴바