반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 리눅스셋팅
- Linux셋팅
- Daemon()
- include액션태그
- interrupted()
- StringReader
- 아이디중복
- ObjectInputStream
- 리눅스세팅
- Linux세팅
- 상관서브쿼리
- ID중복
- include 지시자
- first-of-child
- first-child
- 상관 서브 쿼리
- MemoryStream
- isinterrupted()
- 표현 언어
- interrupt()
- include지시자
- InputDialog
- 메모리스트림
- 스레드그룸
- ThreadGroup()
- 동기화
- sleep()메소드
- char[] String 형변환
- String char[] 형변환
- StringWriter
Archives
- Today
- Total
다연이네
[days08] DML - 테이블에 데이터 추가, 복사, 수정 등 + 제약조건 본문
반응형
DML 데이터 조작어 : update, delete, insert + commit/rollback (트랜잭션 처리)
DML(데이터 조작언어)은 commit, rollback이 필수적이다.
1. 데이터 추가 (insert문)
insert into tbl_member(id, name, age, birth, regdate, tel)
values ('admin', '홍길동', 20, '98/01/01', sysdate, '01012345678');
desc tbl_member;
--테이블 구조를 확인하니 ID와 NAME만 NOT NULL이다.
--그럼 필수 입력 항목만 추가해보자
insert into tbl_member(id, name)
values ('dayeon', '다연');
--age, birth, tel 컬럼은 필수입력 사항이 아니고 null을 허용한다
insert into tbl_member(id, name, age, birth, tel)
values ('lee', '이길동', null, null,null);
commit;
2. 기존 테이블 열 구조와 데이터를 복사하여 새 테이블 생성하기
emp 테이블로부터 30번 부서원들만 새로운 테이블에 저장 + 생성 (tbl_emp30)
create table tbl_emp30 --empno, ename, job
as (
select *
from emp
where deptno = 30
);
--실제 emp와 구조가 똑같고
--deptno가 30인 정보만 있더라
select *
from tbl_emp30;
제약조건은 생성되지 않는다. (not null 제약조건은 생성) pk x
영업부의 사원정보만 뽑아 새 테이블 만들기
create table tbl_insa_sales(empno, ename, hiredate, sal)
as
select num, name, ibsadate, basicpay
from insa
where buseo = '영업부';
select *
from tbl_insa_sales;
3. 제약조건 확인
1) insa테이블의 제약 조건 확인
2) tbl_insa_sales 테이블의 제약조건 확인
select *
from user_constraints -- user은 scott
where table_name = 'INSA';
select *
from user_constraints
where table_name = 'TBL_INSA_SALES';
--NOT NULL 제약조건은 복사되고 그 외 제약조건(PK)은 복사X
4. 기존 테이블 열 구조만 복사하여 새 테이블 생성하기 (데이터는 복사 x)
create table tbl_emp20
as
select *
from emp
where deptno = 20 and 1=0; -- 1=0 false으로 where조건문 거짓됨 (무조건 where을 거짓으로 만들자)
select *
from tbl_emp20;
5. PK 제약조건 새로 설정(추가)
alter table 테이블명
add constraint 제약조건명 테이블명_컬럼명_PK primary key(컬럼명);
alter table TBL_EMP20
add constraint tbl_emp20_empno_pk primary key(empno);
6. 데이터 수정(update문)
update 테이블명
set 컬럼명 = 새값, 컬럼면 = 새값;
10 부서원들의 sal을 10%인상과 동시에 40번 부서로 이동
update emp
set sal=sal*1.1, deptno = 40
where deptno=10;
rollback;
emp 테이블에서 10번부서는 10%, 20번부서는 20% 그 외에는 30% 인상
update emp
set sal = case
when deptno=10 then sal*1.1
when deptno=20 then sal*1.2
else sal*1.3
end;
반응형
'Oracle' 카테고리의 다른 글
[days08] 한번에 여러 데이터 insert하기 / 다중 insert 문 (0) | 2020.11.09 |
---|---|
[days08] any, some 연산자 (0) | 2020.11.09 |
[days08] DDL - create, alter, drop와 테이블 기초 (0) | 2020.11.09 |
[days08] 서브쿼리 (0) | 2020.11.09 |
[days07] 달력 그리기 (0) | 2020.11.06 |
Comments