Tomcat 실행할때 UTF-8로 실행되게 해주기(Tomcat 코드페이지 65001 설정방법)

 

실행   regedit  HKEY_CURRENT_USER  Console  Tomcat(새로만들기  키)   

실행   cmd  REG ADD HKCU\Console\Tomcat /v CodePage /t REG_DWORD /d 65001

 

실행 →  regedit → HKEY_CURRENT_USER → Console → Tomcat(새로만들기 → 키)

 

실행 →  cmd → REG ADD HKCU\Console\Tomcat /v CodePage /t REG_DWORD /d 65001

 

 

* tip  실행창 단축키 : 윈도우키 + r

 

'Setting > Tomcat' 카테고리의 다른 글

[Tomcat] 이클립스에서 톰캣 포트 에러 해결방법  (0) 2021.06.04

제목 태그 : 제목 입력 시 사용

형식

 <h1>문자열</h1>
 <h2>문자열</h2>
 <h3>문자열</h3>
 <h4>문자열</h4>
 <h5>문자열</h5>
 <h6>문자열</h6>

 

참조

 h1~h6까지 있음

 body 태그 안에서 쓰인다.

 

예제

<h1>H1 Tag</h1>
<h2>H2 Tag</h2>
<h3>H3 Tag</h3>
<h4>H4 Tag</h4>
<h5>H5 Tag</h5>
<h6>H6 Tag</h6>

 

실행화면

 

 

 

본문 태그

 p : 단락을 만드는 태그

 br : 줄 바꾸기 태그

 hr : 수평선을 긋는 태그

 pre : 글자, 글꼴, 줄 바꿈을 입력한 그대로 출력하는 태그

 

참조

 body 태그 안에서 쓰인다.

 

예시

<p>p tag 입니다</p> 

<hr>	<!-- 수평선 -->

<br>	<!-- 줄바꿈 -->

<pre style="font-size: 200%; background-color: #ffff00; font-family: verdana">
안녕하세요!
반갑습니다.
비가 오는군요.
</pre>

 

실행 화면

 

 

 

앵커(Anchor) 태그 : 서로 다른 웹페이지 사이를 이동하거나 웹페이지 내부에서 특정한 위치로 이동할 수 있는 태그(하이퍼링크)

기본 형식

  <a href="주소">문자열</a>

 

참조

 body 태그 안에서 쓰인다.

 참조할 주소가 없을 경우(빈 링크) 주소 입력에 #을 입력합니다.

 

예시

<!-- 구글로 이동하기 -->
<a href="http://www.google.com">구글로 이동</a>
<!-- 참조 주소 없음 -->
<a href="#">참조 주소 없음</a>

 

a 속성 & 속성 값

 target : 링크된 문서를 클릭했을 때 문서가 열릴 위치를 명시

 target 속성 값 : self (클릭 시 현재창에서 이동)

                               _blank (클릭시 새창으로 이동)

                                _top (다운로드 속성: 파일 다운로드)

 

예시

<!-- 구글로 이동하기 -->
<a href="http://www.google.com" target="_blank">구글로 이동</a>

<a href="http://www.google.com" target="_self">구글로 이동</a>

<a href="파일경로" target="_top">파일 다운로드</a>

 

 

 

글자 태그

 b : 굵은 글자

 strong : 굵은 글자

 u : 밑줄 글자

 ins : 밑줄 글자
 i : 기울어진 글자

 em : 기울어진 글자

 small : 작은 글자

 sub : 아래에 달라붙는 글자

 sup : 아래에 달라붙는 글자

 del : 가운뎃줄이 그어진 글자

 mark : 배경이 노란색(강조) 글자

 

참조

 body 태그 안에서 쓰인다.

 

예시

<p><b>b(굵은) </b> 텍스트</p>
<p><strong>strong(굵은) </strong> 텍스트</p>
<p><u>u(밑줄) </u> 텍스트</p>
<p><ins>ins(밑줄) </ins> 텍스트</p>
<p><i>i(기울어진) </i> 텍스트</p>
<p><em>em(기울어진) </em>텍스트</p>
<p><small>small(작은) </small> 텍스트</p>
<p><sub>sub(아래첨자) </sub>텍스트</p>
<p><sup>sup(윗첨자) </sup>텍스트</p>
<p><del>del(가운데줄) </del>텍스트</p>
<p><mark>mark(강조) </mark> 텍스트<p>

 

