์ค๋ผํด (13) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ ์ค๋ผํด ๊ตฌ๋ฒ์ ๋ค์ด๋ก๋-2 ์ง๋ ํฌ์คํ ์ด ๊ถ๊ธํ์๋ค๋ฉด >>> https://howtomakecode.tistory.com/255 ์ค๋ผํด ๊ตฌ๋ฒ์ ๋ค์ด๋ก๋-1 ์ค๋ผํด ๊ตฌ๋ฒ์ ์ ์ด๊ณณ์์ ๋ค์ด๋ก๋ ๊ฐ๋ฅํฉ๋๋ค. https://edelivery.oracle.com/osdc/faces/SoftwareDelivery https://login-ext.identity.oraclecloud.com/ui/v1/error?signature=GhF%2Fy4%2B3QAGa63tken3PRsPPPSn2gSoxja%2F%2Fqq8sb1dg2Mr%2B%2FhveIUjR howtomakecode.tistory.com setupํ์ผ์ ์คํํ๋ค๋ฉด cmd ์ฐฝ์ด ์ ์ ์ผ์ง๊ณ ๋ค์ ์๋์ด ๋น๋๋ค. ์๋์ฐ ๋ฒ์ ๋ณด๋ค ์ค๋ผํด ๋ฒ์ ์ด ๋ฎ์ผ๋ฉด ์ด๋ฐ ์๋ฆผ์ด ๋จ๋๋ฐ ์ ๋๋ฅด๊ณ ์งํํ๋ฉด.. ์ค๋ผํด ๊ตฌ๋ฒ์ ๋ค์ด๋ก๋-1 ์ค๋ผํด ๊ตฌ๋ฒ์ ์ ์ด๊ณณ์์ ๋ค์ด๋ก๋ ๊ฐ๋ฅํฉ๋๋ค. https://edelivery.oracle.com/osdc/faces/SoftwareDelivery https://login-ext.identity.oraclecloud.com/ui/v1/error?signature=GhF%2Fy4%2B3QAGa63tken3PRsPPPSn2gSoxja%2F%2Fqq8sb1dg2Mr%2B%2FhveIUjRzAuQsdi1xCnttqt339tJe4797XPka6iu4qeyRVWT1GmACu%2F3un9XVqT6MvjssUwJM8508tcuT44zclfbb6wcq8iGjpCtUTDY%2B6f%2FT7q8kKRyxvbRUms8MqcduPYBY5nfJLdp1d8E5WgCm9XTtGjAq8sG4ebxhnvTT7yDwGkud7Stz%2B.. ์ค๋ผํด ํ๋ก์์ ORACLE PROCEDURE ์ ์ฒด ๊ฒ์ ์ค๋ผํด ํ๋ก์์ ์ ์ฒด ๊ฒ์ SELECT * FROM USER_SOURCE WHERE 1=1 AND TYPE = 'PROCEDURE'; ORACLE ์ค๋ผํด ์ ์ฝ์กฐ๊ฑด ํ์ธ/์ญ์ /์์ฑ ์ ์ฝ์กฐ๊ฑด ํ์ธ SELECT * FROM ALL_CONSTRAINTS WHERE TABLE_NAME = 'ํ ์ด๋ธ๋ช '; SELECT A.UNIQUENESS, B.* FROM ALL_INDEXES A, ALL_IND_COLUMNS B WHERE A.INDEX_NAME = B.INDEX_NAME AND A.TABLE_NAME='ํ ์ด๋ธ๋ช '; ์ ์ฝ์กฐ๊ฑด ์ญ์ ALTER TABLE ํ ์ด๋ธ๋ช DROP CONSTRAINT ์ ์ฝ์กฐ๊ฑด๋ช CASCADE; ์ธ๋ฑ์ค ์์ฑ CREATE UNIQUE INDEX PK๋ช ON ํ ์ด๋ธ๋ช (์ปฌ๋ผ๋ช 1, ์ปฌ๋ผ๋ช 2....); PK ์์ฑ ALTER TABLE ํ ์ด๋ธ๋ช ADD (CONSTRAINT PK๋ช PRIMARY KEY (์ปฌ๋ผ๋ช 1, ์ปฌ๋ผ๋ช 2....)); ์ ๊ทํ(NORMALIZATION)๋? ์ค๋์ SQLD ๊ณผ๋ชฉ > ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ์ดํด > ์ ๊ทํ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ์ ๊ทํ์ ๊ฐ๋ ์ด์ํ์์ด ์๋ ๋ฆด๋ ์ด์ ์ ๋ถํดํด์ ์ด์ํ์์ ์์ ๋ ๊ณผ์ ํจ์์ ์ข ์์ฑ ๋ฑ์ ์ด๋ก ์ ๊ทผ๊ฑฐํด ์ข ๋ ์์ ๋จ์์ ํ ์ด๋ธ๋ก ์ค๊ณํ๋ ๊ณผ์ ์ ๊ทํ๋ ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๋ ์๋๊ฐ ๋นจ๋ผ์ง ์๋ ์๊ณ ๋๋ ค์ง ์๋ ์์ต๋๋ค. โป ์ด์ํ์: ๋ถํ์ํ ๋ฐ์ดํฐ ์ค๋ณต์ผ๋ก ์ธํด ๋ฆด๋ ์ด์ ์ ๋ํ ๋ฐ์ดํฐ ์ฝ์ , ์์ , ์ญ์ ์ฐ์ฐ์ ์ํํ ๋ ๋ฐ์ํ ์ ์๋ ๋ถ์์ฉ [DB] ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๊ทํ์ ์ด์ ํ์ (Normalization & Anomaly) ์ ๊ทํ๋ ์ด์ ํ์์ ์ ๊ฑฐํ๊ธฐ ์ํด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ค๊ณํด ๋๊ฐ๋ ๊ณผ์ ์ด๋ค. ์ฌ๊ธฐ์ ์ด์ ํ์์ด๋ ๋ถํ์ํ ๋ฐ์ดํฐ ์ค๋ณต์ผ๋ก ์ธํด ๋ฆด๋ ์ด์ ์ ๋ํ ๋ฐ์ดํฐ ์ฝ์ , ์์ , ์ญ์ .. ์ค๋ผํด ๋ฐ์ดํฐ ์กฐํ/์ฝ์ /์ญ์ /๊ฐฑ์ ์ด์ ๊ธ์์ ํ ์ด๋ธ crud ์ฟผ๋ฆฌ ์ฌ์ฉํ๋ ๋ฒ์ ๋ฐฐ์ ์ผ๋ ์ปฌ๋ผ๋ณ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ๋ ๋ฐฉ๋ฒ์ ๋ํด์๋ ์์๋ณด๊ฒ ์ต๋๋ค. ํ ์ด๋ธ crud ๊ฐ๋ ์ ๋ณด๊ณ ์ถ์ผ์๋ค๋ฉด ์ด ๋ถ๋ถ์ ํด๋ฆญํ์๋ฉด ๋ฉ๋๋ค. ๋ฐ์ดํฐ ์กฐํ, ์์ , ์ฝ์ , ์ญ์ ๋ฐฉ๋ฒ์ ํ์ ๋ฐ ์์๋ฅผ ์ ์ด๋ณด์์ต๋๋ค. ๋ฐ์ดํฐ ์กฐํ SELECT ํ์ select ์ปฌ๋ผ๋ช 1, ์ปฌ๋ผ๋ช 2, ... from ์กฐํํ ํ ์ด๋ธ๋ช ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๊ณ ์ถ์ ๊ฒฝ์ฐ select * from ํ ์ด๋ธ๋ช ์์ -- tb_emp ํ ์ด๋ธ์ ์ ์ฒด ๋ฐ์ดํฐ ์กฐํ SELECT * FROM tb_emp; -- tb_emp ํ ์ด๋ธ์ ์๋ emp_no, emp_nm ๋ฐ์ดํฐ ์กฐํ SELECT emp_no, emp_nm FROM tb_emp; ๊ฒฐ๊ณผ SELECT ๋ฌธ ์์ฑ ๊ท์น ๋๋ณด๊ธฐ - ๋๋ฌธ์์ ์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง.. ์ค๋ผํด ํ ์ด๋ธ ์์ฑ/์กฐํ/์์ /์ญ์ ์ค๋ผํด ํ ์ด๋ธ ์์ฑ/์์ /์ญ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ์ค๋ผํด ํ ์ด๋ธ ์์ฑ CREATE ์ญํ ํ ์ด๋ธ์ ์์ฑ ํ์ CREATE TABLE [์์ฑํ ํ ์ด๋ธ๋ช ] (์ปฌ๋ผ๋ช ๋ฐ์ดํฐํ์ ๊ธฐ๋ณธ๊ฐ NULL์ฌ๋ถ์ฒดํฌ); ์์ CREATE TABLE EMP ( EMPNO NUMBER(4) DEFAULT 1000 NOT NULL, ENAME VARCHAR2(10), ADDRESS VARCHAR2(300), TEL_NO VARCHAR2(10), DEPT_ID NUMBER(2) ); PK ์์ฑ -- ALTER TABLE [ํ ์ด๋ธ๋ช ] ADD CONSTRAINT [PK์ด๋ฆ] PRIMARY KEY (PK๊ฐ๋ ์ปฌ๋ผ๋ช ); ALTER TABLE EMP ADD CONSTRAINT EMP_PK PRIMARY KEY (EMPNO); ํ ์ด๋ธ .. ์ค๋ผํด ๊ด๋ฆฌ์ ๊ณ์ (SYS) ๋น๋ฐ๋ฒํธ ๋ฐ๊พธ๊ธฐ ๊ด๋ฆฌ์๋ก ์ ์ํด์ผ ํ๋๋ฐ ๋น๋ฐ๋ฒํธ๋ฅผ ์์ด๋ฒ๋ ค ์ ์ํ ์ ์๋๊ฒฝ์ฐ sqlplus๋ก ์ ์ โผ Enter user-name: sys as sysdba โผ Enter password: ๋น์นธ์ผ๋ก ๋๊ณ ์ํฐ โผ show user โผ ์ด๋ฆ์ด sys์ธ์ง ํ์ธํ๊ธฐ โผ alter user sys identified by [๋ฐ๊พธ๊ณ ์ถ์ ๋น๋ฐ๋ฒํธ]; โผ ๋ณ๊ฒฝ ์๋ฃ! ์ด์ 1 2 ๋ค์