2019. 1. 23. 20:35ㆍ[정리] 데이터베이스/[RDBMS] Oracle
SYSTEM에서 유저에게 테이블 권한 주기
GRANT SELECT, UPDATE, INSERT, DELETE ON 데이터베이스.테이블 TO 유저;
테이블 생성 (기본)
CREATE TABLE DBMS(
SEQ_NO NUMBER(5),
DBMS varchar2(20),
INFO varchar2(20),
IN_TIME TIMESTAMP,
IS_VALID char(1) DEFAULT 'Y'
);
테이블 생성 : 기본키, 제약
CREATE TABLE DBMS_P(
SEQ_NO NUMBER(5),
DBMS varchar2(20) UNIQUE,
INFO varchar2(3000) NULL,
IN_TIME TIMESTAMP NOT NULL,
IS_VALID char(1) NOT NULL,
CONSTRAINT PK_SEQ PRIMARY KEY (SEQ_NO),
CONSTRAINT CHECK_VAL CHECK(IS_VALID IN ('Y','N'))
);
테이블 생성 : 기본키
CREATE TABLE SERVICE_C(
SERVICE varchar2(10) PRIMARY KEY,
DBMS varchar2(10) NOT
);
테이블 수정 : 외래키
ALTER TABLE SERVICE_C
ADD CONSTRAINT FK_CONN_REF FOREIGN KEY (DBMS)
REFERENCES DBMS_P(DBMS) ON DELETE CASCADE;
테이블 수정 : 칼럼추가
ALTER TABLE SERVICE_C ADD DESCRIPTION VARCHAR2(3000);
테이블에 주석 달기
COMMENT ON TABLE 테이블명 IS '설명';
테이블에 있는 레코드 날리기
TRUNCATE TABLE DBMS_TMP;
테이블 삭제
DROP TABLE DBMS_TMP;
시퀀스 생성
CREATE SEQUENCE SEQ_DBMS
START WITH 1
INCREMENT BY 1
MAXVALUE 1000;
데이터 삽입
INSERT INTO DBMS_P(SEQ_NO, DBMS, INFO, IN_TIME, IS_VALID) VALUES (SEQ_DBMS.NEXTVAL ,'oracle', '비싸다 ', SYSDATE, 'Y');
INSERT INTO DBMS_P(SEQ_NO, DBMS, INFO, IN_TIME, IS_VALID) VALUES (SEQ_DBMS.NEXTVAL ,'mysql', '무료 ', SYSDATE, 'Y');
INSERT INTO DBMS_P(SEQ_NO, DBMS, INFO, IN_TIME, IS_VALID) VALUES (SEQ_DBMS.NEXTVAL ,'ppas', '저렴하 ', SYSDATE, 'Y');
INSERT INTO DBMS_P(SEQ_NO, DBMS, INFO, IN_TIME, IS_VALID) VALUES (SEQ_DBMS.NEXTVAL ,'PostgreSQL', '', SYSDATE, 'Y');
INSERT INTO DBMS_P(SEQ_NO, DBMS, INFO, IN_TIME, IS_VALID) VALUES (SEQ_DBMS.NEXTVAL ,'DB2', NULL, SYSDATE, 'N');
INSERT INTO DBMS_P(SEQ_NO, DBMS, INFO, IN_TIME, IS_VALID) VALUES (SEQ_DBMS.NEXTVAL ,'PostgreSQL1',
(SELECT INFO FROM anotherUser.DBMS WHERE DBMS='PostgreSQL'), SYSDATE, 'Y');
데이터 수정
UPDATE DBMS_P SET dbms='PPAS' WHERE dbms='ppas';