오라클 인덱스 생성(CREATE) 및 삭제(DROP)




인덱스 생성



일단 인덱스는 다음과 같이 생성한다.

인덱스 종류는 많지만 많이 쓰는 것 위주 순으로 설명 하겠습니다.


 CREATE INDEX 인덱스 명 ON 테이블명( 컬럼1, 컬럼2.... ); 


아래와 같이 

테이블 명 : SAMPLE, 컬럼 명은 ID, NAME 

인 테이블이 있다고 하자.


CREATE TABLE SAMPLE

(

     ID INT,

     NAME VARCHAR(10)

);


위의 테이블의 인덱스는 다음과 같이 한다.


 CREATE INDEX IDX_SAMPLE ON SAMPLE( ID ); 


IDX_SAMPLE 은 인덱스 명으로 사용자가 임의로 정해 주지만 IDX (INDEX 약칭 ) 라고 명시는 해주는 것이 좋은 습관이다.



인덱스 왜 만드나요?



우리는 DML문에 WHERE 뒤에 검색에 대한 조건을 단다.

데이터가 100만건이 있다면 내가 원하는 조건을 찾을려면 100만번을 다 건건이 찾을려면 시간이 걸릴 것이다.

이러한 검색 시간을 단축 하기 위해서 인덱스를 생성 하며 인덱스를 생성하면 검색 시간이 많이 단축 될 것이다.


인덱스 삭제



인덱스 삭제는 다음과 같이 한다.


 DROP INDEX 인덱스 명; 


앞에서 생성한 인덱스 삭제는 다음과 같이 한다.


 DROP INDEX IDX_SAMPLE; 



UNIQUE 인덱스 생성



해당 컬럼에 중복 값을 허용하지 않고 인덱스를 생성한다.


 CREATE UNIQUE INDEX 인덱스 명 ON 테이블명( 컬럼명 ); 


SAMPLE 테이블에 UNIQUE INDEX를 생성해 보자.


 CREATE UNIQUE INDEX IDX_SAMPLE ON SAMPLE( ID ); 


부연 설명으로 위와 같이 인덱스가 생성 되면 SAMPLE의 ID 값이 같은 값이 INSERT가 안된다.

같은 값을 INSERT를 할라고 하면 다음과 같은 메시지가 출력 된다.


ORA-00001: unique constraint (JINK1982.IDX_SAMPLE) violated 



반응형

오라클 권한 생성(GRANT), 권한 삭제(REVOKE)




권한 생성(GRANT)



1. 권한을 생성 하기 위해서는 우선 DBA로 접속을 해야 한다.


CONN SYS/ORACLE AS SYSDBA


2. 이후 권한을 부여해 줄 사용자를 생성 한다.


CREATE USER SAMPLE_USER IDENTIFIED BY PASSWORD;


3. 생성된 사용자에게 CONNECT 권한 및 RESOURCE 권한을 준다.

   CONNECT는 접속 권한

   RESOURCE는 객체(생성, 수정, 삭제), 데이터(입력, 수정, 조회, 삭제) 권한 

   RESOURCE로 권한을 주지 않고 테이블 생성 데이터 입력만 가능하도록 일부 권한만 줄 수도 있다.

   

   GRANT 권한 종류1, 권한 종류2 TO 권한을 줄 사용자


GRANT CONNECT, RESOURCE TO SAMPLE_USER;


권한 삭제(REVOKE)



권한을 삭제 방법은 아래와 같다.


REVOKE 권한 종류1, 권한 종류2 FROM 권한을 삭제 할 사용자


REVOKE CONNECT, RESOURCE FROM SAMPLE_USER;


반응형

오라클 데이터 입력(INSERT), 조회(SELECT), UPDATE(수정), DELETE(삭제)




테이블 생성



DML( INSERT, SELECT, UPDATE, DELETE ) 하기 전에 우선 데이터를 담을 테이블이 존재해야 데이터를 조작 할 수 있다.

아래와 같이 HUMAN 테이블을 생성해 보자.


CREATE TABLE TBL_HUMAN

(    

     ID INT,

     NAME VARCHAR(10),

     AGE INT

);


테이블이 생성이 완료 후 아래 예제를 시행 하길 바란다.



데이터 입력( INSERT )



생성된 테이블에 데이터를 입력해 보자.

데이터를 입력 하기 위해서는 아래와 같은 형식으로 데이터를 넣어야 한다.


 INSERT INTO 테이블명( 컬럼1, 컬럼2, 컬럼3... ) VALUES ( '값1', '값2', '값3'.... );


이제 예제를 보자.


INSERT INTO TBL_HUMAN( ID, NAME, AGE ) 

       VALUES ( '1', 'JACK', '35' );


INSERT INTO TBL_HUMAN( ID, NAME, AGE )

       VALUES ( '2', 'SUJAN', '34' );


데이터를 입력하면 아래와 같은 메시지가 출력 된다.


1 row created.

1 row created.


데이터를 두 번 입력 하기 때문에 메시지가 두 번 출력 된다.


데이터 조회( SELECT )



앞에서 입력 된 데이터를 조회 해보자.

모든 데이터를 조회 하고 싶을 때는 아래와 같이 한다.


 SELECT * FROM 테이블명 ; 


아래 예제를 실행 해보면 우리가 입력 한 데이터 2개가 모두 조회 되는 것을 확인 할 수 있다.


SELECT * FROM TBL_HUMAN;




