Keep going

2. DDL (Data Definition Language) 본문

Records/DBMS

2. DDL (Data Definition Language)

코딩천재홍 2021. 1. 27. 17:17

사용자 생성 / 권한 부여, 박탈 / 사용자 삭제

  • CREATE USER
  • GRANT, REVOKE

테이블 생성 / 수정/ 삭제

  • CREATE TABLE, ALTER TABLE, DROP TABLE

sys / system 차이

1. sys 계정

- oracle DB 관리자, super user

- data dictionary를 갖고 있음

- db 생성 및 삭제 가능

 

2. system 계정

- 관리자 계정 (하나의 관리자)

- 권한은 sys와 동일하나 db를 생성할 권한 없음

 

sys는 system과 같은 계정을 여럿 만들수도 있다.

 

사용자에 관한 쿼리문

현재 접속 사용자 확인하기 : SHOW user;

 

접속 종료 : quit;

 

새로운 사용자 생성 : CREATE

CREATE USER [아이디] IDENTIFIED BY [비밀번호];

 

생성된 사용자에게 권한 부여 : GRANT

GRANT [권한들] TO [사용자 아이디]; 

 

connect - DB 접속을 위한 권한

resource - 테이블(등) 생성 권한

create view - 뷰(view)를 생성할 수 있는 권한

create procedure - 프로시져를 생성할 수 있는 권한

 

 

사용자에게 부여된 권한 확인 (SYSTEM으로만 볼 수 있다)

SELECT GRANTED_ROLE FROM DBA_ROLE_PRIVS WHERE GRANTEE = '아이디(대문자)';

 

SELECT PRIVILEGE FROM DBA_SYS_PRIVS WHERE GRANTEE = '아이디(대문자)';

 

사용자 권한 제거 : REVOKE

REVOKE [권한들] FROM [사용자 아이디];

 

사용자 비밀번호 변경

ALTER USER [사용자 아이디] IDENTIFIED BY [비밀번호];

 

사용자 삭제

DROP USER [사용자 아이디] CASCADE;

 

타 계정으로 접속 전환

CONN [사용자아이디]/ [비밀번호];

 

오라클 DBMS 내 사용자 계정 목록 (system 이나 sys 계정에서)

SELECT username FROM DBA_USERS;

SELECT username FROM ALL_USERS;

 

<테이블에 관한 쿼리문>

테이블 생성 : CREATE TABLE

CREATE TABLE [테이블 이름] (

[컬럼이름] [컬럼타입] {제약조건},

[컬럼이름] [컬럼타입] {제약조건},

 

);

 

주요 제약조건들

PRIMARY KEY - 고유한 키값을 갖는 필드

NOT NULL - 반드시 입력되어야 하는 필드 (즉, NULL로 두어서는 안되는 필수요소)

DEFAULT - 입력 안되면 기본값으로 지정된 값이 필드에 저장됨

 

 

테이블 구조 확인 : DESC

DESC [테이블 이름];

 

오라클에서 사용하는 필드 데이터 타입

  데이터 타입 정의
문자형 VARCHAR2(n) 가변길이 문자열 데이터(최대 4k)
  CHAR(n) 고정길이 문자열 데이터
CLOB 대용량 텍스트 (최대 4G)
숫자형 NUMBER
NUMBER(p,s)
p : 1~ 38 (precision : 유효자리)
s : -84 ~ 127 (sclae : 소수점 유효자리)
날짜형  DATE  고정길이 날짜 (시간 데이터도 포함)
이진데이터  BLOB 대용량 이진데이터 (최대 4G)

 

테이블 구조 변경 (컬럼 수정) : ALTER ~ MODIFY

ALTER TABLE [테이블 이름]

 MODIFY (

  [컬럼이름] [컬럼타입]

  [컬럼이름] [컬럼타입]

 

)

 

테이블 구조 변경 (컬럼 추가) : ALTER ~ ADD

ALTER TABLE [테이블 이름]

 ADD (

   [컬럼이름] [컬럼타입] {제약조건},

 

)

→ 오라클에서는 새로 추가되는 컬럼은 항상 맨 뒤에 위치한다.

 

테이블 구조 변경 (컬럼 삭제) : ALTER ~ DROP

ALTER TABLE [테이블 이름]

 DROP ([컬럼이름], ... [컬럼타입])

 

Primary Key 해제 > ALTER TABLE test_member DROP primary key;

 

 

현재 계정이 소유한 테이블 목록 확인

SELECT tname FROM tab;

SELECT table_name FROM all_tables WHERE owner = '사용자명(대문자)';

 

테이블 삭제 - DROP TABLE

DROP TABLE [테이블 명] CASCADE CONSTRAINT PURGE;

CONSTRINT : 테이블과 지정된 제약조건도 함께 삭제

PURGE : 휴지통을 거치지 않고 완전 삭제

'Records > DBMS' 카테고리의 다른 글

3. DML (Data Manipulation Language)  (0) 2021.01.27
1. Database 개요  (0) 2021.01.27
Comments