// DML : 데이터 조작
- 데이터 삽입: INSERT
- 데이터 선택(검색) : SELECT
- 데이터 변경: UPDATE
- 데이터 삭제: DELETE
//데이터 삽입 : INSERT
- 테이블에 데이터를 추가하는 명령어 (행 추가)
- INSERT INTO 테이블명(컬럼리스트) VALUES (값리스트)
create table tblMemo (
seq number(3) primary key,
name varchar2(50),
memo varchar2(1000) not null,
regdate date default sysdate
);
1. 표준(권장)
- 원본 테이블에 정의된 컬럼 순서와 개수대로 컬럼리스트를 만들고 그에 따라 값리스트를 구성하는 방법
insert into tblMemo (seq, name, memo, regdate)
values(seqMemo.nextVal, '홍길동', 'memo', sysdate);
2. 컬럼리스트 순서 변경
- 원본 테이블에 정의된 컬럼 순서대로 컬럼리스트를 만드는 것이 아니라 자유롭게 순서를 바꾸어 컬럼리스트를 만들고 그에 따라 값리스트를 구성하는 방법
- 컬럼리스트의 순서와 값리스트의 순서를 반드시 일치시켜야 한다.★★★★★★
insert into tblMemo (name, memo, regdate, seq)
values('gildong', 'memo2', sysdate, seqMemo.nextVal);
3. null 조작
3-1. null 상수 사용 > 명시적
insert into tblMemo (seq, name, memo, regdate)
values(seqMemo.nextVal, null, 'memo', sysdate);
3-2. 컬럼 생략 > 암시적
insert into tblMemo (seq, memo, regdate)
values(seqMemo.nextVal, 'memo', sysdate);
4. default 조작
※주의! null 상수를 사용하면 사용자의 의사를 우선해서 default가 동작하지 않음.
4-1. default 상수 사용 > 명시적
insert into tblMemo (seq, name, memo, regdate)
values(seqMemo.nextVal, 'honggildong', 'memo', default);
4-2. 컬럼 생략 > 암시적
insert into tblMemo (seq, name, memo)
values(seqMemo.nextVal, 'honggildong', 'memo');
5. 단축 표현
- 원본 테이블에 정의된 모든 컬럼에 해당하는 값리스트를 insert 할 때는 컬럼리스트를 생략할 수 있다.
※원본 테이블의 컬럼 순서와 값리스트의 순서가 일치해야 한다. > 값리스트의 순서를 절대 변경할 수 없다!!
insert into tblMemo values(seqMemo.nextVal, 'honggildong', 'memo', sysdate);
6. 테이블 복사
6-1. 새 테이블 생성 후 값 복사
create table tblMemoCopy (
seq number(3) primary key,
name varchar2(50),
memo varchar2(1000) not null,
regdate date default sysdate
);
insert into tblMemoCopy select * from tblMemo;
6-2. 새 테이블 생성 시 값 복사
- 컬럼 구조는 복사가 되는데, 제약 사항은 복사되지 않는다.★★★★★
- 실사용은 힘들고, 개발용으로 대용량의 더미가 필요한 경우에 사용
create table tblMemoCopy as select * from tblMemo;
- 표준 방법으로 insert
insert into tblMemo (seq, name, memo, regdate)
values(seqMemo.nextVal, '홍길동', 'memo', sysdate);
- 테이블 복사
insert into tblMemoCopy select * from tblMemo;
//데이터 선택(검색) : SELECT
- SELECT <값목록> FROM <테이블명>
~ 모든 값 검색
SELECT * FROM MEMBER;
~ 원하는 필드만, 원하는 순서대로 검색
SELECT ID, PWD FROM MEMBER;
~ 원하는 필드만, 원하는 이름으로 설정하여 검색
SELECT ID USER_ID, PWD PASSWORD FROM MEMBER;
--SELECT ID AS USER_ID, PWD AS PASSWORD FROM MEMBER;
** 원하는 이름으로 설정할 때 공백을 사용하고 싶다면 ""로 감싸주면 된다.
> 예약어나 컬럼명은 기본적으로 대소문자를 구분하지 않지만, 이름 설정에 ""를 사용하면 그대로 들어가니 주의!
//데이터 변경 : UPDATE
- 데이터를 수정하는 명령어
- 원하는 행의 원하는 컬럼값을 수정하는 명령어
- UPDATE 테이블명 SET 컬럼명=값> [, 컬럼명=값] x N [where절];
- 모든 행의 값 변경하기
UPDATE MEMBER SET PWD='111'
- 특정 행의 값만 변경하기
UPDATE MEMBER SET PWD='123' WHERE ID = 'hanee';
UPDATE MEMBER SET PWD='111', NAME='하니' WHERE ID = 'hanee';
- 대한민국 수도를 서울에서 세종으로 변경하기
update tblCountry set capital = '세종' where name = '대한민국';
//데이터 삭제 : DELETE
- DELETE [FROM] 테이블명 [where절]
~ 테이블의 모든 행 삭제
DELETE MEMBER;
~ 특정 행의 값만 삭제하기
DELETE MEMBER WHERE ID='sorrel';
'데이터베이스(DB) > Oracle' 카테고리의 다른 글
[Oracle] 연산자 (0) | 2023.02.13 |
---|---|
[Oracle] 트랜잭션 처리 (0) | 2023.02.11 |
[Oracle] 테이블 수정 (0) | 2023.02.08 |
[Oracle] 데이터 형식 (0) | 2023.02.07 |
[Oracle] 테이블 생성 (0) | 2023.02.07 |