๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(DB)

2023. 2. 15. 11:37ใ†DB

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค : ์ˆ˜๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ .

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ๋Š” ํ‘œ์˜ ํ˜•ํƒœ๋กœ ๋“ค์–ด๊ฐ

ํ•™๋ฒˆ ์ด๋ฆ„ ๋‚˜์ด ์„ฑ์ 
1 ๊น€์ž๋ฐ” 21 80
2 ์ด์ž๋ฐ” 20 90
3 ๋ฐ•์ž๋ฐ” 30 75

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” ํ•™๋ฒˆ ์ด๋ฆ„ ๋“ฑ์˜ ์ œ๋ชฉ์ค„์„ ์—ด, column, ์†์„ฑ, attribute ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

ํ•œ ์ค„์˜ ๋ฐ์ดํ„ฐ > ํ•™์ƒ ํ•œ๋ช…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ–‰, ๋ ˆ์ฝ”๋“œ, ํŠœํ”Œ ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

ํ‘œ ์ „์ฒด ์ฆ‰, ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ํ…Œ์ด๋ธ”์ด๋ผ๊ณ  ํ•œ๋‹ค.

์ž๋ฐ”์ฒ˜๋Ÿผ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ด.

 

๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ช…๋ น์–ด : SQL (structrured query language) - query๋ฅผ ์นœ๋‹ค๊ณ  ํ•จ.

1.DDL (Data Definition Language) ๋ฐ์ดํ„ฐ ์ •์˜์–ด

2.DML ( Data Manipulation Language) ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด

3.DCL (Data Control Language) ๋ฐ์ดํ„ฐ ์ œ์–ด์–ด

 

DBMS (๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ด€๋ฆฌ์‹œ์Šคํ…œ) > sql developer

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์›Œํฌ์‹œํŠธ ์ฃผ์„ : --

SQL์€ ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์Œ. ๋Œ€๋ฌธ์ž๋กœ ์‚ฌ์šฉ!

๋ช…๋ น์–ด ์‹คํ–‰ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‹คํ–‰๋ฌธ์— ์ปค์„œ ๋‘๊ณ  CTRL+ENTER

 

โ–ผ ๊ณต๋ถ€์šฉ ๊ณ„์ • ์ƒ์„ฑ 

-- ๊ณ„์ • ์ƒ์„ฑ ์‹œ ๊ณ„์ •๋ช… ๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋‚ด ๋งˆ์Œ๋Œ€๋กœ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ • ๋ช…๋ น์–ด
ALTER SESSION SET "_ORACLE_SCRIPT"=true;

-- ๊ณ„์ •๋ช… : MYDB ๋น„๋ฐ€๋ฒˆํ˜ธ : ORACLE๋กœ ๊ณ„์ • ์ƒ์„ฑ
CREATE USER MYDB IDENTIFIED BY ORACLE;

--MYDB ๊ณ„์ •์— DB ์ ‘์† ๋ฐ ๊ธฐ๋ณธ ๊ถŒํ•œ์„ ๋ถ€์—ฌ (๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ํ†ต์„ ๋งŒ๋“  ๊ถŒํ•œ์„ ์คŒ)
GRANT CONNECT, RESOURCE TO MYDB;

--MYDB ๊ณ„์ •์ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ถŒํ•œ ๋ถ€์—ฌ
ALTER USER MYDB DEFAULT TABLESPACE USERS QUOTA UNLIMITED ON USERS;

--TIP ๊ณ„์ • ์‚ญ์ œ ํ•˜๋Š” ๋ช…๋ น์–ด
DROP USER MYDB;

TIP :  ์ ˆ๋งˆ๋‹ค ๊ฐœํ–‰ํ•ด์„œ ์ž…๋ ฅํ•ด์•ผ ๋จ. (์…€๋ ‰ํŠธ์ ˆ ํ”„๋กฌ์ ˆ ์›จ์–ผ์ ˆ์ด๋ผ๊ณ  ํ•จ)

ex) 

SELECT EMPNO, ENAME, SAL 
FROM EMP 
WHERE SAL >= 500;

 

๋ช…๋ น์–ด ํ•œ๋ฒˆ์— ์ž…๋ ฅํ•˜๊ธฐ : F5 

 

๊ธฐ๋ณธ ์กฐํšŒ ๋ฌธ๋ฒ• : 

SELECT ์กฐํšŒํ•  ์ปฌ๋Ÿผ๋ช…๋“ค FROM ํ…Œ์ด๋ธ”๋ช…;

 

์—ฌ๋Ÿฌ๊ฐœ์˜ ์ปฌ๋Ÿผ๋ช…๋“ค์„ ์กฐํšŒํ•  ๊ฒฝ์šฐ : 

, ๋กœ ๋‚˜์—ดํ•˜๋ฉด ๋จ

 

