일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- interrupted()
- first-child
- ObjectInputStream
- 스레드그룸
- ID중복
- 아이디중복
- interrupt()
- include 지시자
- include액션태그
- 리눅스세팅
- Daemon()
- isinterrupted()
- 상관서브쿼리
- Linux세팅
- MemoryStream
- sleep()메소드
- InputDialog
- Linux셋팅
- StringWriter
- 메모리스트림
- 동기화
- String char[] 형변환
- char[] String 형변환
- 상관 서브 쿼리
- StringReader
- first-of-child
- 표현 언어
- ThreadGroup()
- include지시자
- 리눅스셋팅
- Today
- Total
다연이네
[days08] DDL - create, alter, drop와 테이블 기초 본문
1. tbl_member 테이블 존재 확인
select *
from tabs
where table_name like 'TBL_M%';
2. 테이블 구조 확인
desc tbl_member;
3. 테이블 삭제
drop table 테이블명 purge;
4. 테이블명 변경
테이블명 tbl_member을 tbl_student 변경
rename tbl_member to tbl_student;
5. 새로운 컬럼(열) 추가
연락처 컬럼 tel varchar2(11), 비고 컬럼 etc varchar2(200) 추가
-> 기존 테이블 삭제 후 새로 생성하지 않고 수정 DDL( create, alter, drop )
alter table ... add : 컬럼 또는 제약조건 추가할 때 사용
컬럼 추가시 테이블의 행이 존재한다면, 새로 추가되는 컬럼은 이미 존재하는 모든 행의 값은 NULL로 초기화한다.
alter table tbl_member
add (tel varchar2(11), etc varchar2(200));
--add tel varchar2(11) 한개 컬럼 추가시 괄호()생략 가능
6. 컬럼 사이즈 수정
- 변경 대상 컬럼에 데이터가 없거나 null 값만 존재할 경우에는 size를 줄일 수 있다.
- 컬럼의 기본값 변경은 그 이후에 삽입되는 행부터 영향을 준다.
- 컬럼이름의 직접적인 변경은 불가능하다.
- 컬럼이름의 변경은 서브쿼리를 통한 테이블 생성시 alias를 이용하여 변경이 가능하다.
alter table tbl_member
modify(tel varchar2(11), etc varchar2(100));
7. 컬럼명 수정
ETC 컬럼명을 MEMO 라고 수정
--1. 별칭 사용하면 되니까 굳이 수정할 필요 없음
select etc as "memo"
from tbl_member;
--2. 굳이 바꾸겠다면
alter table tbl_member
rename column etc to memo;
8. 컬럼 삭제
테이블 삭제는 drop table 테이블명 purge;
alter table tbl_member
drop column memo;
9. truncate문과 delete문은 모두 레코드(행)를 삭제하는 역할이다.
delete from salgrade;
--5개 행 이(가) 삭제되었습니다.
delete from salgrade
where hisal>2000;
--조건 지정 가능
truncate문과 delete문 차이점은 ?
- delete는 레코드는 삭제하지만 commit, rollback 가능하다. (되돌리기 가능)
where 조건절을 붙여 원하는 레코드만 삭제가 가능하다.
- truncate 하면 완전히 삭제한다.
특정 레코드가 아닌 무조건 모든 레코드를 삭제한다.
- MS/SQL Server는 delete하면 롤백이 불가능하기 때문에 주의가 필요하다 !
ORA-02292: integrity constraint (SCOTT.FK_DEPTNO) violated - child record found
delete했을 때 위의 오류가 뜨는 이유
- Foreign Key 무결성 제약조건에 위배되기 때문이다.
- emp(deptno FK) , dept(deptno PK) 관계가 맺어져 있다.
- dept의 부서번호를 emp가 참조하도록 되어있는데 삭제하면 관계를 맺을 수 없기 떄문에 삭제가 불가능하다.
- 관계를 끊어야 (제약조건을 삭제해야) 삭제가 가능하다.
'Oracle' 카테고리의 다른 글
[days08] any, some 연산자 (0) | 2020.11.09 |
---|---|
[days08] DML - 테이블에 데이터 추가, 복사, 수정 등 + 제약조건 (0) | 2020.11.09 |
[days08] 서브쿼리 (0) | 2020.11.09 |
[days07] 달력 그리기 (0) | 2020.11.06 |
[days07] level 의사컬럼 (0) | 2020.11.06 |