일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Annotaion
- where
- 16bit
- set
- Oracle
- JDBC
- swing
- 상속
- select
- transient
- stream
- 8bit
- 자바
- DB
- Transaction
- 예외처리
- Connection
- Join
- array
- DB연동
- statement
- InputStream
- 조회
- 오라클
- 난수
- Serializable
- Reader
- 다이얼로그
- driver
- java
- Today
- Total
오버플로
[Oracle] alter 본문
alter
- DDL
- 테이블의 관리, 제약사항 관리, 계정관리를 할 수 있는 쿼리 (자주 쓰임!!!)
1. 테이블의 관리
- 컬럼 추가, 컬럼테이터형 변경, 컬럼 삭제, 컬럼명 변경, 테이블명 변경
- 문법) alter table 테이블명 작업…;
** 컬럼 관리의 경우 주의할 점 :
① 제약사항을 붙여서 추가/변경 등 할 수 있으나 레코드의 구성이 제약사항에 위배된다면 추가할 수 없음
② 컬럼 데이터형 변경이나 컬럼명의 경우 기존 데이터 값에 따라 될수도 안 될수도 있음
1) 컬럼 추가
- 추가된 컬럼은 제일 마지막에 추가됨
- 문법) alter table 테이블명 add 컬럼명 데이터형(크기) 컬럼단위 제약사항;
2) 컬럼 데이터형 변경
- 레코드가 존재하지 않으면 데이터 형 자체를 변경할 수 있음
- 레코드가 존재하면 동일 데이터형에서 크기만 변경할 수 있음
> 크기를 줄이는 것은 기존 컬럼 값의 크기에 따라 될 수도 안 될수도 있음.
- 문법) alter table 테이블명 modify 컬럼명 데이터형(크기) 컬럼단위 제약사항;
3) 컬럼 삭제
- 컬럼에 설정된 제약사항도 같이 삭제됨
- 문법) alter table 테이블명 drop column 컬럼명;
4) 컬럼명 변경
- 테이블의 다른 컬럼명과는 다르게 변경
- 문법) alter table 테이블명 rename column 원본컬럼명 to 변경할 컬럼명;
5) 테이블명 변경
- 문법) alter table 원본테이블명 rename to 변경할 테이블명;
2. 제약사항 관리
- 제약사항 추가, 삭제, 활성화, 비활성화
- 제약사항의 활성화(enable), 비활성화(disable) 상태는 user_constraints의 status 컬럼에서 확인 가능
1) 제약사항 추가
- 테이블단위 제약사항 문법으로 추가함
- 문법) alter table 테이블명 add constraint 제약사항명 제약사항종류 (적용컬럼);
2) 제약사항 삭제
- PK를 지우면 pk 설정시 따라오는 not nul도 같이 지워짐
- 문법) alter table 테이블명 drop constraint 제약사항명;
3) 제약사항 활성화/비활성화
- 주의) 비활성화 후 활성화를 할 때, 컬럼 값의 상황에 따라 활성화가 되지 않을 수도 있음
- 문법) alter table 테이블명 상태 constraint 제약사항명;
> 상태에 enable 기입 : 활성화 / 컬럼에 설정된 제약사항을 체크함
> 상태에 disable 기입 : 비활성화 / 컬럼에 설정된 제약사항을 체크하지 않음
(제약사항이 PK인데 비활성화 되어있으면 중복값도 추가 가능해짐)
3. 계정 관리
- 계정 잠그거나 열기, 계정의 비밀번호 변경
1) 계정의 비밀번호 변경
- 모든 계정이 가능 (관리자는 다른 계정의 비밀번호를 변경(=재설정)할 수 있음)
- 문법) alter user 계정명 identified by 비번;
2) 계정을 잠그거나 열기
- 관리자 계정만 가능 (관리자 계정으로 로그인 한 후 다른 계정을 잠그거나 열 수 있음)
- 연습해볼 때는 login을 관리자계정으로 하고 해보자 (id : system / pw : managerjang)
- 문법) alter user 계정명 account lock | unlock;
** dba_users data dictionary : 계정에 대해 조회할 수 있는 data dictionary
# 오늘의 코딩 #
- alter를 사용해보자
#컬럼명 변경하기
--table 생성
select * from emp;
create table test_emp as (select * from emp);
--alter로 컬럼명 변경 (ename -> name)
alter table test_emp rename column ename to name;
#출력 결과#
<기존 테이블>
<변경된 테이블>
=> 컬럼명 변경 완료!
#PK 제약사항 추가하기
-- alter로 empno에 PK 제약사항 추가
alter table test_emp add constraint pk_test_emp primary key (empno);
-- 제약사항 조회
select *
from user_constraints
where table_name='TEST_EMP';
#출력 결과#
=> user_constraints 딕셔너리 조회 결과
PK가 잘 들어가 있당!
'Oracle' 카테고리의 다른 글
[Oracle] sequence (0) | 2021.09.30 |
---|---|
[Oracle] 제약사항 (Constraint) (0) | 2021.09.28 |
[Oracle] union / join / driving table (0) | 2021.09.26 |
[Oracle] subquery / Scalar subquery / inline view (0) | 2021.09.24 |
[Oracle] function(함수) (0) | 2021.09.20 |