kok202
SQL 기본

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';