목록ORACLE SQL (39)
craftmanager
SELECT문은 데이터베이스로부터 저장되어 있는 데이터를 검색하는데 사용 한다. SELECT 문법 SELECT [DISTINCT] {*, column [alias], ...} FROM table_name [WHERE condition] [ORDER BY {column, expression} [ASC | DESC]]; - DISTINCT : 중복되는 행을 제거하는 옵션. - * : 테이블의 모든 column을 출력. - alias : 해당 column에 대해서 다른 이름을 부여할 때 사용. - table_name : 질의 대상 테이블 명 - WHERE : 조건을 만족하는 행들 만 검색 - condition : column, 표현식, 상수 및 비교 연산자 - ORDER BY : 질의 결과 정렬을 위한 옵션(..
MERGE 문의 이해 - MERGE문은 조건에 따라서 데이터의 삽입,갱신,삭제 작업을 한번에 할 수 있다. - 해당 행이 존재하는 경우 UPDATE(DELETE포함 할 수 있음)를 수행하고, 새로운 행일경우 INSERT를 수행한다. - 대상 테이블에 대한 UPDATE/INSERT 조건은 ON절에 의해 결정된다. - MERGE문에서 CLOB 사용시 업데이트 할 내용이 2000bytes가 넘을때 ORA-00600 오류가 발생하며, patch set 11.2.0.2 버전으로 해결할 수 있다. MERGE Syntax MERGE [ hint ] INTO [ schema. ] { table | view } [ t_alias ] USING { [ schema. ] { table | view } | subquery }..
INSERT INSERT명령어는 테이블 안에 데이터를 삽입하는 역할을 한다. INSERT 문법 INSERT INTO table_name(column1, column2,...) VALUES (데이터, '데이터',...); INSERT INTO table_name(column1, column2,...) SELECT column1, column2,... FROM table_name WHERE 조건; - 실제 데이터는 VALUES 괄호()안에 입력하고 문자열은 단일 따옴표(' ')로 둘러싼다. - 각각의 테이터 구분은 ","로 한다. - 테이블 이름 옆에 ()생략시에는 자동으로 모든 컬럼을 VALUES()안에 입력 시킨다. INSERT 예제 -- 모든 데이터를 입력할 경우 SQL> INSERT INTO emp ..
테이블 컬럼의 관리 테이블의 컬럼은 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 (en..
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) 데이터는 데이터베이스 외부의 별도 파일로 존재한다. 따라서 ..
- 관계형 데이터베이스에서 제공하는 데이터 타입은 대개 CHAR, VARCAHR2, NUMBER, DATE, LONG, RAW, LONG RAW, ROWID 타입으로 분류한다. - 원하는 정보를 가장 효율적으로 처리하기 위해서 적절한 데이터 타입의 선정이 필요 하다. - 적절하지 못한 데이터 타입은의 선정은 수행속도를 나쁘게 하고 불필요한 자원을 낭비를 가져온다. VARCHAR2 타입 - 가변길이 문자형 데이터 타입 - 최대 길이 : 2000 바이트(반드시 길이 지정) - 다른 타입에 비해 제한이 적다 - 일부만 입력시 뒷부분은 NULL - 입력한 값의 뒷부분에 있는 BLANK도 같이 입력 - 전혀 값을 주지 않으면 NULL 상태 입력 - 지정된 길이보다 길면 입력시 에러 발생 - 컬럼 길이의 편차가 심..
제약조건 (Constraint) 이란? 제약조건이란 테이블에 부적절한 자료가 입력되는 것을 방지하기 위해서 여러 가지 규칙을 적용해 놓는거라 생각하면 된다. 간단하게 테이블안에서 테이터의 성격을 정의하는 것이 바로 제약조건 이다. - 제약조건은 데이터의 무결성 유지를 위하여 사용자가 지정할 수 있는 성질 이다. - 모든 제약조건은 데이터 사전(DICTIONARY)에 저장 된다. - 의미있는 이름을 부여했다면 CONSTRAINT를 쉽게 참조할 수 있다. - 표준 객체 명명법을 따르는 것이 좋다. - 제약조건은 테이블을 생성할 당시에 지정할 수도 있고, 테이블 생성 후 구조변경(ALTER)명령어를 통해서도 추가가 가능하다. - NOT NULL제약조건은 반드시 컬럼 레벨에서만 정의가 가능하다. NOT NULL..
테이블은 실제로 데이터들이 저장되는 곳 이라고 생각하면 쉽게 이해 할 수 있으며, CREATE TABLE 명령어를 이용해서 테이블을 생성 할 수 있다. 테이블이란? - 테이블은 데이타베이스의 기본적인 데이타 저장 단위 이다. - 데이타베이스 테이블은 사용자가 접근 가능한 모든 데이타를 보유하며 레코드와 컬럼으로 구성 된다. - 관계형 데이타베이스가 아닌 예전의 데이타 베이스 용어에서는 파일과 테이블이, 필드와 컬럼이, 그리고 레코드와 행이 동일시 되었다. - 테이블은 시스템내에서 독립적으로 사용되길 원하는 엔티티를 표현할수 있다. 예를 들면, 회사에서의 고용자나 제품에 대한 주문은 테이블로 표현 가능하다. - 테이블은 두 엔티티간의 관계를 표현할 수 있다. 즉 테이블은 고용자와 그들의 작업 숙련도 혹은 ..