Keep going
2. DDL (Data Definition Language) 본문
사용자 생성 / 권한 부여, 박탈 / 사용자 삭제
- 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 |