YJ의 새벽
SQL응용 JDBC (뷰) 본문
- 뷰 (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) (1) | 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