2016. 5. 7. 12:25

conn system/[비밀번호]

@C:\oraclexe\app\oracle\product\11.2.0\server\rdbms\admin\scott.sql;

alter user scott identified by tiger;

conn scott/tiger;

Posted by CaD
2016. 4. 21. 19:46
SELECT TO_CHAR (SYSTIMESTAMP, 'YYYYMMDDHH24MISSFF') FROM DUAL;
날짜와 월 시간  초단위를 묶어서 넣어줄 수 있다
Posted by CaD
2016. 4. 21. 19:42
INERT INTO 테이블명 (컬럼) VALUES (
(SELECT NVL(MAX (컬럼), 0) + 1 FROM 테이블명 WHERE 기준조건)
)

INERT INTO TB_HR (SN) VALUES (
(SELECT NVL(MAX (SN), 0) + 1 FROM TB_HR WHERE ID = 'RECA' AND PW = 'PASSWORD')
)
즉 번호를 아이디가 RECA 이고 비번이 PASSWORD인 값을 두번 넣으면 각각 1이 더해진 값을 넣어준다
Posted by CaD
2016. 3. 17. 16:18

BEGIN

FOR I IN 1..500 LOOP

INSERT INTO [테이블 명]([컬럼, 컬럼....])

VALUES([컬럼, 컬럼...]);

END LOOP;

END;


예)

BEGIN

    FOR i IN 1..500 LOOP

    INSERT INTO TB_BOARD(IDX, TITLE, CONTENTS, HIT_CNT, DEL_GB, CREA_DTM, CREA_ID) VALUES(SEQ_TB_BOARD_IDX.NEXTVAL, '제목 '||i, '내용 '||i, 0, 'N', SYSDATE, 'Admin');

    END LOOP;

END;

Posted by CaD
2016. 3. 16. 10:41

COMMENT ON TABLE [테이블명] IS '[테이블 주석글]';

: 테이블에 주석 생성


COMMENT ON COLUMN [컬럼명] IS '[컬럼 주석글]';

: 컬럼에 주석 생성


테이블 주석 조회

SELECT  table_name, table_type, comments 

FROM USER_TAB_COMMENTS

WHERE comments IS NOT NULL;


컬럼 주석 조회

SELECT table_name, column_name, comments

FROM USER_COL_COMMENTS

WHERE comments IS NOT NULL;


ex)


CREATE TABLE TB_BOARD

(

    IDX NUMBER PRIMARY KEY,

    PARENT_IDX NUMBER,

    TITLE VARCHAR2(100) NOT NULL,

    CONTENTS VARCHAR2(4000) NOT NULL,

    HIT_CNT NUMBER NOT NULL,

    DEL_GB VARCHAR2(1) DEFAULT 'N' NOT NULL,

    CREA_DTM DATE DEFAULT SYSDATE NOT NULL,

    CREA_ID VARCHAR2(30) NOT NULL

);

  

COMMENT ON TABLE TB_BOARD IS '게시판';

COMMENT ON COLUMN TB_BOARD.IDX IS '인덱스';

COMMENT ON COLUMN TB_BOARD.PARENT_IDX IS '부모글 인덱스';

COMMENT ON COLUMN TB_BOARD.TITLE IS '제목';

COMMENT ON COLUMN TB_BOARD.CONTENTS IS '내용';

COMMENT ON COLUMN TB_BOARD.HIT_CNT IS '조회수';

COMMENT ON COLUMN TB_BOARD.DEL_GB IS '삭제구분';

COMMENT ON COLUMN TB_BOARD.CREA_DTM IS '생성일자';

COMMENT ON COLUMN TB_BOARD.CREA_ID IS '생성자 ID';


주석 삭제시


COMMENT ON TABLE [테이블명 or 컬럼명] IS '';


Posted by CaD
2016. 3. 9. 15:05
select * from dba_users; -- 현재 존재하는 계정 확인

create user [USER] identified by [PW] -- 계정 생성

alter user [USER] identified by [PW] -- 비밀번호 변경

grant create user to [USER]


grant create view to [USER]

 

grant create procedure to [USER]


grant create table to [USER]


grant create session to [USER] -- user 생성시 사용하는 권한으로 서버 접속 권한


revoke create [권한] from [USER]

예) revoke create session from [USER]


drop user [USER] (cascade) -- user제거 (권한 등 모든 것 다 제거)


권한을 줄 때 USER가 다수 일 경우 ,(콤마)로 구분

예) grant create view, create procedure to [USER]

    revoke create session, create table from [USER]


role : grant 명령으로 하나하나 권한을 부여하면 시간과 노력이 많이 소요되므로 권한을 미리 정의하고 한꺼번에 유저에게 할당할 수 있다.


create role [롤 이름] -- 롤 생성

drop role [롤 이름] (cascade)-- 롤 삭제


롤에 권한 부여 및 삭제

grant create [권한] to [롤 이름] -- 롤에 권한 생성

예) grant create session, create table to [롤 이름] -- 롤에 권한 생성

revoke create [권한] from [롤 이름] -- 롤에 권한 삭제

예) revoke create session from [롤 이름]

* 만약 create session과 create table이 있는 롤을 적용하고 롤에서 create session을 제거 후 다시 롤을 적용시키면 마지막에 있는 롤이 권한에 추가 된다. 즉 create table만이 남게 된다.


grant [롤 이름] to [USER] -- 롤 적용

revoke [롤 이름] from [USER] -- 롤 삭제


새로 사용자를 추가할 때 기본으로 사용하면 좋은 것

grant connect, resource to [USER];

session같은 기본적인 것들이 자동으로 들어가게 된다.

Posted by CaD
2016. 3. 9. 12:00

SELECT  'DROP TABLE ' || object_name || ' CASCADE CONSTRAINTS;'

  FROM    user_objects

WHERE   object_type = 'TABLE';


SELECT  'DROP TABLE ' || object_name || ' CASCADE CONSTRAINTS;'

  FROM    user_objects

WHERE   object_type = 'PROCEDURE';


SELECT  'DROP TABLE ' || object_name || ' CASCADE CONSTRAINTS;'

  FROM    user_objects

WHERE   object_type = 'SEQUENCE';


SELECT  'DROP TABLE ' || object_name || ' CASCADE CONSTRAINTS;'

  FROM    user_objects

WHERE   object_type = 'INDEX';


SELECT  'DROP TABLE ' || object_name || ' CASCADE CONSTRAINTS;'

  FROM    user_objects

WHERE   object_type = 'VIEW';

Posted by CaD