목록Programming/Oracle 공부 (31)
C#,Delphi,Oracle,MSSQL 개발자블로그
● 커서 오라클 서버는 SQL 문장을 실행하고 처리한 정보를 저장하기 위해 Private SQL 영역이라 불리는 작업 영역을 사용한다. Private SQL 영역에 이름을 붙이고 그것의 저장된 정보를 액세스하기 위해 PL/SQL커서를 사용할 수 있다. - 암시적 커서 : 모든 DML과 PL/SQL SELECT 문장에 대해 선언된다. - 명시적 커서 : 프로그래머에 의해 선언되고 이름 붙여진다. 커서는 PL/SQL에 내장된 일종의 포인터이며, 데이터베이스 쿼리와 레코드들의 세트를 얻는 작업, 그리고 결과셋의 행들을 하나씩 얻는 작업에 이용될 수 있다. 즉, 커서는 데이터에 대한 프로그래밍적인 접근을 가능하게 해준다. [명시적 커서] 명시적 커서는 커서를 관리하는데 필요한 PL/SQL코드를 PL/SQL 프로..
● 조합 데이터형 (또는 Collection 이라고도 부른다.) -RECORD 관련은 있으나 비슷하지 않은 데이터를 논리적인 한 단위로 묶기 위해서 RECORD 데이터형을 사용한다. -TABLE 전체 객체로서 데이터의 모음을 참조하고 조작하기 위해 TABLE 데이터 형을 사용한다. -중첩 TABLE -VARRAY ● PL/SQL 레코드 RECORD는 여러개의 데이터 타입을 갖는 변수들의 집합니다. PL/SQL 테이블과 다르게 개별 필드의 이름을 부여할 수 있고, 선언시 초기화가 가능하다. TYPE type_name IS RECORD (field_declaration[, field_declaration]...); identifier type_name; type_name RECORD의 형의 이름 field_..
● PL/SQL 실행 흐림 제어 문장의 논리적 흐름을 변경할 수 있다. PL/SQL 제어 구조의 2가지 유형 - IF 문장 - LOOP 제어 구조 ● IF문장 IF condition THEN statements; [ELSIF condition THEN statements;] [ELSE statements;] END IF; condition 부울 변수 또는 표현식이다. 이것은 IF 표현식이 TRUE를 생성할 때만 일련의 문장들을 실행하도록 한다. THEN 다음에 나오는 문장들과 그것에 선행되는 부울 표현식을 관련시키는 절이다. statements 하나 이상의 PL/SQL 또는 SQL 문장이 될 수 있다. 그것들은 몇 개의 중첩 IF, ELSE와 ELSIF를 포함하는 IF문장을 포함할 수 있다. ELSIF ..
● SQL과 PL/SQL 문장 유형 비교 - PL/SQL 블록은 트랜잭션 단위가 아니다. 커밋, 세이브포인트, 롤백은 블록과는 독립적이지만, 블록에서 이 명령어를 사용할 수 있다. - PL/SQL은 DDL(CREATE, ALTER, DROP, TRUNCATE ..), DCL(GRANT, REVOKE) 을 지원하지 않는다. - PL/SQL은 DML과 트랜잭션 언어를 사용할 수 있다. ● PL/SQL에서 SELECT문장 PL/SQL 내 SELECT 문장은 하나의 행만 리턴해야 한다. INTO 절에서의 출력변수와, 입력변수는 그 개수와 데이터형이 일치해야 한다. SELECT select_list INTO {variable_name[, variable_nam]... / record_name} FROM table..
- 리터럴 문자와 날짜 리터럴은 단일 인용 부호(')에 둘러 싸여져야 한다. Ex. v_ename := 'Henderson'; 숫자 리터럴은 단순 값 또는 과학적인 표기법에 의해 표현될 수 있다. Ex. 단순 값 : -32.5 과학적인 표기법 : 2E5, 2*10 (이 때, 2E5 = 200000를 의미 한다.) - PL/SQL에서 SQL 함수 ☞ 사용가능 : 단일 행 숫자 단일 행 문자 데이터형 변환 날짜 Ex. v_ename := LOWER(v_ename); 사용 불가 : GREATEST LEAST DECODE 그룹함수(AVG, MIN, MAX, COUNT, SUM, STDDEV, VARIANCE) Ex. v_total := SUM(number_table); 위 예는 그룹함수이기때문에 절차적언어인 P..
● PL/SQL 프로그램을 논리적인 블록으로 나누게 하는 구조화된 블록 언어이다. DECLARE (선택적) - Variables - Cursors - User-defined exceptions BEGIN (필수적) - SQL statements - PL/SQL statements EXCEPTION (선택적) - Actions to perform when errors occur END; (필수적) Ex. DECLARE v_variable VARCHAR2(5); BEGIN SELECT column_name INTO v_variable FROM table_name; EXCEPTION WHEN exception_name THEN ... END; ● 블록 유형 - 익명블록 : 이름이 없는 블록 ☞ Anonymou..
@ LIME 이라는 스키마에 작성한 것입니다. 1. 아래 테이블의 인스턴스 차트를 기초로 테이블을 생성한다. a. 테이블 이름 : MEMBER (PK, NN 제약조건과 Default값 적용하여 테이블 생성) Column_Name MEMBER_ID LAST_NAME FIRST_NAME ADDRESS CITY PHONE JOIN_DATE Key Type PK Null/Unique NN,U NN NN Default Value System Date Data Type Number Varchar2 Varchar2 Varchar2 Varchar2 Varchar2 Date Length 10 25 25 100 30 15 CREATE TABLE MEMBER ( member_id NUMBER (10) CONSTRAINT m..
● 사용자 접근 제어 - 데이터베이스 보안의 두 종류 1. 시스템 보안 ☞ 사용자명, 비밀번호 ☞ 사용자에게 할당된 디스크 공백 ☞ 사용자에 의해 허용된 시스템 작업 같은 시스템 수준에서의 데이터베이스의 액세스와 사용을 설명한다. 2. 데이터 보안 ☞ 데이터베이스 객체에 대한 액세스와 사용 ☞ 객체에 대해 사용자가 할 수 있는 작업 을 설명한다. ● 권한 특정 SQL문장을 실행하기 위한 권한이다. 80개 이상의 권한이 있다. - 시스템 권한 : 데이터베이스 액세스 획득 (system privilege 필요) - 객체권한 : 데이터베이스 객체 내용 조작 (object privilege 필요) 스키마 : 테이블, 뷰, 시퀀스 같은 객체의 모음. ● 사용자 생성 CREATE USER scott IDENTIFI..
● 데이터베이스 객체 - Table : 행과 열로 구성된 기본적인 저장매체의 단위 - View : 하나 이상의 테이블로부터 데이터의 부분집합을 논리적으로 표현 - Sequence : 기본 키 값을 발생 - Index : 어떤 질의의 성능을 향상 - Synonym : 객체에 대체 이름을 부여 ● 시퀀스 - 자동적으로 유일번호를 생성한다. - 공유가능한 객체(다중 테이블에 대해 사용될 수 있다.) - 주로 기본 키 값을 생성하기 위해 사용된다. CREATE SEQUENCE sequence [INCREMENT BY n] [START WITH n] [{MAXVALUE n / NONMAXVALUE}] [{MINVALUE n / NONMINVALUE}] [{CYCLE / NONCYCLE}] [{CACHE n / N..
● 데이터베이스 객체 - Table : 행과 열로 구성된 기본적인 저장매체의 단위 - View : 하나 이상의 테이블로부터 데이터의 부분집합을 논리적으로 표현 - Sequence : 기본 키 값을 발생 - Index : 어떤 질의의 성능을 향상 - Synonym : 객체에 대체 이름을 부여 ● 뷰 란? 테이블 또는 다른 뷰를 기초로 하는 논리적 테이블이다. 뷰는 그 자체로서 소유하는 데이터는 없지만 창문처럼 창문을 통해 어떤 데이터를 보거나 변경할 수 있다. ● 뷰의 사용 목적 1. 뷰는 데이터베이스의 선택적인 부분을 디스플레이 할 수 있기 때문에 데이터베이스에 대한 액세스를 제한할 수 있다. 2. 사용자가 복잡한 질의로부터 결과를 검색하기 위한 단순한 질의를 만들도록 한다. 예를들면, 뷰는 조인 문장을..