YJ의 새벽

SQL응용 JDBC (뷰) 본문

SelfStudy/Oracle (SQL)

SQL응용 JDBC (뷰)

YJDawn 2023. 1. 26. 18:13
  • 뷰 (VIEW)

--실체가 없는 테이블 , 다른 테이블에 접근하기 위한 테이블, 중간에 있는 테이블

-- 장점 : 검색속도가 빠르다. 한개의 뷰로 여러 테이블을 검색(조인) 할 수 있다.

    -- 제한 설정이 가능하다. (읽기전용 : READ ONLY)

    -- 기본적으로 읽기와 쓰기 모두 가능 . ( SELECT , INSERT , UPDATE , DELETE 모두 가능 ) 

 

** 뷰(VIEW) 정보 조회  : 

SELECT * FROM USER_VIEWS;
--SELECT * FROM 뷰이름

** 뷰(VIEW) 생성 :

CREATE VIEW 뷰이름 AS SELECT문.
  --읽기 쓰기 모두 가능
  --SELECT , INSERT , UPDATE , DELETE 모두 가능
CREATE VIEW 뷰이름 AS SELCET문 WITH READ ONLY;
  --읽기 전용  ( SELECT SQL문 실행만 가능 )

** 뷰(VIEW) 수정 :

CREATE OR REPLACE VIEW 뷰이름 AS SELECT문 ;

** 뷰(VIEW) 삭제 :

DROP VIEW 뷰이름 ;

** 모든 제약조건들 화면에 표시 :

SELECT * FROM USER_CONSTRAINTS
WHERE TABLE_NAME = '테이블명' ;

 

** JDBC 응용  ( CREATE VIEW )  , SQL문에 DROP 넣으면 삭제 .

public class CreateViewClass {
	public static void main(String[] args)  {
		Connection con = null;
		Statement st = null;
		String sql = "CREATE VIEW EMPVIEW AS SELECT empno, ename FROM EMP_TBL WITH READ ONLY";
			
		try {
			java.lang.Class.forName("oracle.jdbc.driver.OracleDriver");
			System.out.println("오라클 드라이버 클래스 객체 생성 성공");
			con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","user1","1234");
			System.out.println("오라클 데이터베이스 연결 성공");
			
			st = con.createStatement();
			boolean r = st.execute(sql);
			System.out.println(r);
			
		}catch(ClassNotFoundException e ) {
			System.out.println("드라이버클래스객체 찾기오류");
			e.printStackTrace();
		}catch(SQLException e) {
			System.out.println("데이터베이스 연결오류");
			e.printStackTrace();
		}finally {
			try {
				if(st!=null) st.close();
				if(con!=null) con.close();
			}catch(SQLException e) {
				System.out.println("데이터베이스 종료오류");
				e.printStackTrace();
			}
		}
	}
}

 

 

 

'SelfStudy > Oracle (SQL)' 카테고리의 다른 글

SQL 외래키(FK)  (0) 2023.01.26
SQL응용 JDBC (Connection pool)  (0) 2023.01.26
SQL응용 JDBC (SELECT, INSERT, UPDATE)  (2) 2023.01.26
SQL응용 JDBC (인덱스),throws  (0) 2023.01.25
SQL응용 JDBC (시퀀스 수정,확인)  (0) 2023.01.25
Comments