Jaybon 2020. 5. 7. 09:53

MERGE : 위아래 병합

TRUNCATE : 잘라내기

ROLLBACK : 취소

----------------------------

트랜잭션 - 의미 있는 단위로 작업을 나누는 것

-----------------------------

-----------------------------

 

테이블을 복사하여 가져오기 (AS)

CREATE TABLE DEPT6
AS
SELECT DCODE, DNAME
FROM DEPT2
WHERE DCODE IN(1000,1001,1002);

 

테이블에 속성 추가하기

ALTER TABLE DEPT6
ADD (LOCATION VARCHAR2(10));

 

LOCATION2 속성을 추가하면서 기본값을 SEOUL로 만들기

ALTER TABLE DEPT6
ADD (LOCATION2 VARCHAR2(10) DEFAULT 'SEOUL');

 

LOCATION2 속성이름을 LOC로 만들기

ALTER TABLE DEPT6 RENAME COLUMN LOCATION2 TO LOC;

 

테이블 이름 변경

RENAME DEPT6 TO DEPT7;

 

테이블 내용 잘라내기

TRUNCATE TABLE DEPT7;

 

------------------

세션 - 클라이언트가 서버에 접속 되어 있는 상태

임시테이블 - 같은 계정으로 접속 되어도 세션이 다르면 보이지 않는 임시적으로 만든 테이블

------------------

-- 4. 참조되어지는 테이블을 CASCADE CONSTRAINTS 옵션을 통해 삭제한다. 

SQL> DROP TABLE department CASCADE CONSTRAINTS;

 

------------------

임시테이블

 

테이블 복사

 

테이블 컬럼만 가져오기

 

------------------

PL/SQL

오라클 전용 프로그램 랭귀지

선언부 DECLARE/ 실행부 BEGIN/ 예외처리부 EXCEPTION로 나뉜다

 

테스트 테이블 생성

CREATE TABLE PL_TEST
(NO NUMBER,
NAME VARCHAR2(10));

 

테스트 시퀀스 생성

CREATE SEQUENCE PL_SEQ;

 

프로시저랭귀지 SQL 실행

BEGIN
    INSERT INTO PL_TEST
    VALUES(PL_SEQ.NEXTVAL,'AAA');
END;
/

 

PLSQL을 한번 더 실행하면

---------------------------------------

 

PLSQL 테스트

test_data_eng.sql
0.03MB

 

결과값을 화면에 출력하는 기능 ON

SET SERVEROUTPUT ON;

 

 

SET SERVEROUTPUT ON;

DECLARE
    V_EMPID EMP.EMPNO%TYPE;
    V_SALARY EMP.SAL%TYPE;
BEGIN
    SELECT EMPNO, SAL INTO V_EMPID, V_SALARY
    FROM EMP
    WHERE EMPNO = 7369;
    
    DBMS_OUTPUT.PUT_LINE(V_EMPID|| ' == ' ||V_SALARY);
END;
/

 

 

DECLARE
    V_EMPID EMP.EMPNO%TYPE;
    V_SALARY EMP.SAL%TYPE;
BEGIN
    SELECT EMPNO, SAL INTO V_EMPID, V_SALARY
    FROM EMP
    WHERE EMPNO = &EMPNO;
    
    DBMS_OUTPUT.PUT_LINE(V_EMPID|| ' == ' ||V_SALARY);
END;
/

 

 

CREATE TABLE PL_TEST2
(NO NUMBER,
NAME VARCHAR2(10),
ADDR VARCHAR2(10));

SET VERIFY OFF -- 유효성체크 출력여부
DECLARE
    V_NO NUMBER := '&NO';
    V_NAME VARCHAR2(10) := '&NAME';
    V_ADDR VARCHAR2(10) := '&ADDR';
BEGIN
    INSERT INTO PL_TEST2
    VALUES(V_NO, V_NAME, V_ADDR);
END;
/

------------------------------

 

 

레코드 타입 record

테이블 타입

바인드 변수