Database/OracleSQL
200507
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 테스트
결과값을 화면에 출력하는 기능 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
테이블 타입
바인드 변수