본문 바로가기

Learning/SQL

테이블 컬럼(열)의 추가/수정/삭제

<테이블 컬럼(열)의 추가/수정/삭제>

 

  • 90번 부서의 직원들을 새테이블 E_EMP에 입력

1
2
3
4
5
CREATE TABLE E_EMP
AS
SELECT employee_id, last_name, salary, department_id
FROM employees
WHERE department_id=90;
cs

 

 

 

 


 

  • 열의 이름을 지정해서 E_EMP2 테이블 생성

1
2
3
4
5
6
7
CREATE TABLE E_EMP2(emp_id, name, sal, dept_id)
AS
SELECT employee_id, last_name, salary, department_id
FROM employees
WHERE department_id=90;
 
SELECT * FROM E_EMP2;
cs

 

 

 

 


 

  • 열의 추가

1
2
3
4
ALTER TABLE E_EMP
ADD (GENDER VARCHAR2(1));
 
SELECT * FROM E_EMP;
cs

 

 


 

  • 디폴트 값을 0으로 하는 열 추가

1
2
3
4
ALTER TABLE E_EMP
ADD (커미션 NUMBER DEFAULT 0 NOT NULL);
 
SELECT * FROM E_EMP;
cs

 

 

 


 

  • 두 개의 열을 추가

1
2
3
4
5
ALTER TABLE E_EMP
ADD (날짜 DATE DEFAULT sysdate,
     제작자 VARCHAR2(100DEFAULT USER);
 
SELECT * FROM E_EMP;
cs

 

 

 

 


 

  • 열의 수정

1
2
3
ALTER TABLE E_EMP
MODIFY (제작자 VARCHAR2(200)); --원래 (100)=>(200) 사이즈로
DESC e_emp;
cs

 

 

 


 

 

1
2
3
ALTER TABLE E_EMP
MODIFY (제작자 VARCHAR2(50)); --원래 (200)=>(50) 사이즈로
DESC e_emp;
cs

 

 

 


 

 

1
2
ALTER TABLE E_EMP
MODIFY (제작자 VARCHAR2(1)); --원래 (50)=>(1) 사이즈로
cs

 

제작자 열은 2byte 크기의 데이터 타입이므로 1로 줄일 수 없다.

 

 

 

 


 

 

1
2
ALTER TABLE E_EMP
MODIFY (제작자 number);
cs

 

이미 문자형 데이터가 있기 때문에 숫자형으로 바꿀 수 없다.

 

 


 

 

1
2
ALTER TABLE E_EMP
MODIFY (GENDER number);
cs

 

NULL값인 경우에 입력된 값이 없기 때문에 데이터 형식을 바꿀 수 있다.

 


 

  • 제작자의 데이터 형식을 바꾸려 하면

1
2
UPDATE E_EMP
SET 제작자 = NULL;
cs

 


 

 

  • 열의 삭제

1
2
ALTER TABLE e_emp
DROP COLUMN 제작자; --제작자 열 삭제
cs

 

 

  • 여러개의 열 삭제

1
2
ALTER TABLE e_emp
DROP (GENDER, 커미션, 날짜); --여러개 열 삭제
cs

 

 

 

 


  • 열의 이름 수정

1
2
ALTER TABLE e_emp
RENAME COLUMN department_id TO 부서번호;
cs

 

 

 

1
2
3
4
5
6
ALTER TABLE e_emp
RENAME COLUMN salary TO 급여;
ALTER TABLE e_emp
RENAME COLUMN employee_id TO 직원번호;
ALTER TABLE e_emp
RENAME COLUMN last_name TO 이름;
cs

 

 

 

 


 

 

  • 테이블의 이름 수정

1
RENAME e_emp TO 직원테이블;
cs

 

 

 


 

 

<예제>

 

  • employees 테이블의 job_id가 'ST_MAN'인 직원들을 새 테이블 stmans를 만들어 입력. 단 테이블의 컬럼 이름은 id, job, sal (직원 테이블의 employee_id, job_id, salary)

1
2
3
4
5
6
7
CREATE TABLE stmans (id, job, sal)
AS
SELECT employee_id, job_id, salary
FROM employees
WHERE job_id='ST_MAN';
 
SELECT * FROM stmans;
cs

 

 

'Learning > SQL' 카테고리의 다른 글

인덱스  (0) 2020.06.22
  (0) 2020.06.22
제약조건의 삭제  (0) 2020.06.22
제약조건의 추가 및 수정  (0) 2020.06.22
제약조건 (constraints)  (0) 2020.06.19