๐ DML(Data Manipulation Language(๋ฐ์ดํฐ ์กฐ์์ด))
- SELECT : ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๋ช ๋ น๋ฌธ , ๋ค์ํ ์ํฉ์ด๋ ์กฐ๊ฑด์ ๋ง๋ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ณ ์ฝ๊ฒ ๊ฐ์ ธ์ฌ ์ ์์
๐ ํ ์ด๋ธ์ ๋ชจ๋ ์ปฌ๋ผ : SELECT [*] FROM [ํ ์ด๋ธ๋ช ]
-- [๊ฒ์ํ]์ ๋ชจ๋ (*) ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๊ธฐ
SELECT * FROM [BOARD];
๐ํ ์ด๋ธ์ ํน์ ์ปฌ๋ผ : SELECT [๊ฐ์ ธ์ฌ ์ปฌ๋ผ๋ช ] FROM [ํ ์ด๋ธ๋ช ]
--ํน์ ์ปฌ๋ผ์ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ
SELECT [WRITER] FROM [BOARD];
SELECT [WRITER], SUBJECT FROM [BOARD];
๐ DML ์ฐ์ฐ : SELECT [์ฐ์ฐํ ์ปฌ๋ผ1 (+,-,*,/) ์ฐ์ฐํ ์ปฌ๋ผ2)] FROM [ํ ์ด๋ธ๋ช ]
-- ๊ฐ ์ฌ์๋ค์ ๊ธ์ฌ์ก๊ณผ ๊ธ์ฌ์ก์์ 1000์ ๋ํ ๊ฐ, 200์ ๋บ ๊ฐ ๋ฑ ์ฐ์ ์ฐ์ฐ
SELECT SAL, SAL +1000, SAL- 200, SAL *2, SAL/2 FROM EMP;
๐ DML ์ฐ์ฐ NULL ๊ฐ ์ฒ๋ฆฌ
-- ๊ฐ ์ฌ์์ ๊ธ์ฌ์ก, ์ปค๋ฏธ์
, ๊ธ์ฌ+ ์ปค๋ฏธ์
์ก์ ์ฐ์ ์ฐ์ฐ
SELECT SAL, COMM, SAL+COMM FROM EMP;
๐ข NVL์ ์ด์ฉ
๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ฒ ๋๋ฉด row ๋จ์๋ก ์ ์ฅ์ด ๋๋ค. ์ผ๋ถ ์ปฌ๋ผ์ ๊ฐ์ ์ ์ฅํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ ์ ์๋๋ฐ, ์ด ๋๋ NULL ๊ฐ์ด ๋ค์ด๊ฐ๋ค. NULL์ '๋ฌดํ๋' ๋๋ '๋ฌด์๋ฏธ'์ ๊ฐ์ ๋ปํ๋ค. ๋ณดํต ์ง๊ธ ๋น์ฅ ๋ฃ์ ๊ฐ์ด ์์ ๋ ์ด์ฉํ๋ค.
๊ทธ๋ฌ๋ ์ฐ์ฐ์ ์ฃผ์ํ ์ ์ ์ด๋ค ๊ฐ๊ณผ NULL์ ์ฐ์ฐํ๋ฉด ๊ฒฐ๊ณผ๋ NULL์ด ๋์ค๊ฒ ๋๋ค.
๋ฐ๋ผ์ ์ฐ์ฐ์ด ํ์ํ ๊ฒ ๊ฐ์ ๊ฒฝ์ฐ NULL์ 0์ผ๋ก ์ฌ์ฉํ๊ณ ์ถ์ ๋, NVL ์ ์ด์ฉํ๋ค.
-- NVL์ ์ด์ฉํ ์ปค๋ฏธ์
, ๊ธ์ฌ+ ์ปค๋ฏธ์
์ก์ ์ฐ์ ์ฐ์ฐ
SELECT SAL, NVL(COMM,0), SAL+NVL(COMM,0) FROM EMP;
=> NVL(COMM,0) : 'COMM' ์ปฌ๋ผ์ NULL์ด ๋ค์ด๊ฐ ์์ผ๋ฉด '0'์ ์ฌ์ฉํ๊ฒ ๋ค
๐ ConCat ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฌธ์์ด๊ณผ ์ปฌ๋ผ์ ๊ฐ์ ์ฐ๊ฒฐํ์ฌ ํ๋์ ๋ฌธ์์ด๋ก ๊ฐ์ ธ์ฌ ์ ์์
-- ๋ฌธ์์ด || ์ปฌ๋ผ || ๋ฌธ์์ด || ์ปฌ๋ผ
--์ฌ์๋ค์ ์ด๋ฆ๊ณผ ์ง๋ฌด๋ฅผ ๋ค์ ์์์ผ๋ก ๊ฐ์ ธ์จ๋ค.
-- 000์ฌ์์ ๋ด๋น ์ง๋ฌด๋ XXX์
๋๋ค.
SELECT ENAME || '์ฌ์์ ๋ด๋น ์ง๋ฌด๋ ' || JOB || '์
๋๋ค' FROM EMP;
๐ Distinct๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ์ ธ์จ ๋ก์ฐ๋ค ์ค ์ค๋ณต๋ ๋ก์ฐ๋ฅผ ์ ๊ฑฐํ์ฌ ๊ฐ์ ธ์ฌ ์ ์์
-- SELECT DISTINCT [์ปฌ๋ผ๋ช
] FROM [ํ
์ด๋ธ๋ช
]
--์ฌ์๋ค์ด ๊ทผ๋ฌดํ๊ณ ์๋ ๊ทผ๋ฌด ๋ถ์์ ๋ฒํธ๋ฅผ ๊ฐ์ ธ์จ๋ค.
SELECT DEPTNO FROM EMP;
SELECT DISTINCT DEPTNO FROM EMP;
)
๐ ์กฐ๊ฑด์ , SQL ๋ฌธ์ ํ ์ด๋ธ ๋ด์ ๋ชจ๋ ๋ก์ฐ์ ๋ํด ์ ์ฉ์ ํ๊ฒ๋๋ฏ๋ก, ์ด๋ค ์กฐ๊ฑด์ ๋ง๋ ๋ก์ฐ์ ๋ํด์๋ง ์์ ์ ํ๊ณ ์ถ์ ๋ ์กฐ๊ฑด์ ์ ์ด์ฉํจ.
-
SELECT ~ FROM ๊น์ง๋ฅผ ํตํด ๋ชจ๋ ๋ก์ฐ๋ฅผ ๊ฐ์ ธ์ค๊ณ ๊ฐ ๋ก์ฐ๋ฅผ ์กฐ๊ฑด์ ๊ณผ ๋น๊ตํ์ฌ ์ฐธ์ธ ๋ก์ฐ๋ง ๋จ๊ฒจ์ฃผ๊ณ ๊ฑฐ์ง ๋ก์ฐ๋ ์ ๊ฑฐํ๋ค.
-
๋น๊ต์ฐ์ฐ์ : < , > , <= , >= , = , (<>,!=,^= : '๋ค๋ฅด๋ค')
```- SELECT [์ปฌ๋ผ๋ช ] FROM [ํ ์ด๋ธ๋ช ] WHERE [์กฐ๊ฑด์ ]
- -๊ทผ๋ฌด ๋ถ์๊ฐ 303๋ฒ์ธ ์ฌ์๋ค์ ๋ฒํธ, ์ด๋ฆ, ๊ทผ๋ฌด๋ถ์๋ฅผ ๊ฐ์ ธ์จ๋ค
SELECT EMPNO, ENAME, DEPTNO FROM EMP WHERE DEPTNO=303; <img width="337" alt="20210507133858" src="https://user-images.githubusercontent.com/74708028/117399045-95231380-af3a-11eb-8615-5a41be316efa.png">
--๊ทผ๋ฌด ๋ถ์ ๋ฒํธ๊ฐ 10๋ฒ์ด ์๋ ์ฌ์๋ค์ ์ฌ์๋ฒํธ, ์ด๋ฆ, ๊ทผ๋ฌด๋ถ์๋ฅผ ๊ฐ์ ธ์จ๋ค.
SELECT EMPNO, ENAME, DEPTNO FROM EMP WHERE DEPTNO <> 303;
--๊ธ์ฌ๊ฐ 300์ด์์ธ ์ฌ์๋ค์ ์ฌ์๋ฒํธ, ์ด๋ฆ, ๊ธ์ฌ๋ฅผ ๊ฐ์ ธ์จ๋ค.
SELECT EMPNO, ENAME, SAL FROM EMP WHERE SAL >=300;
--์ด๋ฆ์ด ๊น์ ๋์ธ ์ฌ์์ ์ฌ์๋ฒํธ, ์ด๋ฆ, ์ง๋ฌด, ๊ธ์ฌ๋ฅผ ๊ฐ์ ธ์จ๋ค.
SELECT EMPNO, ENAME, JOB, SAL FROM EMP WHERE ENAME='๊น์ ๋';
--2021๋
0507 ์ดํ์ ์
์ฌํ ์ฌ์์ ์ฌ์๋ฒํธ, ์ด๋ฆ, ์
์ฌ์ผ์ ๊ฐ์ ธ์จ๋ค.
SELECT EMPNO, ENAME, HIREDATE FROM EMP WHERE HIREDATE >= '21/05/07';
๐ ๋ ผ๋ฆฌ์ฐ์ฐ์ , ๋ ผ๋ฆฌ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ ์กฐ๊ฑด์์ ๋ฌถ์ด ํ๋์ ์กฐ๊ฑด์์ผ๋ก ๋ง๋ค ์ ์๋ค.
-
and(์ข์ฐ ์กฐ๊ฑด์ ๋ชจ๋ ์ฐธ), or(์ข์ฐ ์กฐ๊ฑด์ ๋ ์ค ํ๋๊ฐ ์ฐธ์ด๋ฉด ์ฐธ), not(์กฐ๊ฑด์์ ๊ฒฐ๊ณผ๋ฅผ ๋ถ์ ), between and(๋ฒ์์กฐ๊ฑด), in(ํญ๋ชฉ์กฐ๊ฑด)
-- SELECT [์ปฌ๋ผ๋ช ] FROM [ํ ์ด๋ธ๋ช ] WHERE [์กฐ๊ฑด์ (๋ ผ๋ฆฌ์ฐ์ฐ์) ์กฐ๊ฑด์ ] -- 303 ๋ถ์์ ๊ทผ๋ฌดํ๊ณ ์๋ ์ง๋ฌด๊ฐ ์ฐ๊ทนํ์ธ ์ฌ์์ ์ฌ์๋ฒํธ, ์ด๋ฆ, ๊ทผ๋ฌด๋ถ์, ์ง๋ฌด๋ฅผ ๊ฐ์ ธ์จ๋ค. SELECT EMPNO, ENAME, DEPTNO FROM EMP WHERE DEPTNO=303 AND JOB='์ฐ๊ทนํ';
-- SELECT [์ปฌ๋ผ๋ช
] FROM [ํ
์ด๋ธ๋ช
] WHERE [์กฐ๊ฑด์ (๋
ผ๋ฆฌ์ฐ์ฐ์) ์กฐ๊ฑด์ ]
--์
์ฌ๋
๋๊ฐ 21์ธ ์ฌ์ ์ค์ ๊ธ์ฌ๊ฐ 400 ์ด์์ธ ์ฌ์์ ์ฌ์๋ฒํธ, ์ด๋ฆ, ๊ธ์ฌ, ์
์ฌ์ผ์ ๊ฐ์ ธ์จ๋ค.
SELECT EMPNO, ENAME, SAL, HIREDATE FROM EMP WHERE HIREDATE >= '21/01/01' AND HIREDATE <= '21/12/31' AND SAL >= 300;
SELECT EMPNO, ENAME, SAL, HIREDATE FROM EMP WHERE HIREDATE BETWEEN '21/01/01' AND '21/12/31' AND SAL >= 300;
-- SELECT [์ปฌ๋ผ๋ช
] FROM [ํ
์ด๋ธ๋ช
] WHERE [์กฐ๊ฑด์ (๋
ผ๋ฆฌ์ฐ์ฐ์) ์กฐ๊ฑด์ ]
--๊ธ์ฌ๊ฐ 300๋ณด๋ค ํฌ๊ฑฐ๋ 500๋ณด๋ค ์์ง ์์ ์ฌ์์ ์ฌ์๋ฒํธ, ์ด๋ฆ, ๊ธ์ฌ๋ฅผ ๊ฐ์ ธ์จ๋ค.
SELECT EMPNO, ENAME, SAL FROM EMP WHERE NOT (SAL >= 300 AND SAL <= 500);
SELECT EMPNO, ENAME, SAL FROM EMP WHERE NOT (SAL BETWEEN 300 AND 500);
-- SELECT [์ปฌ๋ผ๋ช
] FROM [ํ
์ด๋ธ๋ช
] WHERE [์กฐ๊ฑด์ (๋
ผ๋ฆฌ์ฐ์ฐ์) ์กฐ๊ฑด์ ]
--๋ถ์ ๋ฒํธ๊ฐ 304, 303,309 ๊ฐ ์๋ ์ฌ์๋ค์ ์ฌ์๋ฒํธ, ์ด๋ฆ์ ๊ฐ์ ธ์จ๋ค.
SELECT EMPNO, ENAME FROM EMP WHERE DEPTNO <> 304 AND DEPTNO <> 303 AND DEPTNO <> 309;
SELECT EMPNO, ENAME FROM EMP WHERE NOT (DEPTNO = 304 OR DEPTNO = 303 OR DEPTNO = 309);
SELECT EMPNO, ENAME FROM EMP WHERE NOT (DEPTNO IN(304,303,309));
๐ ๋ฌธ์์ด ๋น๊ต, ์กฐ๊ฑด๋ฌธ์์ ๋ฌธ์์ด ์ปฌ๋ผ๋ = ๊ณผ <>๋ก ๋น๊ต๊ฐ ๊ฐ๋ฅํ๋ค.
-
๋ง์ฝ ๋ฌธ์์ด ์ปฌ๋ผ์ ์ ์ฅ๋์ด ์๋ ๊ฐ์ด ํน์ ๋ฌธ์์ด์ ํฌํจํ๊ณ ์๋์ง ํ์ ํ๊ณ ์ถ์ ๋ like ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ค.
-
like ์ฐ์ฐ์
SELECT [์ปฌ๋ผ๋ช ] FROM [ํ ์ด๋ธ๋ช ] WHERE [์ปฌ๋ผ๋ช ] LIKE '์์ผ๋์นด๋'
-
_ : ๊ธ์ ํ๋๋ฅผ ์๋ฏธ
-
% : ๊ธ์ 0๊ฐ ์ด์์ ์๋ฏธ
-
--์ด๋ฆ์ด '์ด'๋ก ์์ํ๋ ์ฌ์์ ์ด๋ฆ๊ณผ ์ฌ์ ๋ฒํธ๋ฅผ ๊ฐ์ ธ์จ๋ค.
SELECT ENAME, EMPNO FROM EMP WHERE ENAME LIKE '์ด%';
--์ด๋ฆ์ด '๋'๋ก ๋๋๋ ์ฌ์์ ์ด๋ฆ๊ณผ ์ฌ์ ๋ฒํธ๋ฅผ ๊ฐ์ ธ์จ๋ค.
SELECT ENAME, EMPNO FROM EMP WHERE ENAME LIKE '%๋';
--์ด๋ฆ์ '๊ต'๊ฐ ํฌํจ๋์ด์๋ ์ฌ์์ ์ด๋ฆ๊ณผ ์ฌ์ ๋ฒํธ๋ฅผ ๊ฐ์ ธ์จ๋ค.
SELECT ENAME, EMPNO FROM EMP WHERE ENAME LIKE '%๊ต%';
--์ด๋ฆ์ ๋๋ฒ์งธ ๊ธ์๊ฐ '์ฐ'์ธ ์ฌ์์ ์ฌ์ ์ด๋ฆ, ์ฌ์ ๋ฒํธ๋ฅผ ๊ฐ์ ธ์จ๋ค.
SELECT ENAME, EMPNO FROM EMP WHERE ENAME LIKE '_์ฐ%';
--์ด๋ฆ์ด 4๊ธ์์ธ ์ฌ์์ ์ฌ์ ์ด๋ฆ, ์ฌ์ ๋ฒํธ๋ฅผ ๊ฐ์ ธ์จ๋ค.
SELECT ENAME, EMPNO FROM EMP WHERE ENAME LIKE '____';
๐ NULL ๋น๊ต, NULL์ ์ ํด์ ธ ์์ง ์์ ๊ฐ ํน์ ๋ฌดํ๋์ ์๋ฏธ๋ฅผ ๊ฐ๋ ๊ฐ์ด๋ค.
-
NULL์ = ์ด๋ <>๋ฅผ ํตํด ์ปฌ๋ผ์ ๊ฐ์ด NULL์ธ์ง ์ฐ์ฐํ ์ ์๋ค.
-
NULL ๋น๊ต๋ IS NULL ์ด๋ IS NOT NULL์ ์ด์ฉํด์ผํ๋ค.
--์ฌ์ ์ค์ ์ปค๋ฏธ์
์ ๋ฐ๋ ์ฌ์์ ์ฌ์๋ฒํธ, ์ด๋ฆ, ์ปค๋ฏธ์
์ ๊ฐ์ ธ์จ๋ค.
SELECT ENAME, EMPNO FROM EMP WHERE COMM <> NULL; (ERROR)
SELECT ENAME, EMPNO FROM EMP WHERE COMM IS NOT NULL;
--์ฌ์ ์ค์ ์ปค๋ฏธ์
์ ๋ฐ์ง ์๋ ์ฌ์์ ์ฌ์๋ฒํธ, ์ด๋ฆ, ์ปค๋ฏธ์
์ ๊ฐ์ ธ์จ๋ค.
SELECT ENAME, EMPNO FROM EMP WHERE COMM = NULL; (ERROR)
SELECT ENAME, EMPNO FROM EMP WHERE COMM IS NULL;
'์ด๋ก > DB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฌด์กฐ๊ฑด ๋ฐ๋ผํ๊ธฐ] INSERT, UPDATE, DELECT (0) | 2021.05.26 |
---|---|
[๋ฌด์กฐ๊ฑด ๋ฐ๋ผํด๋ณด๊ธฐ] DML ๊ทธ๋ฃนํจ์, HAVING, JOIN, SET, ์๋ธ์ฟผ๋ฆฌ (0) | 2021.05.25 |
[๋ฌด์กฐ๊ฑด ๋ฐ๋ผํด๋ณด๊ธฐ] DML ๋ ์งํจ์ , DECODE, CASE (0) | 2021.05.25 |
[๋ฌด์กฐ๊ฑด ๋ฐ๋ผํด๋ณด๊ธฐ] DML ์ ๋ ฌ, ์ซ์ํจ์, ๋ฌธ์์ดํจ์ (0) | 2021.05.25 |
๋ฐ์ดํฐ ๋ฒ ์ด์ค DataBase ๊ฐ์ (0) | 2021.05.21 |