๊ฐ์ธ๊ณต๋ถ/SQL
114. SQL200์ (001~015)
LEE_BOMB
2022. 1. 31. 17:58
001
SELECT empno, ename, sal
FROM emp;
002
SELECT *
FROM emp;
SELECT dept.*, deptno
FROM dept;
003
SELECT empno as ์ฌ์๋ฒํธ, ename as ์ฌ์์ด๋ฆ, sal as "Salary"
FROM emp;
SELECT ename, sal*(12+3000) as ์๊ธ -- order by์ ์ฌ์ฉ ์ ๋ณ์นญ ์ฌ์ฉ ๊ฐ๋ฅํ๋ฏ๋ก ์ ์ฉ
FROM emp;
004
SELECT ename || sal
FROM emp;
SELECT ename || '์ ์๊ธ์ ' || sal || '์
๋๋ค' as ์๊ธ์ ๋ณด
FROM emp;
SELECT ename || '์ ์ง์
์ ' || job || '์
๋๋ค' as ์ง์
์ ๋ณด
FROM emp;
005
SELECT DISTINCT job
FROM emp;
SELECT UNIQUE job
FROM emp;
006
SELECT ename, sal
FROM emp
ORDER BY sal asc; -- ์๊ธ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
SELECT ename, sal as ์๊ธ
FROM emp
ORDER BY ์๊ธ asc; -- ์๊ธ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
SELECT ename, deptno, sal
FROM emp
ORDER BY deptno asc, sal desc; -- ๋ถ์ ๋ฒํธ ์ค๋ฆ์ฐจ์๋ ๊ฒ์ ๊ธฐ์ค์ผ๋ก ์๊ธ์ ๋์ ์์๋๋ก ์ ๋ ฌ
SELECT ename, deptno, sal
FROM emp
ORDER BY 2 asc, 3 desc; -- select์ ์นผ๋ผ ์์
007
SELECT ename, sal, job
FROM emp
WHERE sal = 3000;
SELECT ename as ์ด๋ฆ, sal as ์๊ธ
FROM emp
WHERE sal >= 3000;
SELECT ename as ์ด๋ฆ, sal as ์๊ธ
FROM emp
WHERE ์๊ธ >= 3000; -- error! ORA-00904: "์๊ธ": invalid identifier (๋ถ์ ํฉํ ์๋ณ์)
008
SELECT ename, sal, job, hiredate, deptno
FROM emp
WHERE ename = 'SCOTT'; -- ํฐ ๋ฐ์ดํ ์ค๋ฅ
SELECT ename, hiredate
FROM emp
WHERE hiredate = '81/11/17'; -- ์ฐ๋/์/์ผ ์์
SELECT *
FROM NLS_DATABASE_PARAMETERS -- ํ์ฌ ์ ์ํ ์ธ์
์ ๋ ์ง ํ์ ํ์ธ
WHERE parameter = 'NLS_DATE_FORMAT';
ALTER SESSION SET NLS_DATE_FORMAT='YY/MM/DD'; -- ์ธ์
๋ ์ง ํ์ ๋ณ๊ฒฝ
SELECT ename, sal
FROM emp
WHERE hiredate = '81/11/17'; -- ์ ํ๋ ๋ ์ฝ๋ ์์
ALTER SESSION SET NLS_DATE_FORMAT='RR/MM/DD'; -- ๋
๋/๋ฌ/์ผ
RR๊ณผ YY ๋ ๋ค ์ฐ๋์ธ๋ฐ ์ ์ถ๋ ฅ๋์ง ์์๋?
RR์ ํ์ฌ ์ธ๊ธฐ๋ฅผ ๊ธฐ์ค์ผ๋ก 81๋ ๋๋ฅผ ์ด์ ์ธ๊ธฐ๋ก ์ธ์ํ๋ค.
YY๋ 81๋ ๋๋ฅผ ํ์ฌ ์ธ๊ธฐ์ ์ฐ๋๋ก ์ธ์ํ๋ค.
*YY๋ 81๋ ์ 2081๋ ์ผ๋ก ์ธ์, RR์ 1981๋ ์ผ๋ก ์ธ์
009
SELECT ename, sal*12 as ์ฐ๋ด
FROM emp
WHERE sal*12 >= 36000;
SELECT ename, sal, comm, sal+comm
FROM emp
WHERE deptno = 10;
SELECT ename, sal, comm, sal+NVL(comm,0)
FROM emp
WHERE deptno = 10; -- NVL (comm, 0) : comm์ ์ถ๋ ฅํ ๋, NULL์ด๋ฉด 0์ผ๋ก ์ถ๋ ฅํด๋ผ
010
SELECT ename, sal, job, deptno
FROM emp
WHERE sal <= 1200;
011
SELECT ename, sal
FROM emp
WHERE sal BETWEEN 1000 AND 3000; -- ๊ท์น! BETWEEN ํํ๊ฐ AND ์ํ๊ฐ
SELECT ename, sal
FROM emp
WHERE (sal >= 1000 AND sal <= 3000);
SELECT ename, sal
FROM emp
WHERE NOT sal BETWEEN 1000 AND 3000; -- ์ดํ(=)์ด ๋ถ์ง ์์
SELECT ename, sal
FROM emp
WHERE (sal < 1000 OR sal > 3000); -- ๊ฐ๋
์ฑ๋ฉด์์ BETWEEN~๊ตฌ๋ฌธ์ด ํจ์ฌ ์ข๋ค
SELECT ename, hiredate
FROM emp
WHERE hiredate BETWEEN '1982/01/01' AND '1982/12/31'; -- ๋ ์ง์๋ ์ฌ์ฉํ ์ ์๋ค
012
SELECT ename, sal
FROM emp
WHERE ename LIKE 'S%';
SELECT ename
FROM emp
WHERE ename LIKE '_M%'; -- ๋ ๋ฒ์งธ ์ฒ ์ M์ธ ์ฌ์ ์ด๋ฆ ์ถ๋ ฅ
SELECT ename
FROM emp
WHERE ename LIKE '%T';
SELECT ename
FROM emp
WHERE ename LIKE '%A%'; -- ์ด๋ฆ์ A๊ฐ ํฌํจ๋ ๋ชจ๋ ์ฌ์
013
SELECT ename, comm
FROM emp
WHERE comm IS NULL;;
SELECT ename, comm
FROM emp
WHERE comm != NULL; -- NULL์๋ ๋ฐ์ดํฐ ์ถ๋ ฅ ๋ถ๊ฐ.
014
SELECT ename, sal, job
FROM emp
WHERE job IN ('SALESMAN', 'ANALYST', 'MANAGE'); -- =์ ํ๋์ ๊ฐ๋ง, IN์ ์ฌ๋ฌ ๋ฆฌ์คํธ ๊ฐ ์กฐํ ๊ฐ๋ฅ
SELECT ename, sal, job
FROM emp
WHERE (job = 'SALESMAN' OR job = 'ANALYST' OR job = 'MANAGE'); -- ๋์ผํ ๊ฒฐ๊ณผ ์ถ๋ ฅ๋๋ ๊ท์ฐฎ์
SELECT ename, sal, job
FROM emp
WHERE job NOT IN ('SALESMAN', 'ANALYST', 'MANAGE');
SELECT ename, sal, job
FROM emp
WHERE (job != 'SALESMAN' AND job != 'ANALYST' AND job != 'MANAGE');
015
SELECT ename, sal, job
FROM emp
WHERE job = 'SALESMAN' AND sal >= 1200;
SELECT ename, sal, job
FROM emp
WHERE job = 'ABC' AND sal >= 1200; -- ๋ ์กฐ๊ฑด ์ค ํ๋๋ผ๋ FALSE์ด๋ฉด ๋ฐ์ดํฐ ๋ฐํ๋์ง ์์
๋ ผ๋ฆฌ ์ฐ์ฐ์ ์ฐ์ฐ๊ฒฐ๊ณผ
AND๋ ๋ชจ๋๊ฐ TRUE์ฌ์ผ TRUE๊ฐ ๋ฐํ
* TRUE AND NULL์ NULL์ด ๋ฐํ
OR๋ ๋ ์ค ํ๋๋ง TRUE์ฌ๋ TRUE๊ฐ ๋ฐํ
* TRUE OR NULL์ TRUE ๋ฐํ
NOT TRUE์ FALSE์ผ ๋ TRUE๊ฐ ๋ฐํ
* TRUE NOT NULL์ NULL ๋ฐํ