목록데이터베이스 (26)
개인공부
TOAD를 사용하면서 편리하게 이용할 수 있는 단축키를 정리한 것입니다. 테이블 정보 상세보기F4 : Table, View, Proc, Funct, Package를 DESC(테이블명 위에 커서를 두고 F4키) 자동완성Ctrl+. : Table Completion (매칭되는 테이블목록 출력)Ctrl+T : Columns Dropdown (해당테이블의 컬럼목록 표시) SQL문 실행F5 : SQL Editor내의 모든 SQL문 실행Ctrl+Enter : 현재 커서의 SQL문 실행F9 : SQL문 실행 후 Grid에 출력 히스토리(과거 수행SQL문 조회)F8 : 과거에 실행한SQL문 HISTORY 목록Alt+Up : History UPAlt+Down : History DOWN 텍스트 대/소문자 변환CTRL+L ..
내부 조인 (INNER JOIN) 일반적으로 가장 많이 사용하는 JOIN으로... 쉽게 설명하면, 두 테이블에 공통적으로 존재하는 것을 찾을 때 사용합니다. 외부 조인 (OUTER JOIN) - LEFT OUTER JOIN LEFT OUTER JOIN은 조인 이름에서 알 수 있듯이... 왼쪽 테이블을 기준으로 검색을 하는 것입니다. 즉, 왼쪽 테이블의 값들은 모두 출력하고 오른쪽 테이블에서는 조인 조건에 맞는 값들은 출력이 되고 왼쪽 테이블을 기준으로 오른쪽 테이블에 존재 하지 않는 값은 NULL로 검색이 됩니다. 외부 조인 (OUTER JOIN) - RIGHT OUTER JOIN RIGHT OUTER JOIN의 경우는 LEFT와 반대겠지요. 오른쪽 테이블의 값들은 모두 출력하고 왼쪽 테이블에서는 조인 ..
데이터 베이스 면접 질문들 모음 제약조건 NOT NULL : '필수 입력 사항'을 의미 UNIQUE : 중복성 배제 즉, '유일한 값'으로 존재함을 의미 PRIMARY KEY(기본키) : NOT NULL + UNIQUE로, '테이블에서 대표되는 칼럼'을 의미 FOREIGN KEY(외래키) : '참조하는 테이블에서 존재하는 값만 사용 가능'을 의미 CHECK : '주어진 조건에 해당하는 값만 입력 가능'을 의미 CREATE TABLE topics(user varchar2(20) NOT NULL,title VARCHAR2(255) NOT NULL,lecturekey VARCHAR2(100) NOT NULL,CONSTRAINT FK_TOPICS FOREIGN KEY(lecturekey)REFERENCES LE..
변수선언과 대입문 PL/SQL의 선언부에서는 실행부에서 사용할 변수를 선언합니다. 변수를 선언할 때 변수명 다음에 자료형을 기술해야 합니다. PL/SOL에서 변수 선언할 때 사용되는 자료형은 SQL에서 사용하던 자료형과 거의 유사합니다. identifier [CONSTANT] datatype [NOT NULL][:= | DEFAULT expression]; 스칼라변수/ 레퍼런스 변수 스칼라PL/SOL에서 변수를 선언할 때 사용되는 자료형은 SQL에서 사용하던 자료형과 거의 유사하다. 숫자를 저장하려면 NUMBER를 사용하고 문자를 저장하려면 VARCHAR2를 사용해서 선언합니다. VEMPNO NUMBER(4);VENAME VARCHAR2(10); 레퍼런스 이전에 선언된 다른 변수 또는 데이터베이스 컬럼에..
PL / SQL이란?PL/SQL 은 Oracle's Procedural Language extension to SQL의 약자입니다. SQL문장에서 변수정의, 조건처리(IF), 반복처리(LOOP, WHILE, FOR)등을 지원하며, 오라클 자체에 내장되어 있는 절차적 언어(Procedure Language)로서 SQL의 단점(sql 자체는 비절차적 언어이기 때문에 몇 개의 쿼리문 사이에 어떠한 연결이나 절차성이 있어야 할 때는 사용이 불가능)을 보완해줍니다. PL/SQL은 PASCAL과 유사한 구조로서 DECLARE~BEGIN~EXCEPTION~END 순서를 갖습니다. PL/SQL은 다음과 같은 블록(BLOCK) 구조의 언어로서 크게 3 부분으로 나눌 수 있습니다. 선언부(DECLARE SECTION) :..
동의어 개념 데이터베이스의 객체에 대한 소유권은 해당 객체를 생성한 사용자에게 있습니다. 따라서 다른 사용자가 객체에 접근하기 위해서는 소유자로부터 접근 권한을 부여받아야 합니다. 또한 다른 사용자가 소유한 객체에 접근하기 위해서는 소유자의 이름을 객체 앞에 지정해야 합니다. 이렇게 객체를 조회할 때마다 일일이 객체의 소유자를 지정하는 것이 번거로울 경우 동의어를 정의하면 긴 이름대신 간단한 이름으로 접근할 수 있게 됩니다. 동의어 종류 동의어는 개별 사용자를 대상으로 하는 비공개 동의어와 전체 사용자를 대상으로 한 공개 동의어가 있습니다. 비공개 동의어 객체에 대한 접근 권한을 부여받은 사용자가 정의한 동의어로 해당 사용자만 사용할 수 있다. 공개 동의어 권한을 주는 사용자가 정의한 동의어로 누구나 사..
롤이란 롤은 사용자에게 보다 효율적으로 권한을 부여할 수 있도록 여러 개의 권한을 묶어 놓은 것입니다. 다수의 사용자에게 공통적으로 필요한 권한들을 롤에 하나의 그룹으로 묶어두고 사용자에게는 특정 롤에 대한 권한 부여를 함으로서 간단하게 권한 부여를 할 수 있습니다. 또한 여러 사용자에게 부여된 권한을 수정하고 싶을 때에도 일일이 사용자마다 권한을 수정하지 않고 롤만 수정하면 그 롤에 대한 권한 부여를 한 사용자들의 권한이 자동 수정됩니다. 사전에 정의된 롤의 종류 CONNECT 롤 사용자가 데이터베이스에 접속 가능하도록 하기 위해서 다음과 같이 가장 기본적인 시스템 권한 8가지를 묶어 놓았습니다. ALTER SESSION, CREATE CLUSTER, CREATE DATABASE LINK, CREATE..
객체 권한 객체 권한은 테이블이나 뷰나 시퀀스나 함수 등과 같은 객체별로 DML문(SELECT, INSERT, DELETE)을 사용할 수 있는 권한을 설정하는 것입니다. GRANT privilege_name [(column_name)] | ALL ①ON object_name | role_name | PUBLIC ②TO user_name; ③ GRANT 명령어의 형식은 어떤 객체(②)에 어떠한 권한(①)을 어느 사용자(③)에게 부여하는가를 설정합니다. 시스템 권한과 차이점이 있다면 ON 옵션이 추가된다는 점입니다. ON 다음에 테이블 객체나 뷰 객체 등을 기술합니다. SCOTT 사용자 소유의 EMP 테이블을 조회(SELECT)할 수 있는 권한을 USER01이란 사용자에게 부여합니다. GRANT SELECT..
권한이란 권한은 사용자가 특정 테이블을 접근할 수 있도록 하거나 해당 테이블에 SQL(SELECT/INSERT/UPDATE/DELETE) 문을 사용할 수 있도록 제한을 두는 것을 말합니다. 데이터베이스 보안을 위한 권한은 시스템 권한(System Privileges)과 객체 권한(Object Privileges)으로 나뉩니다. 시스템 권한 시스템 권한은 사용자의 생성과 제거, DB 접근 및 각종 객체를 생성할 수 있는 권한 등 주로 DBA에 의해 부여되며 그 권한의 수가 80 가지가 넘기에 대표적인 시스템 권한만 정리하고 넘어갑시다. 데이터 베이스 관리 권한 시스템 관리자가 사용자에게 부여하는 권한입니다. 스키마(schema)란 객체를 소유한 사용자명입니다. 사용자 생성하기 사용자명은 USER01 암호는..
인덱스란 ? 인덱스란 SQL 명령문의 처리 속도를 향상시키기 위해서 컬럼에 대해서 생성하는 오라클 객체입니다. 인덱스의 장점 - 검색 속도가 빨라진다. - 시스템에 걸리는 부하를 줄여서 시스템 전체 성능을 향상시킨다. 인덱스의 단점 - 인덱스를 위한 추가적인 공간이 필요하다. - 인덱스를 생성하는데 시간이 걸린다. - 데이터의 변경 작업(INSERT/UPDATE/DELETE)이 자주 일어날 경우에는 오히려 성능이 저하된다. 인덱스 생성하기 CREATE INDEX index_nameON table_name (column_name); CREATE INDEX 다음에 인덱스 객체 이름을 지정합니다. 어떤 테이블의 어떤 컬럼에 인덱스를 설정할 것인지를 결정하기위해서 ON 절 다음에 테이블 이름과 컬럼 이름을 기술..