๋ชจ๋“  ์ •๋ณด ์กฐํšŒํ•  ๊ฒฝ์šฐ :

์ปฌ๋Ÿผ๋ช… ๋Œ€์‹  * ์“ฐ๋ฉด ๋จ ( * : ์—์Šคํ…Œ๋ฆฌ์•„ - ALL์ด๋ผ๋Š” ๋œป)

 

NOT NULL : ํ•„์ˆ˜ ์ •๋ณด๋ผ๋Š” ๋œป

 

ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ๋ฌธ๋ฒ• : 
SELECT ์ปฌ๋Ÿผ๋ช…๋“ค FROM ํ…Œ์ด๋ธ”๋ช… WHERE ์กฐ๊ฑด๋“ค

์กฐ๊ฑด์ด ์—ฌ๋Ÿฌ๊ฐœ๋ฉด AND / OR ์“ฐ๋ฉด ๋œ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๊ฐ™๋‹ค๋Š” ์˜๋ฏธ =

๋ฌธ์ž์—ด์€ ' ' ํ™€๋”ฐ์˜ดํ‘œ์— ๊ฐ์‹ธ์•ผ ํ•œ๋‹ค.

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ์˜ ํฌ๊ธฐ ๋น„๊ต :

 >, <, <=, >= ๊ธฐ๋ณธ์ ์ธ ๊ฒƒ ๋™์ผ
!=, <>  : ๊ฐ™์ง€ ์•Š๋‹ค๋Š” ์˜๋ฏธ ๋‘๊ฐ€์ง€๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ.

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ NULL๊ณผ 0์˜ ์ฐจ์ด :

NULL์€ ๊ทธ ์†์„ฑ์— ํ•ด๋‹น ์•ˆ ๋จ์„ ์˜๋ฏธ

0์€ ๊ทธ ์†์„ฑ์—  ํ•ด๋‹น ๋˜๋Š”๋ฐ ๋ฐ์ดํ„ฐ ์—†๋Š” ๊ฒƒ์„ ์˜๋ฏธ

 

NULL์ธ ์ •๋ณด ์ฒดํฌํ•  ๋•Œ : 

๋“ฑํ˜ธ๊ฐ€ ์•„๋‹ˆ๋ผ IS(IS NOT)๋ฅผ ์จ์•ผ ๋จ.

 

-- ๋ฐ์ดํ„ฐ ์กฐํšŒ ๋ช…๋ น์–ด
-- EMP ํ…Œ์ด๋ธ”์— ์†ํ•œ ๋ชจ๋“  ์‚ฌ์›์˜ ์ด๋ฆ„์„ ์กฐํšŒ
SELECT ENAME FROM EMP;

--EMP ํ…Œ์ด๋ธ”์— ์†ํ•œ ๋ชจ๋“  ์‚ฌ์›์˜ ์ด๋ฆ„, ์‚ฌ๋ฒˆ ์กฐํšŒ
SELECT EMPNO,ENAME FROM EMP;

--EMP ํ…Œ์ด๋ธ”์— ์†ํ•œ ๋ชจ๋“  ์‚ฌ์›์˜ ๋ชจ๋“  ์ •๋ณด ์กฐํšŒ
SELECT * FROM EMP;

--ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ ์ •๋ณด๋ฅผ ํ™•์ธํ•˜๋Š” ์ฟผ๋ฆฌ
DESC EMP;

--ํŠน์ • ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ๋ฌธ๋ฒ•
--๋ฌธ๋ฒ•
--SELECT ์ปฌ๋Ÿผ๋ช…๋“ค FROM ํ…Œ์ด๋ธ”๋ช… WHERE ์กฐ๊ฑด๋“ค

--๊ธ‰์—ฌ๊ฐ€ 500์ด์ƒ์ธ ์‚ฌ์›๋“ค์˜ ์‚ฌ๋ฒˆ, ์ด๋ฆ„, ๊ธ‰์—ฌ ์กฐํšŒ
SELECT EMPNO, ENAME, SAL 
FROM EMP 
WHERE SAL >= 500;

-- ์‚ฌ์›๋ช…์ด ์˜ค์ง€ํ˜ธ์ธ ์‚ฌ์›์˜ ์‚ฌ๋ฒˆ, ์ด๋ฆ„, ๋ถ€์„œ ๋ฒˆํ˜ธ, ์ž…์‚ฌ์ผ ์กฐํšŒ
SELECT EMPNO, ENAME, DEPTNO, HIREDATE
FROM EMP
WHERE ENAME = '์˜ค์ง€ํ˜ธ';

