๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“ฆ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค (DB) ๐Ÿ“ฆ/๐Ÿ…พ ์˜ค๋ผํด DB & SQL

๐Ÿ“ TABLE(ํ…Œ์ด๋ธ”) ๋ฌธ์ œ - 1

by Meteora_ 2021. 2. 17.
728x90
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
--๋ฌธ์ œ1) EMPLOYEES ํ…Œ์ด๋ธ”์—์„œ ๋ถ€์„œ๋ณ„๋กœ ์ธ์›์ˆ˜,ํ‰๊ท  ๊ธ‰์—ฌ,๊ธ‰์—ฌ์˜ ํ•ฉ,์ตœ์†Œ ๊ธ‰์—ฌ,
--์ตœ๋Œ€ ๊ธ‰์—ฌ๋ฅผ ํฌํ•จํ•˜๋Š” EMP_DEPTNO ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๋ผ.
CREATE TABLE EMP_DEPTNO(DEPTNO, E_COUNT, E_AVG, E_SUM, E_MIN, E_MAX) AS
(SELECT department_id deptno, COUNT(department_id), TRUNC(AVG(salary),3), SUM(salary), MIN(salary), MAX(salary)
FROM employees
GROUP BY department_id);
 
SELECT*
FROM EMP_DEPTNO;
 
--๋ฌธ์ œ2) EMP_DEPTNO ํ…Œ์ด๋ธ”์— ETC COLUMN์„ ์ถ”๊ฐ€ํ•˜๋ผ.
--๋‹จ ์ž๋ฃŒํ˜•์€ VARCHAR2(50) ์‚ฌ์šฉํ•˜๋ผ.
 
ALTER TABLE EMP_DEPTNO
ADD ETC VARCHAR(50);
 
--์ปฌ๋Ÿผ ์ถ”๊ฐ€
 
--๋ฌธ์ œ3) EMP_DEPTNO ํ…Œ์ด๋ธ”์— ETC COLUMN์„ ์ˆ˜์ •ํ•˜๋ผ.
--์ž๋ฃŒ ํ˜•์€ VARCHAR2(15)๋กœ ํ•˜๋ผ.
 
ALTER TABLE EMP_DEPTNO 
MODIFY ETC VARCHAR(15);
 
-- ์ˆ˜์ •ํ•˜๋ ค๋ฉด MODIFY
 
--๋ฌธ์ œ4) EMP_DEPTNO ํ…Œ์ด๋ธ”์— ์žˆ๋Š” ETC ์„ ์‚ญ์ œํ•˜๊ณ  ํ™•์ธํ•˜๋ผ.
 
ALTER TABLE EMP_DEPTNO
DROP COLUMN ETC;
 
-- ํ…Œ์ด๋ธ”์— ์žˆ๋Š” ์ปฌ๋Ÿผ์„ ์‚ญ์ œํ•˜๋ ค๋ฉด DROP COLUMN (์ปฌ๋Ÿผ๋ช…)
 
--๋ฌธ์ œ5) ์ด์ „์— ์ƒ์„ฑํ•œ EMP_DEPTNO ํ…Œ์ด๋ธ”์˜ ์ด๋ฆ„์„ EMP_DEPT๋กœ ๋ณ€๊ฒฝํ•˜๋ผ.
 
ALTER TABLE EMP_DEPTNO
RENAME TO EMP_DEPT;
 
-- ์ด๋ฆ„ ๋ณ€๊ฒฝ์‹œ์—” RENAME TO
 
 
--๋ฌธ์ œ6) EMP_DEPT ํ…Œ์ด๋ธ”์„ ์‚ญ์ œํ•˜๋ผ.
 
DROP TABLE EMP_DEPTNO;
 
 
--๋ฌธ์ œ7) EMPLOYEES ํ…Œ์ด๋ธ”์„ EMP ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๊ณ  ๋ณต์ œํ•˜๋„๋ก ํ•˜๋ผ.
--(๋ฐ์ดํ„ฐ ํฌํ•จ)
 
