alter table 테이블명 modify 컬럼명 데이터형(크기) 컬럼단위 제약사항 test_alter 테이블에 레코드가 존재한다 따라서 데이터형은 변경할 수 없음을 알 수 있다컬럼 데이터형 크기를 변경할 때에도, 입력된 레코드의 길이를 확인해야한다제약사항을 설정할 때에도, 컬럼에 값이 존재하면 제약사항에 위배되는 값이 있는지 먼저 확인해야한다
2. 컬럼 추가 _ add
추가되는 컬럼은 제일 마지막에만 추가가능
문법) 2. 컬럼추가
alter table 테이블명 add 컬럼명 데이터형(크기) 컬럼단위 제약사항
3. 컬럼 삭제 _ drop column
문법) 3. 컬럼삭제
alter table 테이블명 drop column 컬럼영
4. 테이블명, 컬럼명 변경 _ rename ( column ) to
문법) 4. 컬럼명 변경
alter table 테이블명 rename to 변경할테이블명; alter table 테이블명 rename column 이전컬럼명 to 변경할컬럼명;
○ 2. 제약사항 설정
1. 제약사항 추가 _ add constraint
테이블단위 제약사항의 문법사용
문법) 1.
alter table 테이블명 add constraint 제약사항명 제약사항(적용컬럼);
2. 제약사항 삭제 _ drop constraint
문법) 2.
alter table 테이블명 drop constraint 제약사항명;
3. 제약사항 활성화 (비활성화) _ enable (disable) constraint
비활성화 후 활성화를 하려면 컬럼의 값이 제약사항에 위배되는 값이 없어야한다
문법) 3.
alter table 테이블명 enable constraint 제약사항명; //활성화 alter table 테이블명 disable constraint 제약사항명; //비활성화 제약사항에 위배되는 값이 있을 때에는 활설화 불가 -> delete한 후에 활성화해야한다
○ 3. 계정처리 , 관리 _ 관리자계정만 가능
관리자계정만 가능 _ scott연습계정으로 불가
관리자계정 sqlplus "/as sysdba" 접속(dos) 또는 생성한 id/pw
계정생성(생성된 계정은 접속 및, DBMS의 사용할 수 없다)
Oracle 12c 부터는 계정명 앞에 c##형태로 시작해야한다
c## 형식의 계정을 사용하지 않으려면, "_ORACLE_SCRIPT" 를 활성화해야한다
c## 형식 계정 사용하지 않는 방법
alter session set "_ORACLE_SCRIPT" = true;
1. 계정생성 _ create (DDL)
문법) 1.
create user 계정명 identified by 비번;
여기까지 진행하면 아직 접속할 수 없다
alter session set "_ORACLE_SCRIPT" = true;
create user nhj identified by 1234;
2. 생성된 계정에 권한 부여
connect : 접속권한 - 접속은 가능하나 DB를 사용할 수는 없다
resource : DBMS를 사용할 수 있는 권한
create : 생성권한
dba : dba권한 - 모든걸 할 수 있는 권한
문법) 2.
grant 권한,,, to 계정;
여기까지 진행하면 접속은 가능하지만, tablespace 사용권한이 없다
--c## 으로 시작하는 계정이 아닌 계정 생성
alter session set "_ORACLE_SCRIPT" = true;
create user nhj identified by 1234;
--생성된 계정에 접속, DBMS사용권한 주기
grant connect, resource to nhj;
--생성된 계정으로 접속 수행
create table test(name varchar2(10));
12c 부터는 resource 권한 이후에 tablespaces 사용권한을 alter로 변경해야한다
문법)
alter user 계정명 default tablespace 테이블스페이스명 quota unlimited on 테이블
--c## 으로 시작하는 계정이 아닌 계정 생성
alter session set "_ORACLE_SCRIPT" = true;
create user nhj identified by 1234;
select * from dba_users;
--생성된 계정에 접속, DBMS사용권한 주기
grant connect, resource to nhj;
--생성된 계정이 사용할 tablespace 설정
alter user nhj default tablespace users quota unlimited on users;
--생성된 계정으로 접속 수행
create table test(name varchar2(10));
○ 계정 비밀번호 변경
모든 계정이 접속계정의 비번변경을 할 수 있다 (자신의 계정)
관리자는 모든계정비번 변경가능
alter user 계정명 indentified by 비번;
○ 계정 풀기 or 잠금
alter user 계정명 account lock; alter user 계정명 account unlock;
계정삭제
12c 부터는 "_ORACLE_SCRIPT" = ture 을 수행한 후 사용해야한다
계정정보는 dba_users에서 확인가능
접속중인 계정은 삭제불가
접속이 종료된 계정만 삭제할 수 있다
문법) 계정이, 생성한 Oracle Object 없을 때 drop user 계정명
계정이, 생성한 Oracle Object 있을 때 alter session set "_ORACLE_SCRIPT" = true; drop user 계정명 cascade;