--๊ทธ๋ฆฌ๊ณ  : AND, ์ด๊ฑฐ๋‚˜ : OR
--๋ถ€์„œ ๋ฒˆํ˜ธ๊ฐ€ 20๋ฒˆ์ด๋ฉด์„œ, ๊ธ‰์—ฌ๊ฐ€ 500์ด์ƒ์ธ ์‚ฌ์›๋“ค์˜ ์‚ฌ๋ฒˆ, ์ด๋ฆ„, ๋ถ€์„œ๋ฒˆํ˜ธ, ๊ธ‰์—ฌ ์กฐํšŒ
SELECT EMPNO, ENAME, DEPTNO, SAL
FROM EMP
WHERE DEPTNO = 20
AND SAL >= 500;

--ํฌ๊ธฐ ๋น„๊ต >, <, <=, >=, 
-- !=, <> ๊ฐ™์ง€ ์•Š๋‹ค๋Š” ์˜๋ฏธ ๋‘๊ฐ€์ง€

SELECT * FROM EMP;

SELECT * FROM DEPT;

-- ์ปค๋ฏธ์…˜์ด NULL์ธ ์‚ฌ์›์˜ ๋ชจ๋“  ์ •๋ณด ์กฐํšŒ
-- NULL์„ ์ฒดํฌํ•  ๋•Œ๋Š” ๋“ฑํ˜ธ๊ฐ€ ์•„๋‹ˆ๋ผ IS(IS NOT)๋ฅผ ์จ์•ผ ๋จ.
SELECT *
FROM COMM
WHERE COMM IS NULL;
--WHERE COMM IS NOT NULL;

--์‹ค์Šต--
--1. ์ง๊ธ‰์ด ์‚ฌ์›์ธ ์ง์›์˜ ์‚ฌ๋ฒˆ, ์ง๊ธ‰, ์‚ฌ์›๋ช… ์กฐํšŒ
SELECT EMPNO, JOB, ENAME
FROM EMP
WHERE JOB = '์‚ฌ์›';
--2. ์ง๊ธ‰์ด ์‚ฌ์›์ด ์•„๋‹ˆ๊ณ  ๊ธ‰์—ฌ๊ฐ€ 800 ๋ฏธ๋งŒ์ธ ์ง์›์˜ ์‚ฌ๋ฒˆ, ์ง๊ธ‰, ๊ธ‰์—ฌ, ๋ถ€์„œ๋ฒˆํ˜ธ ์กฐํšŒ
SELECT EMPNO, JOB, SAL, DEPTNO
FROM EMP
WHERE JOB != '์‚ฌ์›'
AND SAL < 800;
--3. ๊ธ‰์—ฌ๊ฐ€ 400 ์ด์ƒ 700 ์ดํ•˜์ธ ์‚ฌ์› ์ค‘ ์ธ์„ผํ‹ฐ๋ธŒ๋ฅผ ๋ฐ›๋Š” ์‚ฌ์›์˜ ์ด๋ฆ„, ๊ธ‰์—ฌ, COMM ์กฐํšŒ
SELECT ENAME, SAL, COMM
FROM EMP
WHERE SAL >= 400 AND SAL <= 700 -- ์‚ฌ์ด ์กฐ๊ฑด ํ•œ๋ฒˆ์— ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ถ”๊ฐ€ ๋‚ด์šฉ ๋ณด๊ธฐ
AND COMM IS NOT NULL;
--4. 10๋ฒˆ ๋ถ€์„œ๋ฅผ ์ œ์™ธํ•œ ์‚ฌ์› ์ค‘์—์„œ ์ง๊ธ‰์ƒ์‚ฌ๊ฐ€ ์—†์œผ๋ฉฐ ๊ธ‰์—ฌ๋Š” 500์ด์ƒ์„ ๋ฐ›๊ณ , 
--   ์‚ฌ๋ฒˆ์€ 1005๋ฒˆ ์ด์ƒ์ธ ์‚ฌ์›๋“ค์˜ ๋ชจ๋“  ์ •๋ณด ์กฐํšŒ
SELECT *
FROM EMP
WHERE DEPTNO != 10
AND MGR IS NULL
AND SAL >= 500
AND EMPNO >= 1005;

--์ถ”๊ฐ€ ๋‚ด์šฉ : ๊ธ‰์—ฌ๊ฐ€ 400~700 ์‚ฌ์ด์ธ ๋ชจ๋“  ์‚ฌ์› ์ •๋ณด ์กฐํšŒ
--์ปฌ๋Ÿผ๋ช… BETWEEN A AND B (์†๋„๊ฐ€ ๋А๋ ค์„œ ์ถ”์ฒœ X)
SELECT *
FROM EMP
WHERE SAL BETWEEN 400 AND 700;

 

'DB' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ณ  db ์—ฐ๊ฒฐ ์‹ค์Šต  (0) 2023.02.17
DB3  (0) 2023.02.17
DB-java ์—ฐ๊ฒฐ  (0) 2023.02.16
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค2  (0) 2023.02.16
DB ํ…Œ์ด๋ธ” ์ƒ์„ฑ  (0) 2023.02.16