CREATE TABLE EMP (์‚ฌ์›๋ฒˆํ˜ธ, ์ด๋ฆ„, ์›”๊ธ‰, ๋ถ€์„œ๋ฒˆํ˜ธ, ๋ถ€์„œ๋ช…, ๋ถ€์„œ์›”๊ธ‰์ˆœ์œ„)
AS
SELECT a.employee_id, a.first_name, a.salary, d.department_id, d.department_name
COUNT(*)OVER(PARTITION BY d.department_id ORDER BY e.salary)
FROM employees e, departments d
WHERE a.department_id = d.department_id;
 
SELECT * FROM emp;
 
 
--๋ฌธ์ œ8) EMP ํ…Œ์ด๋ธ”์— row๋ฅผ ์ถ”๊ฐ€ํ•ด ๋ด…๋‹ˆ๋‹ค.
--๋‹ค๋งŒ, ๋ฐ˜๋“œ์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ์ž…์„ ์•ˆํ•ด๋„ ๋˜๋ฉด, NULL๋กœ ์„ค์ •ํ•˜๋„๋ก ํ•œ๋‹ค.
 
INSERT INTO EMP (์‚ฌ์›๋ฒˆํ˜ธ, ์ด๋ฆ„, ์›”๊ธ‰, ๋ถ€์„œ๋ฒˆํ˜ธ, ๋ถ€์„œ๋ช…, ๋ถ€์„œ์›”๊ธ‰์ˆœ์œ„)
VALUES(300,'ํ™๊ธธ๋™',15000,200,'๊ฐœ๋ฐœ๋ถ€',1);
 
 
--๋ฌธ์ œ9) EMPLOYEES ํ…Œ์ด๋ธ”์—์„œ EMPNO,ENAME,SAL,HIREDATE์˜ COLUMN๋งŒ
--์„ ํƒํ•˜์—ฌ EMP_10 ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑ(๋ฐ์ดํ„ฐ ๋ฏธํฌํ•จ)ํ•œ ํ›„ 10๋ฒˆ ๋ถ€์„œ๋งŒ ์„ ํƒํ•˜์—ฌ
--์ด์— ๋Œ€์‘ํ•˜๋Š” ๊ฐ’์„ EMP_10ํ…Œ์ด๋ธ”์— ์ž…๋ ฅํ•˜๋ผ.
 
CREATE TABLE EMP_10(EMPNO, ENAME, SAL, HIREDATE)
AS
SELECT employee_id, first_name, salary, hire_date
FROM employees
WHERE 1=2;
 
INSERT INTO EMP_10(EMPNO, ENAME, SAL, HIREDATE)
SELECT employee_id, first_name, salary, hire_date
FROM employees
WHERE department_id = 50--50๋ฒˆ ๋ถ€์„œ๋งŒ ๋‚˜์˜ด
 
 
--๋ฌธ์ œ10) ๋‹ค์Œ์€ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ ์กฐ๊ฑด์ด ์œ„๋ฐฐ๋œ ์ฟผ๋ฆฌ์ด๋‹ค.
--๋ฌด์—‡์„ ์œ„๋ฐฐํ–ˆ๋Š”์ง€ ์•Œ์•„๋ณด๋„๋ก ํ•ฉ์‹œ๋‹ค.
INSERT INTO EMPLOYEES
VALUES (100NULL'YOON''dbs'NULL, SYSDATE, 'ST_MAN'NULLNULL,
NULLNULL);
 
INSERT INTO EMPLOYEES
VALUES (98NULL'YOON''dbs'NULL, SYSDATE, 'ST_MAN'NULLNULL,
NULL100);
 
INSERT INTO EMPLOYEES
VALUES (98NULL'YOON''dbs2'NULL, SYSDATE, 'ST_MAN'NULLNULL,
NULL101);
 
--๊ฐ™์€๊ฐ’(100) ๋“ค์–ด๊ฐ€๋ฉด ์•ˆ๋จ
--DBS ๊ฐ™์ด ๋“ค์–ด๊ฐ€๋ฉด ์•ˆ๋จ
--101๋ฒˆ์˜ ๋ถ€์„œ๋ฒˆํ˜ธ๋Š” ์—†์Œ.
cs

๋Œ“๊ธ€