[ Oracle DB] scott ์คํค๋ง ์ค์นํ๊ธฐ, ์ ์ฝ ์กฐ๊ฑด ์ค์ ํ๊ธฐ ,์ ์ฝ์กฐ๊ฑด ์คํค๋ง , ์ ์ฝ ์กฐ๊ฑด ํ์ธํ๊ธฐ
- -
scott ์คํค๋ง ์ค์น
๋จผ์ scott.sql ๋ถ๋ฌ์ค์.์๋๋ scott.sql ํ์ผ์ ๋ด์ฉ์ด๋ค.
--
-- Copyright (c) Oracle Corporation 1999. All Rights Reserved.
--
-- NAME
-- demobld_scott.sql
--
-- DESCRIPTION
-- This script creates the SQL*Plus demonstration tables.
--
-- USAGE
-- SQL> @demobld_scott.sql
--
--
-- scott/tiger ๊ณ์ ์์ฑ
-- system ๊ณ์ ์ผ๋ก ์ ์ํ๋ค.
SET FEEDBACK 1
SET NUMWIDTH 10
SET LINESIZE 80
SET TRIMSPOOL ON
SET TAB OFF
SET PAGESIZE 999
SET ECHO OFF
SET CONCAT '.'
SET SHOWMODE OFF
-- PROMPT
-- PROMPT specify password for SYSTEM as parameter 1:
-- DEFINE password_system = &1
-- CONNECT system/&&password_system
-- ๋ณธ์คํฌ๋ฆฝํธ๋ system ๊ณ์ ์์ ์คํ์์ผ์ผํ๋ค.
DROP USER scott CASCADE;
create user scott identified by tiger default tablespace users temporary tablespace temp profile default;
grant connect, resource to scott;
alter user scott account unlock;
-- ์ฌ๊ธฐ์ ๋ถํฐ๋ scott ๊ณ์ ์ผ๋ก ์ ์ํ๋ค.
conn scott/tiger;
SET TERMOUT ON
PROMPT Building demonstration tables. Please wait.
SET TERMOUT OFF
DROP TABLE EMP;
DROP TABLE DEPT;
DROP TABLE BONUS;
DROP TABLE SALGRADE;
DROP TABLE DUMMY;
CREATE TABLE EMP (
EMPNO NUMBER(4) NOT NULL,
ENAME VARCHAR2(10),
JOB VARCHAR2(9),
MGR NUMBER(4),
HIREDATE DATE,
SAL NUMBER(7, 2),
COMM NUMBER(7, 2),
DEPTNO NUMBER(2)
);
INSERT INTO EMP VALUES (7369, 'SMITH', 'CLERK', 7902,TO_DATE('1980-12-17', 'YYYY-MM-DD'), 800, NULL, 20);
INSERT INTO EMP VALUES (7499, 'ALLEN', 'SALESMAN', 7698,TO_DATE('1981-02-20', 'YYYY-MM-DD'), 1600, 300, 30);
INSERT INTO EMP VALUES (7521, 'WARD', 'SALESMAN', 7698,TO_DATE('1981-02-22', 'YYYY-MM-DD'), 1250, 500, 30);
INSERT INTO EMP VALUES (7566, 'JONES', 'MANAGER', 7839,TO_DATE('1981-04-02', 'YYYY-MM-DD'), 2975, NULL, 20);
INSERT INTO EMP VALUES (7654, 'MARTIN', 'SALESMAN', 7698,TO_DATE('1981-09-28', 'YYYY-MM-DD'), 1250, 1400, 30);
INSERT INTO EMP VALUES (7698, 'BLAKE', 'MANAGER', 7839,TO_DATE('1981-05-01', 'YYYY-MM-DD'), 2850, NULL, 30);
INSERT INTO EMP VALUES (7782, 'CLARK', 'MANAGER', 7839,TO_DATE('1981-06-09', 'YYYY-MM-DD'), 2450, NULL, 10);
INSERT INTO EMP VALUES (7788, 'SCOTT', 'ANALYST', 7566,TO_DATE('1982-12-09', 'YYYY-MM-DD'), 3000, NULL, 20);
INSERT INTO EMP VALUES (7839, 'KING', 'PRESIDENT', NULL,TO_DATE('1981-11-17', 'YYYY-MM-DD'), 5000, NULL, 10);
INSERT INTO EMP VALUES (7844, 'TURNER', 'SALESMAN', 7698,TO_DATE('1981-09-08', 'YYYY-MM-DD'), 1500, 0, 30);
INSERT INTO EMP VALUES (7876, 'ADAMS', 'CLERK', 7788,TO_DATE('1983-01-12', 'YYYY-MM-DD'), 1100, NULL, 20);
INSERT INTO EMP VALUES (7900, 'JAMES', 'CLERK', 7698,TO_DATE('1981-12-03', 'YYYY-MM-DD'), 950, NULL, 30);
INSERT INTO EMP VALUES (7902, 'FORD', 'ANALYST', 7566,TO_DATE('1981-12-03', 'YYYY-MM-DD'), 3000, NULL, 20);
INSERT INTO EMP VALUES (7934, 'MILLER', 'CLERK', 7782,TO_DATE('1982-01-23', 'YYYY-MM-DD'), 1300, NULL, 10);
CREATE TABLE DEPT(
DEPTNO NUMBER(2),
DNAME VARCHAR2(14),
LOC VARCHAR2(13)
);
INSERT INTO DEPT VALUES (10, 'ACCOUNTING', 'NEW YORK');
INSERT INTO DEPT VALUES (20, 'RESEARCH', 'DALLAS');
INSERT INTO DEPT VALUES (30, 'SALES', 'CHICAGO');
INSERT INTO DEPT VALUES (40, 'OPERATIONS', 'BOSTON');
CREATE TABLE BONUS(
ENAME VARCHAR2(10),
JOB VARCHAR2(9),
SAL NUMBER,
COMM NUMBER
);
CREATE TABLE SALGRADE(
GRADE NUMBER,
LOSAL NUMBER,
HISAL NUMBER
);
INSERT INTO SALGRADE VALUES (1, 700, 1200);
INSERT INTO SALGRADE VALUES (2, 1201, 1400);
INSERT INTO SALGRADE VALUES (3, 1401, 2000);
INSERT INTO SALGRADE VALUES (4, 2001, 3000);
INSERT INTO SALGRADE VALUES (5, 3001, 9999);
CREATE TABLE DUMMY (DUMMY NUMBER);
INSERT INTO DUMMY VALUES (0);
COMMIT;
SET TERMOUT ON
PROMPT Demonstration table build is complete.
EXIT
์ ์์ค๋ฅผ sql ํ์ฅ์๋ก ์ ์ฅํด์ค๋ค.
oracle sql developer ์์ ํ์ผ > ์ด๊ธฐ๋ฅผ ์ด์ฉํด sql ํ์ผ์ ๋ถ๋ฌ์จ ํ, ๊ทธ ํ์ผ์ ctrl + enter ํค๋ฅผ ์ด์ฉํด ์คํ์ํจ๋ค.
์คํ์ํค๋ฉด ์๋์ ๊ฐ์ด ์ปค๋ฐ์ด ์๋ฃ๋๋ค.
์ด์ ํ์ด์ง๋ฅผ ํ์ธํด๋ณด๋ฉด,
๋๋ค ๋ฌ๋ค.
scott_user ๊ณ์ ์ ๋ง๋ค์ด ๋ณด์.
scott_user ๋ง๋ค๊ธฐ
์ข์ธก ์ด๋ก์ + ๋ฒํผ์ ๋๋ฌ scott_user ๋ฅผ ์ถ๊ฐํด์ค๋ค.
์ ํ๋ฉด๊ณผ ๊ฐ์ด ์ค์ ํด์ฃผ๊ณ ํ ์คํธ ํด์ ์ํ๊ฐ ์ฑ๊ณต์ด๋ฉด ์ ์ฅํ๋ค.
๋น๋ฐ๋ฒํธ๋ "tiger" ์ด๋ค.
์ค์น ํ์ธ
๋ง๋ค์ด์ง scott_user๋ฅผ ๋๋ธ ํด๋ฆญํด ์ํฌ์ํธ๋ฅผ ์ด๊ณ show user; ๋ฅผ ์คํํด๋ณด๊ฒ ์ต๋๋ค.
scott ์คํค๋ง ์ค์น๊ฐ ์ฑ๊ณต์ ์ผ๋ก ๋์์ต๋๋ค.
SCOTT ์ ํ์ฑํ ์์ผ๋ณด์.
alter user scott identified by tiger account unlock;
์ด์ ๋ง์ง๋ง ํ์ธ๋ง ํด๋ณด์
select username, account_status from dba_users where username in ('HR','SCOTT');
์ select ๋ฌธ์ sys_user ์์ ์คํํด์ผ ํ๋ค.
HR ์ ๋ค๋ฅธ ์คํค๋ง์ด๋ผ์ ์๊ด ํ์ง ๋ง๊ณ , SCOTT ์ ์ํ๊ฐ OPEN ์ด๋ฉด ๋จ.
SCOTT ์คํค๋ง ํ์ธํ๊ธฐ
์์ฃผ ์ฌ์ฉํ๋ ๊ฑฐ๋ ์์๋๋ฉด ๋์์ด ๋ฉ๋๋ค.
- user_objects
- user_tables
- user_constraints -> ์ ์ปฌ๋ผ์ด ์๋์ด
- user_tab_columns
- user_cons_columns -> ์๋ ์ปจ์คํธ๋ ์ธํธ ์ ๋ณด๊ฐ ์๋์ด
๊ทธ๋์ ์ ๋๊ฐ๋ฅผ joinํด์ ์ฌ์ฉํด์ ์ ์ถํ์ฌ ์ฐ๋ฉด ๋๋ค. ์คํค๋ง ๊ตฌ์กฐ ํ์ธ์ desc ๋ฅผ ์ด์ฉํ๋ค.
๊ฐ๊ฐ์ ํค๋ค
1)primary key(pk)
2)foreign key(fk) -> ์์ํํ
์ค์ ํด์ฃผ๋ฉด ๋๋ค.
primary key ๋ง ์ฐธ์กฐํ๋ ๊ฒ์ผ๋ก ์๊ณ ์์์ง๋ง, oracle ์์๋ unique ํค๋ ์ธ๋ํค๋ก ์ฐธ์กฐ ๊ฐ๋ฅํ๋ค.
(์ ๋ํฌ ์ธ๋ฑ์ค๋ ๊ฐ๋ฅํฉ๋๋ค)
3)unique key(uk)
ํ๊ต์์ ํ๋ฒ์ pk๋ก ์ฃผ๊ณ , uk๋ ์ฃผ๋ฏผ๋ฒํธ๋ผ๊ณ ์๊ฐํ๋ฉด ์ฝ๋ค.(pk ๋ ์งง์ผ๋ฉด ์ข๊ธฐ ๋๋ฌธ์ ๊ทธ๋ ๊ฒ ์์๋ฅผ ๋ค์์ต๋๋ค.)
4)check(ck)
์ ํ๋๊ธฐ (์ ์๋ 0~100์ ๊น์ง), not null ๋ check constraint ์ ํฌํจ๋๋ค.
5)default(df)
์ค๋ผํด์ default๋ฅผ ์ ์ฝ์กฐ๊ฑด์ผ๋ก ์๋ณธ๋ค.
์ ์ฝ์กฐ๊ฑด ํ์ธํ๊ธฐ
์ฐ์ ์ด๋ค ์ ์ฝ์กฐ๊ฑด์ด ์๋์ง ํ์ธํด๋ณด๊ฒ ์ต๋๋ค.
desc user_constraints;
select owner, constraint_name,constraint_type, table_name, search_condition, r_constraint_name
from user_constraints
order by 4;
not null ์ด๋ผ๋ ์ ์ฝ์กฐ๊ฑด์ด ๊ฒฐ๊ณผ๋ก ๋์ถ ๋๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
์ ์ฝ์กฐ๊ฑด ๋ง๋ค๊ธฐ
-- dept ๋ผ๋ ํ
์ด๋ธ์ deptno ๋ฅผ pk ๋ก ์ค์ ํ๋ ์ ์ฝ์กฐ๊ฑด ์์ฑ
alter table dept
add constraint pk_dept_deptno primary key(deptno);
-- emp ๋ผ๋ ํ
์ด๋ธ์ empno ๋ฅผ pk ๋ก ์ค์ ํ๋ ์ ์ฝ์กฐ๊ฑด ์์ฑ
alter table emp
add constraint pk_emp_empno
primary key(empno);
-- deptno ๋ฅผ ์ธ๋ํค๋ก ํ๋ ์ ์ฝ์กฐ๊ฑด ์์ฑ
alter table emp
add constraint fk_emp_deptno foreign key(deptno) references dept(deptno);
-- ์ ์ฝ์กฐ๊ฑด ์์ฑ ํ์ธ
select owner, constraint_name,constraint_type, table_name, search_condition, r_constraint_name
from user_constraints
order by 4;
๋ง์ง๋ง select ๋ฌธ์ ์คํํ๋ฉด ๊ฒฐ๊ณผ๋ ์๋์ ๊ฐ์ด ๋์ฌ ๊ฒ์ด๋ค.
user_cons_columns ์คํค๋ง์ user_constraints ์คํค๋ง๋ฅผ joinํ์ฌ
์ ์ฝ์กฐ๊ฑด์ด ์ด๋ค ์ปฌ๋ผ์ ๊ฑธ๋ ค์๋์ง๋ ํ์ธํ ์ ์๋ค.
select a.table_name, a.column_name,a.constraint_name,b.constraint_type
from user_cons_columns a join user_constraints b
on a.constraint_name=b.constraint_name;
์ฐ๋ ๊ธฐ ํต ๋น์ฐ๊ธฐ
show recyclebin --sql+๋ช
๋ น์ด
purge recyclebin; -- ํด์งํต:์๊ตฌ์ ์ผ๋ก ๋ฒ๋ฆฐ๋ค๋ ๊ฒ.sql๋ช
๋ น์ด
์ด์ํ ์ฐ๋ ๊ธฐ ๊ฐ์ด ์ถ๋ ฅ๋ ๊ฒฝ์ฐ ํด์งํต์ ํ๋ฒ ๋น์์ค๋ค.
'IT & Security > DB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋น์ ์ด ์ข์ํ ๋งํ ์ฝํ ์ธ
-
[Oracle DB] ์ง๊ณํจ์ | Join 2021.03.26
-
[ Oracle DB ] ํจ์ | ๋ด์ฅํจ์ | ์ง๊ณํจ์ | ๋จ์ผํ ํจ์ | ๋ณํํจ์ | ์ฌ์ฉ์ ์ ์ ํจ์ 2021.03.10
-
[Oracle DB] ์ฌ์ฉ์ ์ ๋ณด ํ์ธ, ์ค๋ ๋ ์ง ํ์ธํ๊ธฐ, ํ๊ฒฝ ๋ณ์ ํ์ธ&๋ณ๊ฒฝํ๊ธฐ , ์์คํ ๋ทฐ 2021.03.10
-
[Oracle DB] Window 10 ์ค๋ผํด 11G ์ค์นํ๊ธฐ 2021.03.10
์์คํ ๊ณต๊ฐ ๊ฐ์ฌํฉ๋๋ค