실행화면

아파치 톰캣(Apache Tomcat)이란 ?

아파치 톰캣은 아파치 소프트웨어 재단에서 개발한 서블릿 컨테이너만 있는 웹 애플리케이션 서버이다. 톰캣은 웹 서버와 연동하여 실행할 수 있는 자바 환경을 제공하여 자바서버 페이지와 자바 서블릿이 실행할 수 있는 환경을 제공하고 있다.

 

 

 

아파치 톰캣 9버전 설치하기

 

1. 아파치 톰캣 9버전 다운로드 홈페이지 접속 : https://tomcat.apache.org/download-90.cgi

 

Apache Tomcat® - Apache Tomcat 9 Software Downloads

Welcome to the Apache Tomcat® 9.x software download page. This page provides download links for obtaining the latest version of Tomcat 9.0.x software, as well as links to the archives of older releases. Unsure which version you need? Specification version

tomcat.apache.org

 

2. 자신의 운영체제에 맞는 파일 다운로드하기

 

 

3. 원하는 곳에 압축 풀기

 

 

 

이클립스(Eclipse)에  톰캣 연결하기

 

Window  Preferences → Server  Runtime Environments  Add → Tomcat 버전 설정 후 Next  browse.. 톰캣 디렉토리 , JRE : jre 변경 후 Finish   Servers (No servers are available... ) click 후 Tomcat 버전 지정 후 Finish

 

Window →  Preferences  → Server → Runtime Environments → Add → Tomcat 버전 설정 후 Next → browse.. 톰캣 디렉토리 , JRE : jre 변경 후 Finish

 

 

Servers (No servers are available... ) click
Tomcat 버전 지정 후 Finish

 

 

 

 

 

 

 

 

출처 : 위키백과 

Collection

정의
참조형 데이터를 저장하는 '저장소' 객체
자료구조 : 가변배열

 

종류
List : 순서보존 O, 중복허용 O ,
자료형 : ArrayList, LinkedList
Set : 순서보존 X, 중복허용X, 정렬을 해줌, 크기제한 X, (쓸일 거의 없다) 옵션..
자료형 : TreeSet

 

ArrayList

List 인터페이스를 상속받아 데이터의 저장 순서가 유지되고 중복을 허용
크기가 가변적이고, 선형구조를 가지고 있다.
ArrayList 사용 시 import문을 작성해 주어야 한다.

선형구조 : O-O-O-O-O-O
삭제 후 정리, 검색 속도가 빠르다.

 

LinkedList

배열은 가장 기본적인 형태의 자료구조로 구조가 간단하다
LinkedList사용 시 import문을 작성해 주어야 한다.

장점
사용하기 쉽고 데이터를 읽어오는데 걸리는 시간이 가장 빠르다.

단점
크기를 변경할 수 없다.
비순차적인 데이터의 추가 또는 삭제에 시간이 많이 걸린다.


ArrayList에 어떠한 클래스 든 다 저장하고 싶은 경우

참조
ArrayList에 넣고 싶은 자료형에 따라 Generic에 Class를 넣어줘야하는데, Generic에 Object로 넣을 경우
모든 데이터 타입을 다 집어 넣을 수 있게 된다.

 

예시

import java.util.ArrayList;
import java.util.LinkedList;

public class Array_Linked {
	public static void main(String[] args) {

		ArrayList<Object> arraylist = new ArrayList<Object>();
	}
}

 

 

add(요소) : ArrayList 요소 추가

		// 추가
		arraylist.add("red");

		String str = new String("blue");
		arraylist.add(str);

		arraylist.add(new String("green"));



add(index, 요소) : ArrayList 원하는 위치에 요소 추가

 		// 원하는 위치에 추가(중간)
		String num = new String("yellow");
		arraylist.add(1, num);

		arraylist.add(1, "yellow");

 

set(index, 요소) : ArrayList 원하는 위치에 요소 수정

		// arraylist 수정
		arraylist.set(2, "black");

 

remove(index) : ArrayList 원하는 위치에 요소 삭제

		// 0번째 삭제
		arraylist.remove(0);

 

indexOf(검색 요소) : ArrayList index번호 검색

		// yellow의 index의 번호
		int index = arraylist.indexOf("yellow");

 

size() : ArrayList 길이

		// arraylist 길이
		int len = arraylist.size();

 

