일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- O(n)
- 데이터베이스
- java접근제어자
- DB
- sql
- 자바연산자
- DEFAULT
- 자바
- Oracle
- JavaSwing
- C#접근제한자
- Vo
- 접근제한자
- DB 제약조건
- 빅오표기법
- DTO
- 메이븐업데이트
- oracle db
- DATABASE
- JSP
- C#접근제어자
- oracle developer
- 오라클
- Oracle SQL Developer
- mvc디자인패턴
- C언어 표준 라이브러리
- DAO
- java
- break
- o(log n)
성장일기 : 문과생의 개발 여정 (งᐖ)ว ( ᐛ )و
Oracle SQL Developer 테이블 수정하기 (새 컬럼 추가, 삭제, 변경) 본문
1102 수업내용_
# 테이블에 새 컬럼 추가하기
- ALTER TABLE 테이블명 ADD (컬럼명 컬럼타입 제약조건, ...);
- 새 컬럼이 추가되면 기존에 존재하던 행들은 해당 컬럼값이 null이 된다.
- 새 컬럼 NOT NULL 컬럼을 추가할 때는 기본값을 반드시 설정해야 한다.
ALTER TABLE coffee ADD (
coffee_taste VARCHAR2(20),
coffee_satis NUMBER(2, 1)
);
SELECT * FROM coffee;
컬럼 삭제하기
ALTER TABLE 테이블명 DROP COLUMN 컬럼명;
ALTER TABLE coffee ADD (
coffee_taste VARCHAR2(20)
CONSTRAINT coffee_taste_nn NOT NULL,
coffee_satis NUMBER(2, 1)
);
오류 보고 -
ORA-01758: table must be empty to add mandatory (NOT NULL) column
01758. 00000 - "table must be empty to add mandatory (NOT NULL) column"
*Cause:
*Action:
>> 기존에 있는 컬럼들에 null값이 있기 때문에 추가가 안됨
>> NOT NULL 컬럼을 추가할 때는 기본값을 반드시 설정해야하기때문에 DEFAULT 사용
ALTER TABLE coffee ADD (
coffee_taste VARCHAR2(20) DEFAULT 'Bitter'
CONSTRAINT coffee_taste_nn NOT NULL,
coffee_satis NUMBER(2, 1)
);
-- countries 를 countries2로 복사할때 기본키 제약조건은 함께 복사되지 않는다.
CREATE TABLE countries2 AS (SELECT * FROM countries);
-- 함께 복사되는 제약조거는 컬럼에 딸려있는 not null 뿐일것이다. (check도 될 수도 ..?)
DESC countries2;
SELECT * FROM user_constraints WHERE table_name ='COUNTRIES2';
-- countries2.country_id를 외래키로 가져다 쓰기 위해 기본키 제약조건을 추가하였다.
ALTER TABLE countries2 MODIFY(
country_id CHAR(2)
CONSTRAINT countries2_c_id_pk PRIMARY KEY
);
ALTER TABLE coffee ADD(
country_id CHAR(2)
CONSTRAINT coffee_c_id_fk REFERENCES countries2(country_id)
);
UPDATE coffee SET country_id = 'AR';
-- 테이블 컬럼 이름 변경하기 : ALTER TABLE 테이블명 RENAME COLUMN 원래이름 TO 바꿀이름;
ALTER TABLE coffee RENAME COLUMN coffee_satis TO coffee_satisfaction;
-- 테이블 제약조건 이름 변경하기 : ALTER TABLE 테이블명 RENAME CONSTRAINT 원래 TO 바꿀;
ALTER TABLE coffee RENAME CONSTRAINT coffee_price_positive TO coffee_price_pos;
SELECT * FROM user_constraints WHERE table_name ='COFFEE';
-- 테이블 이름 변경하기 : RENAME 테이블명 TO 바꿀이름;
RENAME countries2 TO countries3;
--> 외래키로 참조하고 있던 부모 테이블의 이름을 바꿔도 DB가 알아서 동기화 (파란색)
--> 제약조건명은 동기화 해주지 않음으로 직접 수정해야한다.(빨간색)
ALTER TABLE countries3 RENAME CONSTRAINT countries2_c_id_pk TO countries3_c_id_pk;
바뀐것을 확인 할 수 있다.
'백엔드개발 > DATABASE' 카테고리의 다른 글
SQL Developer / 트랜잭션 Transaction (0) | 2023.11.07 |
---|---|
oracle developer / ON DELETE (0) | 2023.11.07 |
Oracle SQL Developer /DB 제약조건 2 (0) | 2023.11.07 |
Oracle SQL Developer /DB 제약조건 (0) | 2023.11.07 |
테이블 데이터 추가,수정,삭제 Database / Oracle SQL Developer (0) | 2023.11.07 |