2. ํ๋ก๊ทธ๋จ ์ค์น ๋ฐ DBMS ๊ฐ์
- Oracle, Dbeaver
2-1) ์ค๋ผํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค์น ๊ณผ์
1. oracle.com ์ ์ -> 2. ๊ฒ์์ฐฝ์ 11g ๊ฒ์ ->
3. Oracle Database Express Edition (XE) Downloads ->
-> 4. ์คํฌ๋กค ๋ด๋ฆฐ ๋ค Prior Release Archive ํด๋ฆญ -> ์์ ์ ์ด์์ฒด์ ์ ๋ง๋ ์ค์นํ์ผ ๋ค์ด๋ก๋
- ์ค๋ผํด ์์ด๋ : tedhan1204@gmail.com
- ์ค๋ผํด ๋น๋ฐ๋ฒํธ : Asdf1234!
-> ๋ค์ด๋ก๋ ํ, ์์ถ ํด์ฌ ํ DISK1 ํด๋ ๋ค์ด๊ฐ์ setup ์คํ
-> ์ค์น ํ์ธ -> win+r - cmd - sqlplus - sys as sysdba // 1234
2-2 ) Dbeaver ์ค์น
Dbeaver ์
๋ ฅ > ๊ณต์ ์ฌ์ดํธ ( ๋งจ ์ ์ฌ์ดํธ ์ ์ )
> ์๋จ Download ํด๋ฆญ( ํ์ )
> ์คํฌ๋กค ๋ด๋ฆฐ ํ Previous versions archive ํด๋ฆญ
> ๋ฒ์ ์ ํ ( 5.3.5 )
> Zip ํน์ setup exe ๋ณธ์ธ ์ด์์ฒด์ ์ ๋ง๋ ํ์ผ ์ค์น
> ๋ค์ด๋ก๋ ํ Deaver ์คํ
> ์๋จ ๋ฉ๋ด๋ฐ DataBase ํด๋ฆญ > New Database Connection
> Oracle ์ ํ ํ Next >
- Host : localhost
- Database : xe
- User name : scott
- Password : 1234;
> Test Connection > ์๋ฌ๊ฐ ๋ธ. > Jarํ์ผ ์ถ๊ฐ > 11g ์ ํ
> C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib > ojdbc6.jar
> Test Connection
2-3 ) DBMS๋ ๋ฌด์์ธ๊ฐ?
- DB ( DataBase )
- MS ( Management System )
- DataBase Management System : ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ
- RDBMS ( Relational DBMS ) : ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ
- ํ
์ด๋ธ๋ผ๋ฆฌ ์๋ก ๊ด๊ณ๋ฅผ ๋งบ๊ณ ์๋ ๋ฐ์ดํฐ ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ
=> DBMS๋ฅผ ์ ์ฌ์ฉํ๋๊ฐ?
- ๋ฐ์ดํฐ๋ฅผ ์ฉ๋์ ๋ฐ๋ผ ์ ์ฅํด ๋๊ณ ํ์์ ๋ฐ๋ผ ์ฌ์ฉํ๊ธฐ ์ํด, ๊ด๋ฆฌํ๊ธฐ ์ํด
2-4 ) ํ
์ด๋ธ
- ์) ์ผํ๋ชฐ
- ์ผํ๋ชฐ์ ๊ตฌ์ฑํ๊ธฐ ์ํด์ ์ฌ์ฉ์, ์ํ, ์ฃผ๋ฌธ์ ๋ํ ์ ๋ณด๊ฐ ํ์ํจ.
---------------------------------------------------------
์ฌ์ฉ์
---------------------------------------------------------
โ โ
์ ์ ๊ด๋ฆฌ ํ๋ก๊ทธ๋จ (Ex)์ดํ) ์ฃผ๋ฌธ ๊ด๋ฆฌ ํ๋ก๊ทธ๋จ
โ โ
---------------------------------------------------------
ํ์ ํ
์ด๋ธ[ ID, ์ฃผ์, ์ด๋ฆ, ์ฐ๋ฝ์ฒ ]
์ํ ํ
์ด๋ธ[ ์ํ์ด๋ฆ, ์ํ๊ฐ๊ฒฉ, ์ํ์ฌ๊ณ ]
์ฃผ๋ฌธ ํ
์ด๋ธ[ ID, ์ํ์ด๋ฆ, ์ํ๊ฐ๊ฒฉ, ์ํ์ฌ๊ณ ]
---------------------------------------------------------
- ํ
์ด๋ธ
- ๋ฐ์ดํฐ๋ค์ด ์ ์ฅ๋๋ ๊ณต๊ฐ
- ํ ( Row )
- ๋ ์ฝ๋, ํํ : ํ๋์ ์ ๋ณด
- ์ด ( column )
- ์์ฑ, ํ๋
- ๊ณตํต๋ ๊ฐ๋ค์ ์ฃผ์
2-5 ) SCOTT ๊ณ์ ์ถ๊ฐ
CMD > SQLPLUS๋ก ์ ์ > @์
๋ ฅ ํ SQLํ์ผ ์ถ๊ฐ ( ๋๋๊ทธ ํ๋ฉด ๋จ )
C:\oraclexe\app\oracle\product\11.2.0\server\rdbms\admin
๊ฒฝ๋ก์ ์๋ SCOTT..SQL > ์ํฐ
3. SQL ( Structed Query Language )
- ์ธํฐํ๋ฆฌํฐ ์ธ์ด์ ํ ์ข
๋ฅ ( ํ์ค ํ์ค ๋ฐ๋ก ํด์๊ณผ ๋์์ ์คํ ๋จ )
- ๋ฐ์ดํฐ๋ค์ ์กฐ์ํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ์ธ์ด์ด๋ค.
- CRUD ( Create Read Update Delete )
- SQL์ ์ข
๋ฅ๋ก๋ DDL, DML, DCL, TCL
3-1 ) DDL ( Data Definition Language )
- ๋ฐ์ดํฐ ์ ์์ด ( Auto commit )
- ๋ฐ์ดํฐ๋ค์ด ์ ์ฅ๋๋ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค ๋ ์ฌ์ฉํ๋ค.
- CREATE : ํ
์ด๋ธ ์์ฑ
- ALTER : ํ
์ด๋ธ ์์
- DROP : ํ
์ด๋ธ ์ญ์
- TRUNCATE : ํ
์ด๋ธ ์ด๊ธฐํ ( ํ
์ด๋ธ ๋ด๋ถ์ ๋ฐ์ดํฐ๋ค์ ๋ชจ๋ ์ญ์ )
3-1-1) CREATE
- ๋ฌธ๋ฒ
CREATE TABLE < ํ
์ด๋ธ ์ด๋ฆ > (
์ปฌ๋ผ๋ช
1 ์๋ฃํ ์ ์ฝ์กฐ๊ฑด(์๋ต๊ฐ๋ฅ),
์ปฌ๋ผ๋ช
2 ์๋ฃํ ์ ์ฝ์กฐ๊ฑด(์๋ต๊ฐ๋ฅ)
...
CONSTRAINT ์ ์ฝ์กฐ๊ฑด๋ช
์ ์ฝ์กฐ๊ฑด ( ์ปฌ๋ผ๋ช
)
);
* ์๋ฃํ( TYPE )
- ํ
์ด๋ธ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ค์ ํํ ( ์ซ์, ๋ฌธ์, ๋ ์ง ๋ฑ )
- ๋ฌธ์์ด
- CHAR(๊ธธ์ด)
- ๊ณ ์ ๋ ๊ธธ์ด์ ์ฐ์
- CHAR(13)
A___ ( A๋ฌธ์ ํ๋ + ๊ณต๋ฐฑ 3๊ฐ )
JUMIN CHAR(13)
1______________________
- VARCHAR(๊ธธ์ด)
- ์์ ์๋ฃํ ( ๊ธฐ๋ฅ์ VARCHAR2์ ๊ฐ์ )
- ์ถํ์ ๋ฐ๋ฅธ ์ฉ๋๋ก ๋ณ๋๋ ์๋ ์๋ค๊ณ ํจ.
- VARCHAR2(๊ธธ์ด)
- ๊ฐ๋ณ ๊ธธ์ด์ ์ฐ์
- VARCHAR2(4) -> A___(x) A
- ์ซ์
- NUMBER(์๋ฆฟ์)
- NUMBER(3) ~ 999
- NUMBER(์๋ฆฟ์, ์์์ ์๋ฆฟ์)
- ๋ ์ง
- DATE : ์์์ ๋ง๊ฒ ์๊ฐ์ ์ ์ฅํ๋ ํ์
- ์๋ฆฟ์ ์ง์ ์ ํ์ง ์๋๋ค.
CREATE TABLE STUDENT(
NAME CHAR(3), -- LEE ์ฑ๋ง ๋ฐ๋๋ค๊ณ ๊ฐ์ ํ์ ๋
AGE NUMBER(2) -- ~ 99
);
* ์ ์ฝ์กฐ๊ฑด
- ์ปฌ๋ผ์ ๋ํ ์์ฑ์ ์ ์ํ๋ ๊ฒ์ด๋ฉฐ, ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํ ์ฉ๋๋ก ์ฌ์ฉ๋๋ค.
- ์ฝ๊ฒ ๋งํด, ํ
์
๋ฅด์ ๋ถ์ ์ ํ ๋ฐ์ดํฐ๊ฐ ๋ค์ด์ค๋ ๊ฒ์ ์ฌ์ ์ ์ฐจ๋จํ๋๋ก ๊ท์น์ ์ ํ๋ ๊ฒ
- PK, UNIQUE, FK, NOT NULL, DEFAULT
- PK ( PRIMARY KEY )
- ํ
์ด๋ธ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๊ณ ์ ํ๊ฒ ์๋ณํ๊ธฐ ์ํ ํค๋ฅผ ์ ์ํ๋ค.
- ์ค๋ณต๋ ๊ฐ์ด ์ฌ ์ ์์ผ๋ฉฐ NULL๊ฐ์ด ์ฌ ์ ์๋ค.
- ์) ์์ด๋ ์
๋ ฅ > ์ค๋ณต๊ฒ์ฌ
- UNIQUE
- PK์ ๊ฐ์ด ์ค๋ณต์ ํ์ฉํ์ง ์์.
- PK์ ๋ค๋ฅธ์ ์ NULL๊ฐ์ ํ์ฉํจ
- NOT NULL
- NULL๊ฐ์ ์
๋ ฅ์ ๊ธ์งํ๋ค.
- FK ( FOREIGN KEY )
- ํ
์ด๋ธ๊ฐ์ ๊ด๊ณ๋ฅผ ์ ์ํ๊ธฐ ์ํด PK๋ฅผ ๋ค๋ฅธ ํ
์ด๋ธ์ ์ธ๋ํค๋ก ๋ณต์ฌํ๋ ๊ฒฝ์ฐ๋ฅผ ์๋ฏธ
์) ํ์ ํ
์ด๋ธ // ์๊ฐ๊ณผ๋ชฉ ํ
์ด๋ธ
ํ์ ํ
์ด๋ธ : ํ์๋ค์ ํ๋ฒ ( ํ๋ฒ PK )
์๊ฐ๊ณผ๋ชฉ ํ
์ด๋ธ : ํ์๋ค์ ํ๋ฒ ( ํ๋ฒ FK )
=> ์๊ฐ๊ณผ๋ชฉ ํ
์ด๋ธ์ ํ์ ํ
์ด๋ธ์ ์๋ ํ๋ฒ์ด ์ฌ ์ ์์๊น?
- DEFAULT
- ์๋ฌด ๊ฐ๋ ์
๋ ฅ๋์ง ์์ ๊ฒฝ์ฐ DEFAULT๋ก ์ ์๋ ๊ฐ์ด ์๋์ผ๋ก ์
๋ ฅ๋๋ค.
-- ํ๋ฒ์ 10์๋ฆฌ๋ผ๊ณ ๊ฐ์
CREATE TABLE STUDENT(
STUNO CHAR(10) CONSTRAINT STU_PK PRIMARY KEY
);
CREATE TABLE SUBJECT(
S_STUNO CHAR(10),
CONSTRAINT STU_FK FOREIGN KEY(S_STUNO) REFERENCES STUDENT(STUNO)
-- ์ด๋ ํ
์ด๋ธ์ ์ด๋ ์ปฌ๋ผ์ ์ฐธ์กฐํ ๊ฒ์ด๋
);
์) 111 ํ๋ฒ์ ๊ฐ์ง ํ์์ด ์๋ค.
ํ์ ํ
์ด๋ธ ์๊ฐ๊ณผ๋ชฉ ํ
์ด๋ธ
111 ์ด์ฉํ ํ๋ฒ ์๊ฐ๊ณผ๋ชฉ
222 ๋ฐ์๊ฒฝ 111` ์ํ
333 ํ๊ธธ๋ 111 ๊ณผํ
222 ์์ด
333 ๋ฌผ๋ฆฌ(o)
3-1-2) ALTER
- ํ
์ด๋ธ์ ์์ ํ๋ ์ญํ ์ ํ๋ค.
- ํ
์ด๋ธ ์ด๋ฆ, ์ปฌ๋ผ์ด๋ฆ, ์ปฌ๋ผ ์ ์ฝ ์ถ๊ฐ ํน์ ์ญ์ , ์ปฌ๋ผ ์ ๊ฑฐ, ์ปฌ๋ผ ์ถ๊ฐ
- ๋ฌธ๋ฒ
- ํ
์ด๋ธ ์ด๋ฆ ๋ณ๊ฒฝ
ALTER TABLE < ํ
์ด๋ธ ์ด๋ฆ > RENAME TO < ๋ณ๊ฒฝํ ํ
์ด๋ธ ์ด๋ฆ >;
- ์ปฌ๋ผ๋ช
๋ณ๊ฒฝ
ALTER TALBE < ํ
์ด๋ธ ์ด๋ฆ > RENAME COLUMN < ์ปฌ๋ผ ์ด๋ฆ > TO < ๋ณ๊ฒฝํ ์ปฌ๋ผ ์ด๋ฆ >;
- ์ปฌ๋ผ ์ถ๊ฐ
ALTER TABLE < ํ
์ด๋ธ ์ด๋ฆ > ADD ( < ์ปฌ๋ผ ์ด๋ฆ > < ์ ์ฝ ์กฐ๊ฑด > );
- ์ปฌ๋ผ ์ ๊ฑฐ
- ์์ ๋ฐ์ดํฐ๊ฐ ์์ด์ผ ์ญ์ ๊ฐ ๊ฐ๋ฅํ๋ค.
ALTER TABLE < ํ
์ด๋ธ ์ด๋ฆ > DROP COLUMN < ์ญ์ ํ ์ปฌ๋ผ ์ด๋ฆ >;
- ์ปฌ๋ผ ์์
- ๊ธฐ์กด์ ๋ฐ์ดํฐ๊ฐ ์๋ค๋ฉด, ๋ณ๊ฒฝํ ์ ์ฝ์กฐ๊ฑด์ ๋ถํฉํด์ผ ์์ ์ด ๊ฐ๋ฅํ๋ค.
CHAR(10) 10๊ธ์์ง๋ฆฌ ๋ฐ์ดํฐ๊ฐ ๋ค์ด์๋ค๊ณ ๊ฐ์ -> VARCHAR2(5)
ALTER TABLE < ํ
์ด๋ธ ์ด๋ฆ > MODIFY ( < ์ปฌ๋ผ ์ด๋ฆ > < ๋ณ๊ฒฝํ ์๋ฃํ > [ ์ ์ฝ์กฐ๊ฑด ] );
- ์ ์ฝ์กฐ๊ฑด ์ญ์
- ALTER TABLE < ํ
์ด๋ธ ์ด๋ฆ > DROP CONTRAINT < ์ ์ฝ์กฐ๊ฑด ์ด๋ฆ >;
- ์ ์ฝ์กฐ๊ฑด ์ถ๊ฐ
- ALTER TABLE < ํ
์ด๋ธ ์ด๋ฆ > ADD CONSTRAINT < ์ ์ฝ์กฐ๊ฑด ์ด๋ฆ > < ์ ์ฝ์กฐ๊ฑด ํ์
( NOT NULL, PK ... ) > ( < ์ปฌ๋ผ ์ด๋ฆ > );
๋๊ธ