데이터를 모두 조회 하고 싶지 않고 특정한 조건에 맞는 데이터를 조회 하고 싶을때 WHERE를 사용하여 데이터를 조회 할 수 있다.


 SELECT * FROM 테이블명 WHERE 컬럼1 = '값1' 


아래 예제를 실행 해보면 ID가 1인 데이터 하나만 조회 되는 것을 확인 할 수 있다.


SELECT * FROM TBL_HUMAN

         WHERE ID = '1';




데이터에서 특정한 컬럼 값만 보고 싶으면 * 대신 컬럼명을 사용한다.


 SELECT 컬럼1, 컬럼2 FROM 테이블명 WHERE 컬럼1 = '값1' 


아래 예제를 실행 해보면 ID가 1인 데이터 하나의 NAME만 조회되는 것을 확인 할 수 있다.


SELECT NAME FROM TBL_HUMAN 

WHERE ID = '1';



데이터 수정( UPDATE )



입력 된 데이터를 수정해 보자

수정 하는 방법은 아래와 같이 

UPDATE 다음에 수정할 테이블 입력, 

SET 다음에 수정 할 컬럼 입력 = '수정 할 값',

WHERE 수정 할 대상 조건 -----> 조건을 주지 않으면 모든 데이터가 수정 된다.


 UPDATE 테이블명 SET 컬럼2 = '수정할 값1'  WHERE 컬럼1 = '값1'


ID가 1인 데이터의 NAME을 HERA로 바꾸는 예제이다. 


UPDATE TBL_HUMAN 

       SET NAME = 'HERA' 

       WHERE ID = '1';


데이터를 수정하면 아래와 같은 메시지가 출력 된다.


1 row updated.


데이터 수정 후에 아래와 같이 조회 하면 이름이 JACK에서 HERA로 바뀐 것을 확인 할 수 있을 것이다.


SELECT NAME FROM TBL_HUMAN 

 WHERE ID = '1';



데이터 삭제( DELETE )



입력된 데이터를 삭제해보자

DELETE 다음에 삭제할 데이터가 있는 테이블 지정,

WHERE 다음에 삭제할 데이터 조건 입력 한다.


 DELETE 테이블명 WHERE 컬럼1 = '값1'


다음 예제를 실행 하면 ID 가 1인 데이터를 삭제한다.


DELETE TBL_HUMAN WHERE ID = '1';


데이터를 삭제하면 아래와 같은 메시지가 출력 된다.


1 row deleted.






데이터를 삭제 하고 다음과 같이 ID가 1인 것을 조회를 하면 


SELECT * FROM TBL_HUMAN 

WHERE ID = '1';


아래와 같이 데이터가 없다는 메시지가 출력 된다.

no rows selected.



반응형

오라클 테이블 생성(CREATE), 제거(DROP), ALTER(수정)




테이블 생성(CREATE)



테이블을 생성 하기 위해서는 CREATE TABLE이라는 명령어를 사용하여 테이블을 만든다.

테이블은 데이터를 담는 그릇 형식이라고 생각하면 된다.

아래 예제를 보자


CREATE TABLE SAMPLE

(    

     TEST_VARCHER VARCHAR(10),

     TEST_INT INT

);


VARCHER 형식의 TEST_VARCHER, INT 형식의 TEST_INT 컬럼을 가지고 있는 SAMPLE이라는 이름의 테이블이 생성 하는 명령 스크립트다.

위의 예제를 실행하면 다음과 같은 메시지가 출력 될 것 이다.



TABLE CREATED


테이블이 생성이 되면 DML을 이용하여 데이터 추가, 삭제, 수정등이 가능하다.



테이블 수정(ALTER)



테이블을 수정 하기 위해서는 ALTER TABLE이라는 명령어를 사용하여 테이블을 수정한다.

ALTER TABLE을 사용할 때는 ADD(컬럼 추가), MODIFY(컬럼 수정), DROP(컬럼 제거)를 이용한다.



우선 생성한 테이블의 정보를 보자


SELECT COLUMN_NAME, DATA_TYPE, DATA_LENGTH 

FROM USER_TAB_COLUMNS 

WHERE TABLE_NAME = 'SAMPLE';


위의 명령어를 실행 하면 방금 생성한 SAMPLE 테이블에 대한 컬럼 정보를 확인 할 수 있다.



이제 여기서 컬럼을 추가 해보자


1. 컬럼추가


ALTER TABLE SAMPLE ADD TEST_VARCHAR2 VARCHAR(15);


위의 명령을 실행 시켜 보고 테이블 정보를 조회 하면 TEST_VARCHER2 컬럼이 생성 된 것을 확인 할 수 있다.



2. 컬럼수정


ALTER TABLE SAMPLE MODIFY TEST_VARCHAR2 VARCHAR(5);


위의 명령을 실행 시켜 보고 테이블 정보를 조회 하면 TEST_VARCHER2 컬럼의 사이즈가 5로 변경 된것을 확인 할 수 있다.



3. 컬럼삭제


ALTER TABLE SAMPLE DROP COLUMN TEST_VARCHAR2;


위의 명령을 실행 시켜 보고 테이블 정보를 조회 하면 TEST_VARCHER2 컬럼이 제거 된 것을 확인 할 수 있다.


테이블 제거(DROP)



테이블을 제거 하기 위해서는 DROP TABLE '테이블명' 이라는 명령어를 사용하여 테이블을 제거한다.


DROP TABLE SAMPLE;


아래는 실행 결과가 아래와 같이 출력 된다.


TABLE DROPED


테이블이 삭제 되어 위이 테이블 정보 조회시 조회 결과가 출력 되지 않는다.



반응형

+ Recent posts