ArrayList 전체 출력

		// foreach문 사용	
		System.out.println("arraylist");
		for (Object ob1 : arraylist) {
			System.out.print((String) ob1+"\t");
		}

 

LinkedList에 ArrayList 복제하기

참조
LinkedList는 ArrayList와 호환 가능하다.
원본(arraylist)에 영향을 주지 않습니다.

형식
LinkedList <자료형> linklist = new LinkedList <자료형>(arraylist명);

예시

		// ArrayList와 호환 가능!
		// Generic은 같은형으로 잡아주고 생성자 안에 ArrayList명을 넣어준다.

		LinkedList<Object> linklist = new LinkedList<Object>(arraylist);



addLast(요소) : linklist 맨뒤에 요소 추가 / addFirst(요소) : 맨 앞에 요소 추가

참조
 ArrayList는 index를 지정하여 요소를 추가할 순 있지만 linklist처럼 맨 앞이나 맨뒤에 요소를 추가할 수 없다.

예시

 		// 맨 뒤에 요소(element)를 추가
		linklist.addLast("sleap");
		
		// 맨 앞에 요소(element)를 추가
		linklist.addFirst(1);




위 코드의 전체 코드입니다.

import java.util.ArrayList;
import java.util.LinkedList;

public class Array_Linked {
	public static void main(String[] args) {

		ArrayList<Object> arraylist = new ArrayList<Object>();

		// 추가
		arraylist.add("red");

		String str = new String("blue");
		arraylist.add(str);

		arraylist.add(new String("green"));

		// 원하는 위치에 추가(중간)
		String num = new String("yellow");
		arraylist.add(1, num);

		arraylist.add(1, "yellow");

		// foreach문 사용	
		System.out.println("arraylist");
		for (Object ob1 : arraylist) {
			System.out.print((String) ob1+"\t");
		}
		System.out.println();
		System.out.println();
		// 삭제
		// 0번째 삭제
		arraylist.remove(0);

		// 검색
		// yellow의 index의 번호
		int index = arraylist.indexOf("yellow");



		// ArrayList와 호환 가능!
		// Generic은 같은형으로 잡아주고 생성자 안에 ArrayList명을 넣어준다.

		LinkedList<Object> linklist = new LinkedList<Object>(arraylist);

		// linklist 전체 출력문
		System.out.println("linklist");
		for (Object ob : linklist) {
			System.out.print((String) ob+"\t");
		}
		System.out.println();
		System.out.println();
		
		// 맨 뒤에 요소(element)를 추가
		linklist.addLast("sleap");
		
		// 맨 앞에 요소(element)를 추가
		linklist.addFirst(1);
		
		// arraylist 수정
		arraylist.set(2, "black");
		
		// arraylist 길이
		int len = arraylist.size();
		
		// arraylist 전체 출력문
		System.out.println("linklist에 요소 추가 후 arraylist");
		for (Object ob1 : arraylist) {
			System.out.print((String) ob1+"\t");
		}
		System.out.println();
		System.out.println();
		
		// linklist 전체 출력문
		System.out.println("요소 추가 후 linklist");
		for (Object ob : linklist) {
			System.out.print((Object) ob+"\t");
		}
	}
}



실행화면

arraylist
red	yellow	yellow	blue	green	

linklist
yellow	yellow	blue	green	

linklist에 요소 추가 후 arraylist
yellow	yellow	black	green	

요소 추가 후 linklist
1	yellow	yellow	blue	green	sleap

 

'IT > Java' 카테고리의 다른 글

JAVA 용어정리  (0) 2021.09.16
[자바] jsoup을 이용하여 웹 크롤링 구현하기  (0) 2021.07.20
[자바] 상속/오버라이딩  (0) 2021.06.01
[자바] 싱글톤(Sington)  (0) 2021.05.31
[자바] 파일 쓰기  (0) 2021.05.26

상속(Inheritance)이란?

정의
 부모의 모든 것을 자식에게 상속하는 것 ( == 사용할 수 있게 하는 것)

형식
 클래스 자식 클래스명 extends 부모 클래스명
         ex) class Strawberry extends Fruit 

참조
 상속 관계에선 Overriding을 할 수 있다.

 

 

오버라이딩(overriding)이란 ? : 덮어쓴다.

정의
 상속받은 조상의 메서드를 자신에 맞게 변경하는 것

 

참조
 선언부 변경불가. 내용만 변경가능

