반응형
목차
DDL - 데이터를 추가, 수정, 삭제하는 데이터 조작어
테이블 생성
- 테이블 생성하기
- 테이블 복사 후 생성
CREATE TABLE DEPT_TEMP AS SELECT * FROM DEPT; 출력 결과 Table DEPT_TEMP이(가) 생성되었습니다.
- 테이블 버리기
DROP TABLE 테이블 이름;
테이블에 데이터 추가 (INSERT)
- INSERT
INSERT INTO 테이블 명 (컬럼 명...)
VALUES (값 ...)
INSERT INTO DEPT_TEMP (DEPTNO, DNAME, LOC)
VALUES (50, 'DATABASE', 'SEOUL')
SELECT * FROM DEPT_TEMP;
출력 결과
Table DEPT_TEMP이(가) 생성되었습니다.
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
50 DATABASE SEOUL
- 열 지정 생략
- 해당 테이블을 만들 때 생성된 열 순서로 삽입
INSERT INTO DEPT_TEMP (DEPTNO, DNAME, LOC)
VALUES (60, 'NETWORK', 'BUSAN')
SELECT * FROM DEPT_TEMP;
출력 결과
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
50 DATABASE SEOUL
60 NETWORK BUSAN
테이블에 NULL 입력
INSERT INTO DEPT_TEMP (DEPTNO, DNAME, LOC)
VALUES (70, ,'WEB', NULL);
SELECT * FROM DEPT_TEMP;
출력 결과
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
50 DATABASE SEOUL
60 NETWORK BUSAN
70 WEB NULL
테이블에 날짜 데이터 입력
- INSERT문으로 날짜 데이터 입력
INSERT INTO EMP_TEMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
VALUES (9999, '홍길동', 'PRESIDENT', NULL, '2001/01/01', 5000, 1000, 10);
출력 결과
9999 홍길동 PRESIDENT 01/01/01 5000 1000 10
INSERT INTO EMP_TEMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
VALUES (1111, '성춘향', 'MANAGER', 9999, '2001-01-05', 4000, NULL, 20);
출력 결과
9999 홍길동 PRESIDENT 01/01/01 5000 1000 10
1111 성춘향 MANAGER 9999 01/01/05 4000 20
NSERT INTO EMP_TEMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
VALUES (2111, '이순신', 'MANAGER', 9999, TO_DATE('07/01/2001','DD/MM/YYYY'), 4000, NULL, 20);
출력 결과
9999 홍길동 PRESIDENT 01/01/01 5000 1000 10
1111 성춘향 MANAGER 9999 01/01/05 4000 20
2111 이순신 MANAGER 9999 01/10/07 4000 20
INSERT INTO EMP_TEMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
VALUES (3111, '심청이','MANAGER',9999,SYSDATE,4000,NULL,30);
출력 결과
9999 홍길동 PRESIDENT 01/01/01 5000 1000 10
1111 성춘향 MANAGER 9999 01/01/05 4000 null 20
2111 이순신 MANAGER 9999 01/10/07 4000 null 20
3111 심청이 MANAGER 9999 25/04/24 4000 null 30
서브쿼리를 이용하여 한 번에 여러 데이터 추가
- VALUES 사용 시 에러
INSERT INTO EMP_TEMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
SELECT E.EMPNO, E.ENAME, E.JOB, E.MGR, E.HIREDATE, E.SAL, E.COMM, E.DEPTNO
FROM EMP E, SALGRADE S
WHERE E.SAL BETWEEN S.LOSAL AND S.HISAL
AND S.GRADE = 1;
출력 결과
EMPNO NUMBER(4,0) Yes 1
ENAME VARCHAR2(10 BYTE) Yes 2
JOB VARCHAR2(9 BYTE) Yes 3
MGR NUMBER(4,0) Yes 4
HIREDATE DATE Yes 5
SAL NUMBER(7,2) Yes 6
COMM NUMBER(7,2) Yes 7
DEPTNO NUMBER(2,0) Yes 8
테이블 데이터 수정 (UPDATE)
- UPDATE
UPDATE 변경할 테이블
SET 변경할 열1 = 데이터, 변경할 열2 = 데이터, ...
WHERE 변경할 대상 행을 선별하기 위한 조건
UPDATE DEPT_TEMP2
SET LOC = 'SEOUL';
출력 결과
10 ACCOUNTING SEOUL
20 RESEARCH SEOUL
30 SALES SEOUL
40 OPERATIONS SEOUL
수정한 내용 되돌리기
ROLLBACK;
데이터 일부분만 수정
UPDATE DEPT_TEMP2
SET DNAME = 'DATABASE',
LOC = 'SEOUL'
WHERE DEPTNO = 40;
출력 결과
10 ACCOUNTING SEOUL
20 RESEARCH SEOUL
30 SALES SEOUL
40 DATABASE SEOUL
테이블에 있는 데이터 삭제
DELETE FROM EMP_TEMP2
WHERE JOB = 'MANAGER';
출력 결과
7369 SMITH CLERK 7902 80/12/17 800 20
7499 ALLEN SALESMAN 7698 81/02/20 1600 300 30
7521 WARD SALESMAN 7698 81/02/22 1250 500 30
7654 MARTIN SALESMAN 7698 81/09/28 1250 1400 30
7788 SCOTT ANALYST 7566 87/04/19 3000 20
7839 KING PRESIDENT 81/11/17 5000 10
7844 TURNER SALESMAN 7698 81/09/08 1500 0 30
7876 ADAMS CLERK 7788 87/05/23 1100 20
7900 JAMES CLERK 7698 81/12/03 950 30
7902 FORD ANALYST 7566 81/12/03 3000 20
7934 MILLER CLERK 7782 82/01/23 1300 10
메모
- 페이징 처리
- P - S AND E
- S = P -1 * 페이지 당 열 수 (10) + 1
- E = P * ROW
- P: 현재 페이지 번호
- ROW 또는 페이지 당 열 수: 한 페이지에 보여줄 데이터의 개수 (여기서는 10으로 가정)
- S: 시작 번호 (Start)
- E: 끝 번호 (End)
// 페이징 처리 // 서브쿼리 사용하지 않으면 연산 순서가 꼬임 // H SELECT ROWNUM, A.EMPNO, A.ENAME FROM( SELECT ROWNUM, EMPNO, ENAME FROM EMP ORDER BY HIREDATE DESC) A WHERE ROWNUM BETWEEN 1 AND 10; 출력 결과 1 7876 ADAMS 2 7788 SCOTT 3 7934 MILLER 4 7902 FORD 5 7900 JAMES 6 7839 KING 7 7654 MARTIN 8 7844 TURNER 9 7782 CLARK 10 7698 BLAKE
- 하나의 트랜잭션이 끝나는 시점
- COMMIT
- ROLLBACK
- DDL
728x90
반응형
'Database' 카테고리의 다른 글
오라클로 배우는 데이터베이스 입문, 둘째 마당 04 - 3번 (0) | 2025.04.27 |
---|---|
4/25 - 트랜잭션, DDL, 객체 종류 (0) | 2025.04.27 |
4/23 - 조인, 서브 쿼리 (0) | 2025.04.27 |
4/22 - 데이터베이스, 데이터 처리와 가공을 위한 오라클 함수, 다중행 함수와 데이터 그룹화 (0) | 2025.04.27 |
4/21 - SQL 데이터 정의어, 오라클 함수 (0) | 2025.04.27 |