IT Study/Database-Oracle

UPDATE, DELETE, INSERT 및 예제(hr)

도뿌리 2018. 6. 28. 11:02
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
-- UPDATE
CREATE TABLE TB_JOBS_BK
AS
SELECT * FROM JOBS;
 
SELECT * FROM TB_JOBS_BK;
 
UPDATE TB_JOBS_BK SET MIN_SALARY = 0
WHERE JOB_ID ='AD_VP';
 
ROLLBACK;
 
 
UPDATE TB_JOBS_BK
SET MAX_SALARY = 0
WHERE JOB_ID LIKE 'AD_%';
 
ROLLBACK;
 
UPDATE TB_JOBS_BK
SET MIN_SALARY=NULL, MAX_SALARY = NULL
WHERE JOB_ID LIKE 'AC_%';
 
ROLLBACK;
 
-- DELETE
 
DELETE FROM TB_JOBS_BK
WHERE JOB_ID LIKE 'AD_%';
 
DELETE FROM EMP
WHERE EMPLOYEE_ID = 300;
 
SELECT * FROM EMP
WHERE EMPLOYEE_ID = 300;
 
-- INSERT
INSERT INTO TB_JOBS_BK(JOB_ID, JOB_TITLE, MIN_SALARY, MAX_SALARY)
VALUES ('아이티','IT',10000,20000);
 
--컬럼 순서가 바뀌어도 상관 없음
INSERT INTO TB_JOBS_BK( JOB_TITLE,JOB_ID, MIN_SALARY, MAX_SALARY)
VALUES ('IT','아이티',10000,20000);
 
-- 컬럼명 생략 가능
INSERT INTO TB_JOBS_BK
VALUES ('IT','아이티',10000,20000);
 
-- NULL 허용되는 칼럼은 생략 가능하다.
INSERT INTO TB_JOBS_BK( JOB_TITLE,JOB_ID)
VALUES ('IT','아이티');
 
INSERT INTO EMP ( LAST_NAME,EMAIL,HIRE_DATE, JOB_ID)
VALUES ('일','ABC@NAVER.COM','08/10/11','IT_PROG');
 
-- 문제10) EMPLOYEES 테이블에서 사원 번호가 107인 사원의 부서를 10번으로 변경하여라.
UPDATE EMPLOYEES 
SET DEPARTMENT_ID=10 
WHERE EMPLOYEE_ID=107;
 
-- 문제11) EMPLOYEES 테이블에서 사원 번호가 180인 사원의 부서를 20, 급여를 3500으로 변경하여라.
UPDATE EMPLOYEES 
SET DEPARTMENT_ID=20,SALARY=3500 
WHERE EMPLOYEE_ID=180;
 
-- 문제12) EMPLOYEES 테이블에서 Smith의 업무와 급여가 Hall의 업무와 급여와 일치하도록 수정하라.
UPDATE EMPLOYEES 
SET (JOB_ID,SALARY)=(SELECT JOB_ID,SALARY
            FROM EMPLOYEES
            WHERE LAST_NAME ='Hall')
WHERE LAST_NAME='Smith';
 
SELECT LAST_NAME,JOB_ID,SALARY
FROM EMPLOYEES
WHERE LAST_NAME IN('Smith','Hall');
 
 
/*
TABLE
CREATE TABLE 테이블 생성
DROP 테이블 삭제
ALTER (테이블 변경)
    - ADD
    - MODIFY (칼럼변경)
RENAME TO 이름 변경
TABLE DATA
    - INSERT
    - DELETE
    - SELECT
    - UPDATE
COMMIT - 적용
ROLLBACK - 되돌리기
무결성
- PRIMARY KEY : NOT NULL + 중복 불허용
- UNIQUE      : NULL + 중복 불허용
- FOREIGN KEY : NULL + 외부에 키값
- NOT NULL 
- CHECK       : NULL + 지정된 키값만 허용
*/
 
/* ex3_6란 테이블을 만들고, 사원테이블(employees)에서
   관리자 사번이 124번이고 급여가 2000에서 3000사이에 있는
   사원의 사번,사원명,급여,관리자사번을 입력하는 insert문을 작성해보자
*/
 
CREATE TABLE ex3_6 ("사번","사원명","급여","관리자 사번")
AS
SELECT EMPLOYEE_ID, LAST_NAME,SALARY,MANAGER_ID
FROM EMPLOYEES
WHERE 3=3;
 
-- 다중 튜플 INSERT ***
-- 꼭 VALUES를 쓸 필요가 없당.
INSERT INTO ex3_6 
SELECT EMPLOYEE_ID, LAST_NAME,SALARY,MANAGER_ID
        FROM EMPLOYEES
        WHERE MANAGER_ID=124 AND
              SALARY BETWEEN 2000 AND 3000;
              
ROLLBACK;
cs