조건
 1. 선언부가 조상 클래스의 메서드와 일치해야 한다.
   : 선언부(반환타입, 메서드이름, 매개변수 목록)
 2. 접근제어자를 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다.
 3. 예외는 조상 클래스의 메서드보다 많이 선언할 수 없다.

예시

class Fruit { // 부모class 생성
	String name;
	Fruit(String name){
		super(); // 생략된 것 (부모는 Object)
		this.name = name;
	}
	void color() {
		System.out.println(" 노란색");
	}
	void p(String str) {
		System.out.print(str);
	}
	void pln(String str) {
		System.out.println(str);
	}
}

class Strawberry extends Fruit { // 자식class 생성
	int count;
	Strawberry(String name, int count){
		super("딸기");
		this.count = count;
	}
	void color() { // 부모메소드 오버라이딩
		System.out.print(" 빨간색");
	}
	void action() {
		System.out.println("이다.");
	}
}
public class User {

	public static void main(String[] args) {
		Fruit f = new Fruit("바나나");
		f.p(f.name+"는");
		f.color();
		
		Strawberry s = new Strawberry("딸기", 10);
		s.p(s.name+"는");
		s.color(); 
		s.action(); 
		s.pln(s.count+"개 정도 먹고싶다.");
		
		Fruit f3 = new  Strawberry("바나나", 12); // 다형성
		
		Fruit f1 = s; // 부모 -> 자식 (자동형변환)
		f1.p(f1.name+"는 ");
		f1.color();  
	/*  f1.action(); 
		f1.pln(f1.count+"개 정도 먹고싶다."); */
		f.pln("");
		
		Strawberry s1 = (Strawberry) f1; // 자식 -> 부모 (강제형변환) 다 쓸 수 있다.
		s1.p(s1.name+"는");
		s1.color(); 
		s1.action(); 
		s1.pln(s1.count+"개 정도 먹고싶다.");
		
	/*	Strawberry s2 = (Strawberry) f; // 잘못된 강제형변환	ClassCastException (원래 부모인데 자식에 끼어맞추면 깨져버린다.)
		s2.p(s.name+"는");								RunTimeError (컴파일은 되는데 실행이 안된다.)
		s2.color(); 
		s2.action(); 
		s2.pln(s.count+"개 정도 먹고싶다."); */
	}
}

 

참조
 형변환은 상속관계에서만 가능하다.
  자동형변환( 자식 → 부모 ) → 묵시적
    : overroding유지, 부모 객체만 호출 가능.
  강제형변환( 부모 → 자식 ) → 명시적
    : overroding유지, 자식 객체 호출 가능.
  잘못된 강제 형 변환은 RuntimeException를 발생시킨다. 컴파일은 가능, 실행 불가.


실행화면

바나나는 노란색
딸기는 빨간색이다.
10개 정도 먹고싶다.
딸기는  빨간색
딸기는 빨간색이다.
10개 정도 먹고싶다.

도서 쇼핑몰에서 사용될 Database의 테이블을 구현하라.
도서테이블, 고객테이블, 주문테이블을 작성한다.
테이블과의 관계를 연결하여 사용시 용이하도록   한다.

 

도서테이블에 도서번호, 도서이름, 출판사이름, 도서단가 컬럼을 추가하도록 한다

 

CREATE TABLE BOOK(
    BOOK_NO INTEGER CONSTRAINT PK_BOOK PRIMARY KEY,
    BOOK_NAME VARCHAR(100) NOT NULL,
    BOOK_PUB VARCHAR(20),
    BOOK_PRICE INTEGER NOT NULL
);

 

 

 

고객테이블에 고객번호(시퀀스사용), 고객이름, 주소, 전화번호 컬럼을 추가하도록 한다

 

CREATE TABLE CONSUMER(
    CONSUMER_NO INTEGER CONSTRAINT PK_CONSUMER PRIMARY KEY,
    CONSUMER_NAME VARCHAR(20) NOT NULL, 
    CONSUMER_EDDRESS VARCHAR(100) NOT NULL,
    CONSUMER_PHONE VARCHAR(20) NOT NULL 
);

 

 

 

고객번호 시퀀스 생성

 

CREATE SEQUENCE CONSUMER_NO
INCREMENT BY 1 
START WITH 1 
MAXVALUE 99999999
MINVALUE 1;

 

 

 

