본문 바로가기

IT/Oracle SQL

SELECT문 및 연산자 SELECT문은 데이터베이스로부터 저장되어 있는 데이터를 검색하는데 사용 한다.SELECT 문법- DISTINCT : 중복되는 행을 제거하는 옵션.- * : 테이블의 모든 column을 출력.- alias : 해당 column에 대해서 다른 이름을 부여할 때 사용.- table_name : 질의 대상 테이블 명- WHERE : 조건을 만족하는 행들 만 검색- condition : column, 표현식, 상수 및 비교 연산자- ORDER BY : 질의 결과 정렬을 위한 옵션(ASC:오름차순(Default),DESC내림차순)SQL문의 작성 방법- SQL 문장은 대소문자를 구별하지 않는다.- SQL 문장은 한 줄 또는 여러 줄에 입력될 수 있다.- 일반적으로 키워드는 대문자로 입력한다. 다른 모든 단어, 즉 .. 더보기
MERGE 문의 이해 및 활용 MERGE 문의 이해- MERGE문은 조건에 따라서 데이터의 삽입,갱신,삭제 작업을 한번에 할 수 있다.- 해당 행이 존재하는 경우 UPDATE(DELETE포함 할 수 있음)를 수행하고, 새로운 행일경우 INSERT를 수행한다.- 대상 테이블에 대한 UPDATE/INSERT 조건은 ON절에 의해 결정된다.- MERGE문에서 CLOB 사용시 업데이트 할 내용이 2000bytes가 넘을때 ORA-00600 오류가 발생하며, patch set 11.2.0.2 버전으로 해결할 수 있다.MERGE Syntax?12345678910111213MERGE [ hint ] INTO [ schema. ] { table | view } [ t_alias ] USING { [ schema. ] { table | view } .. 더보기
데이터의 삽입, 수정, 삭제 INSERTINSERT명령어는 테이블 안에 데이터를 삽입하는 역할을 한다.INSERT 문법- 실제 데이터는 VALUES 괄호()안에 입력하고 문자열은 단일 따옴표(' ')로 둘러싼다.- 각각의 테이터 구분은 ","로 한다.- 테이블 이름 옆에 ()생략시에는 자동으로 모든 컬럼을 VALUES()안에 입력 시킨다.INSERT 예제 -- 모든 데이터를 입력할 경우 SQL> INSERT INTO emp VALUES(7369, 'SMITH', 'CLERK', 7902, TO_DATE('80/12/17'), 800, NULL, 20); -- 원하는 데이터만 입력할 경우 SQL> INSERT INTO dept (deptno, dname) VALUES(10, 'ACCOUNTING' ); -- SELECT 문장을 이용한.. 더보기
테이블의 관리 테이블 컬럼의 관리테이블의 컬럼은 ADD, MODIFY, DROP연산자를 통해서 관리 할 수 있습니다.ADD 연산자테이블에 새로운 컬럼을 추가 할 때 사용 한다. -- VARCHAR2의 데이터 형을 가지는 addr 컬럼을 emp 테이블에 추가 SQL> ALTER TABLE emp ADD (addr VARCHAR2(50)); MODIFY 연산자테이블의 컬럼을 수정 하거나 NOT NULL컬럼으로 변경 할 수 있으며, 컬럼이 이미 테이터를 가지고 있을 경우 다른 데이터형으로 변경이 불가능 하다. -- ename 컬럼을 VARCHAR2 50자리로 수정한 예제. SQL> ALTER TABLE emp MODIFY (ename VARCHAR2(50)); SQL> ALTER TABLE emp MODIFY (ename .. 더보기
LOB, LONG, LONG RAW 데이터 타입 간의 비교 LOB, LONG, LONG RAW 데이터 타입의 비교- 테이블의 한 ROW에 여러 LOB 컬럼이 있을 수 있는 반면, LONG 또는 LONG RAW 컬럼은 한 ROW에 하나 밖에 사용될 수 없다.- LOB는 사용자 정의 데이터 타입 (user-defined datatype)의 속성 (attribute) 으로 사용 될 수 있는 반면, LONG이나 LONG RAW는 속성으로 사용될 수 없다.- LONG 또는 LONG RAW는 값 전체가 테이블 내에 저장이 되는 반면, LOB는 테이블 컬럼내에 LOB locator만 저장이된다. BLOB과 CLOB (내부 LOB) 데이터는 별도의 테이블스페이스에 저장시킬 수 있으며, BFILE (외부 LOB) 데이터는 데이터베이스 외부의 별도 파일로 존재한다. 따라서 LOB.. 더보기
오라클 데이터 타입 - 관계형 데이터베이스에서 제공하는 데이터 타입은 대개 CHAR, VARCAHR2, NUMBER, DATE, LONG, RAW, LONG RAW, ROWID 타입으로 분류한다.- 원하는 정보를 가장 효율적으로 처리하기 위해서 적절한 데이터 타입의 선정이 필요 하다.- 적절하지 못한 데이터 타입의 선정은 수행속도를 나쁘게 하고 불필요한 자원을 낭비를 가져온다.VARCHAR2 타입- 가변길이 문자형 데이터 타입- 최대 길이 : 2000 바이트(반드시 길이 지정)- 다른 타입에 비해 제한이 적다- 일부만 입력시 뒷부분은 NULL- 입력한 값의 뒷부분에 있는 BLANK도 같이 입력- 전혀 값을 주지 않으면 NULL 상태 입력- 지정된 길이보다 길면 입력시 에러 발생- 컬럼 길이의 편차가 심한 경우, NULL 로.. 더보기
테이블의 제약조건 제약조건 (Constraint) 이란?제약조건이란 테이블에 부적절한 자료가 입력되는 것을 방지하기 위해서 여러 가지 규칙을 적용해 놓는거라 생각하면 된다. 간단하게 테이블안에서 테이터의 성격을 정의하는 것이 바로 제약조건 이다.- 제약조건은 데이터의 무결성 유지를 위하여 사용자가 지정할 수 있는 성질 이다.- 모든 제약조건은 데이터 사전(DICTIONARY)에 저장 된다.- 의미있는 이름을 부여했다면 CONSTRAINT를 쉽게 참조할 수 있다.- 표준 객체 명명법을 따르는 것이 좋다.- 제약조건은 테이블을 생성할 당시에 지정할 수도 있고, 테이블 생성 후 구조변경(ALTER)명령어를 통해서도 추가가 가능하다.- NOT NULL제약조건은 반드시 컬럼 레벨에서만 정의가 가능하다.NOT NULL 조건컬럼을 필.. 더보기
테이블의 생성 테이블은 실제로 데이터들이 저장되는 곳 이라고 생각하면 쉽게 이해 할 수 있으며, CREATE TABLE 명령어를 이용해서 테이블을 생성 할 수 있다.테이블이란?- 테이블은 데이타베이스의 기본적인 데이타 저장 단위 이다.- 데이타베이스 테이블은 사용자가 접근 가능한 모든 데이타를 보유하며 레코드와 컬럼으로 구성 된다.- 관계형 데이타베이스가 아닌 예전의 데이타 베이스 용어에서는 파일과 테이블이, 필드와 컬럼이, 그리고 레코드와 행이 동일시 되었다.- 테이블은 시스템내에서 독립적으로 사용되길 원하는 엔티티를 표현할수 있다. 예를 들면, 회사에서의 고용자나 제품에 대한 주문은 테이블로 표현 가능하다.- 테이블은 두 엔티티간의 관계를 표현할 수 있다. 즉 테이블은 고용자와 그들의 작업 숙련도 혹은 제품과 주문.. 더보기
오라클 데이터베이스를 설치하면 기본적으로 생성되는 Role 오라클 데이터베이스를 생성하면 기본적으로 몇 가지의 ROLE이 생성 된다. DBA_ROLES 데이터 사전을 통하여 미리 정의된ROLE을 조회 할 수 있다. SQL>SELECT * FROM DBA_ROLES; ROLE PASSWORD ---------------------- ----------- CONNECT NO RESOURCE NO DBA NO SELECT_CATALOG_ROLE NO EXECUTE_CATALOG_ROLE NO DELETE_CATALOG_ROLE NO EXP_FULL_DATABASE NO IMP_FULL_DATABASE NO .... 이 외에도 많이 ROLE이 존재하는데, 가장 많이 사용하는 세 가지만 설명 하겠다. CONNECT ROLE- 오라클에 접속 할 수 있는 세션 생성 및 테이.. 더보기
롤(Role) 롤(ROLE) 이란 사용자에게 허가 할 수 있는 권한들의 집합 이라고 할 수 있다.롤(ROLE) 이란?- ROLE을 이용하면 권한 부여와 회수를 쉽게 할 수 있다.- ROLE은 CREATE ROLE권한을 가진 USER에 의해서 생성 된다.- 한 사용자가 여러개의 ROLL을 ACCESS할 수 있고, 여러 사용자에게 같은 ROLE을 부여할 수 있다.- 시스템 권한을 부여하고, 취소할 때와 동일한 명령을 사용하여 사용자에게 부여하고, 취소 한다.- 사용자는 ROLE에 ROLE을 부여할 수 있다.- 오라클 데이터베이스를 설치하면 기본적으로 CONNECT, RESOURCE, DBA ROLE이 제공 된다.아래의 그림처럼 DBA가 유저들에게 권한을 부여할 때 일일이 권한 하나하나씩을 지정을 한다면 몹시 불편할 것 입.. 더보기