Database/Oracle SQL: 43개의 글
INSERTINSERT명령어는 테이블 안에 데이터를 삽입하는 역할을 한다.INSERT 문법- 실제 데이터는 VALUES 괄호()안에 입력하고 문자열은 단일 따옴표(' ')로 둘러싼다.- 각각의 테이터 구분은 ","로 한다.- 테이블 이름 옆에 ()생략시에는 자동으로 모든 컬럼을 VALUES()안에 입력 시킨다.NSERT 예제 -- 모든 데이터를 입력할 경우 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 데이터 타입의 비교- 테이블의 한 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이 생성 된다. 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은 CREATE ROLE권한을 가진 USER에 의해서 생성 된다.- 한 사용자가 여러개의 ROLL을 ACCESS할 수 있고, 여러 사용자에게 같은 ROLE을 부여할 수 있다.- 시스템 권한을 부여하고, 취소할 때와 동일한 명령을 사용하여 사용자에게 부여하고, 취소 한다.- 사용자는 ROLE에 ROLE을 부여할 수 있다.- 오라클 데이터베이스를 설치하면 기본적으로 CONNECT, RESOURCE, DBAROLE이 제공 된다.아래의 그림처럼 DBA가 유저들에게 권한을 부여할 때 일일이 권한 하나하나씩을 지정을 한다면 몹시 불편할 것 입니..
객체권한은 USER가 소유하고 있는 특정 객체를 다른 사용자들이 엑세스 하거나 조작 할 수 있게 하기 위해 생성 한다.객체권한(Object Privileges) 이란?- 테이블이나 뷰, 시퀀스, 프로시저, 함수, 또는 패키지 중 지정된 한 객체에 특별한 작업을 수행 할 수 있게 한다.- 객체 소유자는 다른 사용자에게 특정 객체권한을 부여 할 수 있다.- PUBLIC으로 권한을 부여하면 회수할 때도 PUBLIC으로 해야 한다.- 기본적으로 소유한 객체에 대해서는 모든 권한이 자동적으로 획득된다.- WITH GRANT OPTION 옵션은 ROLE에 권한을 부여할 때는 사용할 수 없다.객체에 따른 권한 목록 예객체권한테이블뷰시퀀스프로시저ALTER○○DELETE○○EXECUTE○INDEX○INSERT○○SELE..
오라클에서 권한(Privilege)은 특정 타입의 SQL문을 실행하거나 데이터베이스나 객체에 접근할 수 있는 권리이다.시스템권한(System Privileges)이란?- 시스템권한은 사용자가 데이터베이스에서 특정 작업을 수행 할 수 있도록 한다- 권한의 ANY 키워드는 사용자가 모든 스키마에서 권한을 가짐을 의미 한다.- GRANT 명령은 사용자 또는 ROLE에 대해서 권한을 부여 할 수 있다.- REVOKE 명령은 권한을 회수 한다.대표적인 시스템권한- CREATE SESSION : 데이터 베이스를 연결할 수 있는 권한- CREATE ROLE : 오라클 데이터베이스 역할을 생성할 수 있는 권한- CREATE VIEW : 뷰의 생성 권한- ALTER USER : 생성한 사용자의 정의를 변경할 수 있는 권..