주문테이블에 주문번호(시퀀스사용), 고객번호, 도서번호, 주문일자, 주문금액을 추가한다.

 

CREATE TABLE ORDERS(
    ORDER_NO INTEGER NOT NULL,
    CONSUMER_NO INTEGER,
    BOOK_NO INTEGER,
    ORDER_DAY DATE  NOT NULL,
    ORDER_PRICE INTEGER  NOT NULL,
    CONSTRAINT FK_ORDERS_CONSUMER FOREIGN KEY(CONSUMER_NO)
        REFERENCES CONSUMER(CONSUMER_NO),
    CONSTRAINT FK_ORDERS_BOOK FOREIGN KEY(BOOK_NO)
        REFERENCES BOOK(BOOK_NO)
);

 

 

 

주문번호 시퀀스 생성

 

CREATE SEQUENCE ORDER_NO
INCREMENT BY 1 
START WITH 1 
MAXVALUE 99999999
MINVALUE 1;

 

 

 

도서상품을 3가지 등록한다.

 

INSERT INTO book VALUES(1,'하루10분 SQL', '위키북스', 24000);

INSERT INTO book VALUES(2,'JAVA의 정석', '도우', 31000);

INSERT INTO book VALUES(3,'모던웹을 위한 HTML+CSS 바이블', '한빛', 32000);

 

 

 

고객은 2명 등록한다.

 

INSERT INTO consumer VALUES( CONSUMER_NO.nextval, '일고객', '서울시 강동구', '010-1234-5678');

INSERT INTO consumer VALUES( CONSUMER_NO.nextval, '이고객', '서울시 강서구, '010-5678-1234');

 

 

주문에 2건이상 등록한다.

 

INSERT INTO orders VALUES(ORDER_NO.nextval, 1, 3, SYSDATE, 32000);

INSERT INTO orders VALUES(ORDER_NO.nextval, 2, 1, SYSDATE, 24000);

 

 

문제1) EMPLOYEES 테이블에서 20번 부서의 세부 사항을 포함하는 EMP_20 VIEW를 생성 하라

 

hr 스키마

CREATE OR REPLACE VIEW EMP_20
AS
SELECT *
FROM employees
WHERE department_id = 20;

 

 

문제2) EMPLOYEES 테이블에서 30번 부서만 EMPLOYEE_ID 를 emp_no 로 LAST_NAME을 name으로 SALARY를 sal로 바꾸어 EMP_30 VIEW를 생성하라.

 

CREATE OR REPLACE VIEW EMP_30
AS
SELECT ememployee_id emp_no, last_name name, salary sal
FROM employees
WHERE department_id = 30;

 

 

문제3) 부서별로 부서명,최소 급여,최대 급여,부서의 평균 급여를 포함하는 DEPT_SUM VIEW을 생성하여라.

 

CREATE OR REPLACE VIEW DEPT_SUM(부서명, 최소급여, 최대급여, 평균급여)
as
SELECT department_name, MIN(salary), MAX(salary), ROUND(AVG(salary))
FROM employees e, departments d 
WHERE e.department_id = d.department_id
GROUP BY department_name;

 

 

문제4) 앞에서 생성한 EMP_20,EMP_30 VIEW을 삭제하여라.

 

DROP VIEW EMP_20;
DROP VIEW EMP_30;

 

 

 

동의어(SYNONYM) : 객체의 별명 부여

 

사용 이유

 이미 생성된 테이블 명이 너무 길어서 쓰기 어려울 경우 사용한다.

 

형식

 CREATE SYNONYM 시노니명
 FOR 참조할 테이블명;

 

예제

-- hr스키마

CREATE SYNONYM EMP
FOR EMPLOYEES;

 

 

 

SYNONYM 이용하여 데이터 입력

형식

 INSERT INTO 시노니명(컬럼명1, 컬럼명2, ....., 컬럼명n)
 VALUES(값1, 값2,....,값n);

 

참조

 참조한 테이블에서 컬럼의 제약조건에 맡게 값을 넣어 주어야 한다.

 

예제

INSERT INTO EMP(EMPLOYEE_ID, LAST_NAME, EMAIL, HIRE_DATE, JOB_ID)
VALUES(EMPLOYEES_SEQ.nextval, '공손', 'mm@naver.com', SYSDATE, 'IT_PROG');

 

 

 

SYNONYM  삭제

형식

 DROP SYNONYM 시노님명;

 

