Oracle SQL

김성국·2023년 2월 20일
2

SQL

1.DCL

DCL (데이터 제어어) => 사용자를 생성하고 권한을 부여, 삭제 하는 명령어
system 아이디를 가지는 DBA권한

01.GRANT

GRANT CONNECT, RESOURCE, DBA TO ds207

접근 리소스사용, DBA권한 부여

02.REVOKE

REVOKE CONNECT, RESOURCE, DBA FROM ds207; 

권한제거

2.DML

DDL (데어터 정의어) => 자료를 저장하기 전에 설정하는 구조적인것. 테이블 생성 ...

01.CREATE

CREATE TABLE membertbl(
    userid VARCHAR2(50),
    userpw VARCHAR2(200), -- aaa => fei3rni34i3498734ijf389389743ioff894u3r89u8u348
    username VARCHAR2(15),
    userage NUMBER(3),
    userphone VARCHAR2(15), -- 010-0000-0000
    usergender VARCHAR2(1), -- 'M', 'F' 만 추가될 수 있음
    userdate DATE, -- 가입일자
    CONSTRAINT membertbl_pk PRIMARY KEY(userid),    -- 기본키     
    CONSTRAINT membertbl_gender CHECK(usergender IN ('M','F')) -- 성별
);

회원테이블 생성
테이블명 membertbl

■ 기본키(Primary Key)

CONSTRAINTS 제약조건명 PRIMARY KEY(컬럼명,...)

CONSTRAINT membertbl_pk PRIMARY KEY(userid),    -- 기본키     

기본키는 UNIQUE와 NOT NULL 속성을 동시에 가진 제약조건으로,
테이블당 1개의 기본키만 생성할 수 있고,
기본키는 중복값이 존재할 수 없다.
데이터 무결성을 보장한다.(데이터 정확성,일관성)

■ 외래키(Foregin Key)

CONSTRAINT 외래키명 FOREIGN KEY(컬럼명,...) REFERENCES_참조테이블(참조테이블 컬럼명,...)

CONSTRAINT memberaddrtbl_fk FOREIGN KEY(userid) REFERENCES membertbl(userid)  -- 외래키

테이블 간의 참조 무결성을 위한 제약조건이다.
1.반드시 참조하는 테이블이 먼저 생성되어야 하며,
참조키가 참조 테이블의 기본키로 만들어져 있어야 한다
2.참조하는 컬럼과 외래키 컬럼의 순서와 개수는 같아야 한다.

■ CHECK

CONSTRAINT 체크명 CHECK(체크조건)

CONSTRAINT membertbl_gender CHECK(usergender IN ('M','F')) -- 성별

컬럼에 입력되는 데이터를 체크해 특정 조건에 맞는 데이터만 입력 받고
그렇지 않으면 오류를 뱉어 낸다

02.ALTER

테이블을 수정할 수 있다.

1.테이블 생성되고 제약조건

ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명고유
CHECK (컬럼명 IN
('포함할값','포함할값');

ALTER TABLE member ADD CONSTRAINT CHK_member_usergender 
    CHECK(usergender IN('M','F')); 

member테이블의 usergender에 M과 F만 사용가능하도록 제약조건 추가

2.테이블 구조 변경, 외래키 추가하기

테이블을 만들고 난 후에 제약조건을 추가

ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 FOREIGN KEY(컬럼명)
REFERNCES 가져올 테이블명(가져올테이블명);

ALTER TABLE memberaddr ADD CONSTRAINT FK_member_TO_memberaddr
    FOREIGN KEY (userid) REFERENCES member (userid);

0개의 댓글