DB/Oracle (13) 썸네일형 리스트형 (Oracle) 13. 오라클 PL/SQL PL/SQL Procedural language extension to Structured Querry Language SQL + 프로그래밍 언어적 특성이다. 이클립스 콘솔창에서 출력되는 것처럼 출력된다 자바에서 사용하는 System.out.println과 비슷한 출력문이 DBMS_OUTPUT.PUT_LINE(출력 내용); 이다 구성 구성키워드 필수/선택 설명 DECLARE(선언) 선택 실행할 때 사용될 변수,상수,커서 등을 선언 BEGIN(실행) 필수 조건문,반복문,SELECT,DML등을 정의 EXCEPTION(예외처리) 선택 PL/SQL을 실행하며 발생하는 오류를 해결하는 문장 코드 사용에 앞서 화면에 출력시키기 위해선 필수적으로 먼저 실행해야 될 코드가 있다. SET SERVEROUTPUT ON; .. (Oracle) 12. 오라클 제약 조건 제약조건 테이블의 특정 열에 제약 조건을 걸어준다. 예를 들면 해당 열에는 null이 들어오면 안된다던지 등의 조건 테이블 생성시 지정 또는 나중에 추가, 변경, 삭제가 가능하다. 1. 종류 종류 내용 NOT NULL 지정한 열에서 NULL을 허용하지 않는다 UNIQUE 저장할 데이터의 중복이 안됨 PRIMARY KEY 유일하게 하나만 있는 값 (NOT NULL + UNIQUE) FOREIGN KEY 테이블 간의 관계 설정 (다른 테이블의 열의 연결/EX : DEPTNP) DEFAULT 기본값 지정 ( 생성시 입력하지 않으면 기본설정값 입력) 2. 사용방법 -- 제약조건 설정 및 이름지정 CREATE TABLE TABLE_TEST( ID VARCHAR2 (20) CONSTRAINT TBL_ID_PK PR.. (Oracle) 10. 오라클 간단한 데이터 제어어 (DCL) 2 데이터 제어어 2 1. GRANT : 객체 권한 부여 GRANT [객체 권한(CREATE TABLE, CREATE SESSION...등)] ON 테이블 이름 TO 사용자 이름; 2. REVOKE : 객체 권한 취소 REVOKE [객체 권한 ] ON 테이블 이름 TO 사용자 이름; ※요약 GRANT와 REVOKE는 다른사용자에게 테이블을 사용할 수 있도록 빌려주고 뺏는다고 생각하면 되고, COMMIT과 ROLLBACK은 물건을 저장하거나 저장하지 못하게 다시 취소하는 개념이다 (Oracle) 9. 오라클 간단한 데이터 제어어 (DCL) 1 데이터 제어어 데이터 조작어(DML)을 사용하다보면 저장 및 실행 취소를 해야할때가 자주오는데 이때 쓸수 있다. 1. COMMIT; : 데이터 조작을 할때 완전한 반영(저장)을 하겠다. 저장기능을 가지고있으며 INSERT,UPDATE,DELETE를 사용하고 저장을 할 수 있다. 다만 저장을 한 뒤에 ROLLBACK은 실행해도 그이전으로 되돌릴 수없기 때문에 저장하는 습관도 중요하지만 잘 생각 하며 저장해야된다. 2. ROLLBACK; : 데이터 조작을 되돌리겠다 이클립스나 다른곳에서 우리가 자주사용하는 ctrl + Z랑 같다고 생각하면 이해하기 쉽다 취소 역활을 하고있다. (Oracle) 8. 오라클 데이터 정의어(DDL) 데이터 정의어 (DDL) 데이터베이스 데이터를 보관하고 관리하기 위해 제공되는 여러 객체의 생성 변경 삭제 관련 기능을 수행 명령어를 수행하자마자 데이터베이스에 수행한 내용이 바로 반영된다. 1. CREATE : 테이블 생성 테이블 명 생성 규칙 1. 문자로 시작 ( 영어, 한글, 숫자 0~9, 특수 문자 $, _, # 가능) 2. 테이블명은 30BYTE 이하 3. 같은 사용자 소유의 테이블 이름은 중복 안됨 4. 키워드는 테이블명 사용 불가(SELECT,DELETE....) 예제코드 -- 1번 테이블 전체 복사 CREATE TABLE EMP_TEST AS SELECT * FROM EMP; -- 2번 테이블 열 지정생성 CREATE TABLE TEST1( 이름 VARCAHR2(10), 나이 NUMBER(.. (Oracle) 7. 오라클 데이터 조작어(DML)2 데이터 조작어 (DML) 2. UPDATE : 데이터 수정 특정 열의 값 전체를 수정 or 특정 조건에 대한 열의 값을 각 수정한다 UPDATE 변경할 테이블 명 SET 변경할 열의 이름 = 변경할 값, 변경할 열 이름 = 변경할 값, 변경할 열 이름 = 변경할 값... WHERE 조건(옵션이다) 코드의 사용 방법은 위와 같은 방식으로 사용을 하게 되며 WHERE은 옵션으로 넣으면 된다. 다만 넣지 않을 경우 해당열 전체를 수정하게 된다. 각각의 예제코드를 살펴보도록 하자 이번 예제코드의 기본 테이블 구조이다. 예제코드 -- 1번 테이블의 특정 열의 값을 전체 수정 UPDATE DEPT_TEST SET LOC = 'SEOUL'; -- 2번 테이블의 특정 열 값을 조건에 맞춰 수정 UPDATE DEPT_T.. (Oracle) 6. 오라클 데이터 조작어(DML) 데이터 조작어 (DML) 1. 데이터 삽입 (Insert) 말 그대로 지정한 테이블에 새로운 데이터(열)를 추가한다. --데이터 삽입 1번 insert into dept_temp values(50,'DATABASE','SEOUL'); --데이터 삽입 2번 insert into dept_temp(deptno,dname,loc) values(50,'DATABASE','SEOUL'); 위와 같이 1번과 2번 방식 두가지로 추가할 수 있다. 정상적으로 추가가 되었으면 위와같은 출력 결과가 나오게 된다. 위의 오류의 경우 1번문항에서 오류가 난 것인데, 해당 테이블의 모든 열의 데이터값을 넣지 않았기에 오류가 발생한 것이다. 이때는 2번방식으로 이용을 하면 되는데 아래 코드를 확인해보자 insert into de.. (Oracle) 5. 오라클 서브쿼리 서브쿼리 테이블에 SQL문을 실행하는 데 필요한 데이터를 추가로 조회하기 위해 SQL문 내부에서 사용하는 SELECT문 간단히 보자면 SELECT문안에 (SELECT문)이 들어간 것이다. 단일행 서브 쿼리 실행결과가 단 하나의 행으로 나온다. > >= = (SELECT SAL FROM EMP WHERE ename='JONES'); 실행결과 첫번째 표와 같이 JONES의 급여는 2975이다. 그래서 SAL > 2975를 구하면 두번째 표와 같은 결과가 나오게 된다 다중행 서브 쿼리 IN : 메인쿼리의 데이터가 서브쿼리의 결과 중 하나라도 일치한 데이터가 있으면 TRUE ANY : 메인쿼리의 조건식을 만족하는 서브쿼리의 결과가 하나 이상이면 TRUE ALL : 메인쿼리의 조건식을 서브쿼리의 결과 모두가 만족.. 이전 1 2 다음