예제

DROP SYNONYM EMP;

시퀀스(SEQUENCE) : 유일한 값을 생성해주는 오브젝트

참조

 초기화가 불가하다.

 사용예시) 회원번호, 게시판 글번호(고유번호)

 

 

 

SEQUENCE 생성

형식

 CREATE SEQUENCE 시퀀스명
 INCREMENT BY 증가값
 START WITH 10 시작값
 MAXVALUE 100 마지막값
 MINVALUE 최소값;

 

예시

CREATE SEQUENCE TEST_SEQ
INCREMENT BY 1 -- 1 씩 증가
START WITH 10 -- 10부터 시작
MAXVALUE 100 -- 마지막 번호 100
MINVALUE 1;

 

 

 

CURRVAL : 현재 SEQ 값 조회

형식
 SELECT 시퀀스명.CURRVAL FROM DUAL;

 

참고

 최소 1번은 증가 시켜줘야 출력이 된다.

 

예시

SELECT TEST_SEQ.CURRVAL FROM DUAL;

 

 

 

NEXTVAL : 증가시키기

형식
 SELECT 시퀀스명.NEXTVAL FROM DUAL;

 

예시

SELECT TEST_SEQ.NEXTVAL FROM DUAL;

 

 

 

INCREMENT BY : 시퀀스 설정 변경

형식
 ALTER SEQUENCE 시퀀스명
 INCREMENT BY 변경값;

 

예시

ALTER SEQUENCE TEST_SEQ
INCREMENT BY 3; -- 3씩 증가하도록 바꿔라

 

 

 

 

VIEW (가상 테이블)

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

 

참고

 속도가 빠르다.

 한 개의 뷰로 여러 개의 테이블을 검색할 수 있다.

 제한 설정이 가능하다.(READONLY)

 

VIEW생성

형식

 CREATE OR REPLACE VIEW 뷰명
 AS
 SELECT *
 FROM 접근할 테이블명;

 

예제

-- hr스키마

CREATE OR REPLACE VIEW TEST_VIEW
AS
SELECT *
FROM jobs;

 

 

 

원하는 컬럼만 넣어 VIEW생성

형식

 CREATE OR REPLACE VIEW 뷰명
 AS
 SELECT 컬럼명1, 컬럼명2...컬럼명n
 FROM 접근할 테이블명;

 

참조

 이때 컬럼명은 접근할 테이블의 컬럼명이다.

 또한, 테이블 간 JOIN을 하여 여러 데이터를 집어넣는 것도 가능하다.

 

예시

CREATE OR REPLACE VIEW TEST_VIEW
AS
SELECT job_id, job_title, min_salary
FROM jobs;

 

 

 

VIEW로 접근하여 테이블에 데이터 집어넣기

형식

 INSERT INTO 뷰명(컬럼명1, 컬럼명2, ...컬럼명n)
 VALUES(값1,값2...값n);

 

참조

 실제로 VIEW에서 접근 테이블에 데이터를 집어넣는 건 매우 위험하다고 한다..

 거의 사용할 일이 없다.

 

예시

INSERT INTO UB_TEST_01(job_id, job_title, min_salary)
VALUES('DEVELOPER', '개발자', 10000);

 

 

 

ROLLBACK : 되돌리기

형식

 ROLLBACK;

 

참조

 INSERT 후 ROLLBACK을 하게 되면 데이터를 넣기 전으로 되돌릴 수 있다.

 COMMIT시 ROLLBACK불가!!

 

 

 

COMMIT : DB에 적용하기

형식

 COMMIT;

 

참조

 데이터를 집어넣으려면 필수!!

 

 

 

읽기전용 VIEW 생성

형식

 CREATE OR REPLACE VIEW 뷰명
 AS
 SELECT *
 FROM 접근할 테이블명

 WITH READ ONLY;

참조

 읽기 전용으로 VIEW생성 시 INSERT 할 수 없다.

 

예제

CREATE OR REPLACE VIEW TEST_VIEW
AS
SELECT *
FROM jobs
WITH READ ONLY; -- 읽기전용 

 

 

 

VIEW 검색

형식

 SELECT * FROM 뷰명;

 

예제

SELECT * FROM TEST_VIEW;

 

 

 

VIEW 삭제

형식

 DROP VIEW 뷰명;

 

예제

DROP VIEW TEST_VIEW;

+ Recent posts