DML
- Data Manipulation Language
- 데이터 조작어
- 데이터를 추가/수정/삭제/조회하는 명렁어 > CRUD
- 사용빈도가 가장 높음
1. insert
- 테이블에 데이터를 추가하는 명령어
- insert into 테이블명 (컬럼리스트) values (값리스트);
insert 구문
1.표준
- 원본 테이블의 정의된 컬럼 순서대로 컬럼리스트와 값리스트를 구성하는 방법
INSERT INTO tblmemo (seq, name, memo, regdate)
VALUES (seqMemo.nextVal, '홍길동','메모',sysdate);
2. 컬럼리스트의 순서는 원본 테이블과 상관없다.
- 컬럼리스트와 값리스트의 순서만 동일하면 된다.
INSERT INTO tblmemo (seq, memo, regdate, name)
VALUES (seqMemo.nextVal,'메모',sysdate,'홍길동');
3. null 컬럼 조작
-- a. null 상수
INSERT INTO tblmemo (seq, name, memo, regdate)
VALUES (seqMemo.nextVal, '홍길동', NULL, sysdate);
-- b. 컬럼, 값 자체 생략
INSERT INTO tblmemo (seq, name, regdate)
VALUES (seqMemo.nextVal, '홍길동',sysdate);
4. default 컬럼 조작
-- a. 컬럼 생략
INSERT INTO tblmemo (seq, memo, regdate)
VALUES (seqMemo.nextVal, '메모', sysdate);
-- b. null 상수 > null(개발자 의지 표현) > default 작동 안함
INSERT INTO tblmemo (seq, name, memo, regdate)
VALUES (seqMemo.nextVal, null,'메모',sysdate);
-- c. default 상수
INSERT INTO tblmemo (seq, name, memo, regdate)
VALUES (seqMemo.nextVal, default,'메모',sysdate);
5. 단축(생략)
- 컬럼리스트를 생략할 수 있다.
- 컬럼시트를 생략하면 테이블의 원본 컬럼 순서대로 값리스트를 작성해야 한다.
INSERT INTO tblmemo VALUES (seqMemo.nextVal, '홍길동','메모',sysdate);
-- null컬럼 생략 불가능
INSERT INTO tblmemo VALUES (seqMemo.nextVal, '홍길동',sysdate);
INSERT INTO tblmemo VALUES (seqMemo.nextVal, '홍길동', NULL, sysdate);
-- default 생략 불가능
INSERT INTO tblmemo VALUES (seqMemo.nextVal,'메모',sysdate);
INSERT INTO tblmemo VALUES (seqMemo.nextVal, default,'메모',sysdate);
6. 복사
- tblMemo 테이블 복사하여 새 테이블 생성(tblMemoCopy)
CREATE TABLE tblMemoCopy
(
seq number(3) PRIMARY KEY, --메모번호(PK)
name varchar2(30) DEFAULT '익명', --작성자
memo varchar2(1000), --메모
regdate DATE DEFAULT sysdate NOT null --작성날짜
);
INSERT INTO tblMemoCopy SELECT * FROM tblMemo; --sub query
- tblMemo 테이블 복사하여 새 테이블 생성(tblMemoCopy2)
-- 제약 사항이 복사가 안된다.
-- 임시(더미) 테스트용으로만 사용한다.
CREATE TABLE tblMemoCopy2 AS SELECT * FROM tblMemo;
INSERT INTO tblMemoCopy2 (seq, name, memo, regdate)
VALUES (15, '홍길동','메모',sysdate);
2. delete
- 원하는 행을 삭제하는 명령어
- DELETE [FROM] 테이블명 [WHERE 절]
- where 조건을 생략하면 테이블 전체 데이터가 삭제되니 주의해야한다.
-- tblinsa의 num이 1001 인 데이터를 삭제
DELETE FROM tblinsa WHERE num = 1001;
3. update
- 원하는 행의 원하는 컬럼값을 수정하는 명령어
- UPDATE 테이블명 SET 컬럼명=값 [, 컬럼명=값][WHERE 절]
- where 조건을 생략하면 테이블 전체 데이터가 같은 데이터로 덮어씌어지니 주의해야한다.
-- tblcountry에서 name이 대한민국인 데이터의 capital를 세종으로 수정
-- 대한민국 수도 이전 : 서울 > 세종
UPDATE tblcountry SET capital = '세종' WHERE name = '대한민국';
'ORACLE' 카테고리의 다른 글
[Oracle] 연산자 및 별칭(alias) (0) | 2023.09.18 |
---|---|
[Oracle] DDL 기초 및 간단한 예제(create, drop, alter) (0) | 2023.09.18 |
[Oracle] 쿼리문 동작 순서 및 간단한 예제 (0) | 2023.09.17 |
[Oracle] SQLDeveloper, DBeaver 새 데이터베이스 접속하기 (0) | 2023.09.17 |
[Oracle] 프로그램 설치(Oracle 11g ex, sqldeveloper, DBeaver) (0) | 2023.09.16 |