Dev.Op
Yollow ๐Ÿ“š
Dev.Op
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (701)
    • ์œ ์ตํ•˜์…จ๋‹ค๋ฉด ๊ด‘๊ณ  ํ•œ๋ฒˆ๋งŒ ํด๋ฆญ ๋ถ€ํƒ๋“œ๋ฆด๊ฒŒ์š”~ (0)
    • ---------------------------.. (0)
    • Stock (1)
      • ์Šˆํผ๋งˆ์ดํฌ๋กœ์ปดํ“จํ„ฐ (2)
    • ๐Ÿง์ „๊ธฐ์ฐจ (72)
      • ๐Ÿ„lg์—๋„ˆ์ง€์†”๋ฃจ์…˜ (0)
      • ๐ŸŠํ˜„๋Œ€์ž๋™์ฐจ (0)
    • ๐Ÿ—๏ธ์†Œํ”„ํŠธ์›จ์–ด (243)
      • ๐Ÿ’ปpython (85)
      • โž•C & C++ (1)
      • โ˜•๏ธTableau (32)
      • ๐Ÿ‘‹SQL & MySQL (20)
      • ๐ŸฌHTML & CSS (14)
      • ๐Ÿ“—JavaScript (31)
      • ๐Ÿ“˜Pspice & Excel (2)
      • ๐Ÿ“•Matlab & COMSOL & CATIA (6)
      • ๐Ÿ“™java & Servlete & JSP (29)
      • ๐Ÿ““Raspberry PI 4 (5)
      • ๐Ÿ”จAnsys (2)
      • DJango (0)
      • Flutter (3)
      • Typescript (0)
      • ๐Ÿ†Vue (5)
      • ๐Ÿ‹Docker (1)
    • ๐Ÿ“‹์ฑ„์šฉ๊ณต๊ณ  (0)
    • ๐Ÿ“WEB & ML & DL ํ”„๋กœ์ ํŠธ (27)
      • ๐ŸŒต2์ฐจ ํ”„๋กœ์ ํŠธ(LG) (9)
    • ๐Ÿงฉ์ผ์ƒ (89)
      • ๐ŸŒค์ฝ”๋”ฉ ๊ณต๋ถ€ ์ผ์ง€ (1)
      • ๐Ÿšด์ž์ „๊ฑฐ (5)
      • ๐Ÿ“ฐํ…Œํฌ (20)
      • ๐ŸฆFood & Cafe (5)
      • ๐Ÿ’‰์˜์–ด ๋„์ ์ด๊ธฐ (5)
      • โšก๋ฐœ์ „์†Œ (6)
      • ๐Ÿ“š๋…์„œ (1)
      • ๐Ÿ›ซ์—ฌํ–‰ (2)
      • ๐Ÿ“ˆ๋ธ”๋กœ๊ทธ๋งˆ์ผ€ํŒ… (6)
    • ๐ŸŒ๊ธˆ์œต (37)
    • ๐ŸŽจ์ทจ์—…End (16)
    • ๐Ÿ‘‹์ž๊ฒฉ์ฆ (150)
      • ๐Ÿ™ˆSQLD๊ฐœ๋ฐœ์ž (12)
      • ๐Ÿ”Œ์ „๊ธฐ๊ธฐ์‚ฌ (116)
      • ๐Ÿข์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ (7)
      • ๐ŸŒŽADsP(๋ฐ์ดํ„ฐ๋ถ„์„์ค€์ „๋ฌธ๊ฐ€) (10)
      • ๐Ÿš™1์ข… ๋Œ€ํ˜• ์šด์ „ ๋ฉดํ—ˆ (1)
      • โญTableau Desktop Specialist (2)
    • ๐Ÿฅ‡๊ณต๋Œ€์ด๊ฑฐ์ €๊ฒƒ(๋ง‰ํ•™๊ธฐ) (24)
      • ๐Ÿ“๊ณตํ•™์ˆ˜ํ•™ 2 (1)
      • ๐Ÿบ๋งˆ์ดํฌ๋กœํ”„๋กœ์„ธ์„œ์‹ค์Šต (4)
      • ๐ŸŒCAE (10)
      • โœˆ๏ธ์ž๋™์ฐจ๊ณตํ•™์‹คํ—˜2 (0)
      • ๐Ÿšข์œ ์ฒด์—ญํ•™ (6)
      • ๐Ÿš—ํ˜„๋Œ€์ฐจ H-๋ชจ๋นŒ๋ฆฌํ‹ฐ ํด๋ž˜์Šค 1๊ธฐ (3)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    ๊ณต์ง€์‚ฌํ•ญ

    • Vue, Typescript, React, Tableau,โ‹ฏ
    • ์ง„์ธ์‚ฌ๋Œ€์ฒœ๋ช…(็›กไบบไบ‹ๅพ…ๅคฉๅ‘ฝ)

    ์ธ๊ธฐ ๊ธ€

    ํƒœ๊ทธ

    • html
    • ์—๋””์Šจev
    • ์ง๋ ฌ๋ฆฌ์•กํ„ฐ
    • ๋ฐฑ์ค€
    • vue btn
    • ์—”๋น„๋””์•„
    • ADsP
    • Python
    • ์•Œ๊ณ ๋ฆฌ์ฆ˜
    • ๋น…๋ฐ์ดํ„ฐ๋ถ„์„์ค€์ „๋ฌธ๊ฐ€
    • ๋น…๋ฐ์ดํ„ฐ
    • ์—…๋น„ํŠธ
    • fluid mechanics
    • ์•„์ด์˜ค๋‹‰5
    • ์ „๊ธฐ์ฐจ ๋ณด์กฐ๊ธˆ 2021
    • ์—”์†”
    • ํ…Œ์Šฌ๋ผ
    • lgํ™”ํ•™
    • ๋ธŒ๋ฃจํŠธํฌ์Šค
    • SMCI
    • rdfr
    • ์ „๊ธฐ์ฐจ
    • LG์—๋„ˆ์ง€์†”๋ฃจ์…˜
    • ๋ถ€๋“ฑ๋ฅ 
    • ๋””์นด๋ฅด๊ณ 
    • css
    • ์œ ์ฒด์—ญํ•™
    • ์‚ผ์„ฑ์ „์ž
    • ์ž๋ฐ”
    • ipad dual monitor

    ์ตœ๊ทผ ๋Œ“๊ธ€

    ์ตœ๊ทผ ๊ธ€

    ํ‹ฐ์Šคํ† ๋ฆฌ

    hELLO ยท Designed By ์ •์ƒ์šฐ.
    Dev.Op

    Yollow ๐Ÿ“š

    ๐Ÿ‘‹์ž๊ฒฉ์ฆ/๐Ÿ™ˆSQLD๊ฐœ๋ฐœ์ž

    [SQL] SQL delete๋ฌธ ๋ฐ ์ฟผ๋ฆฌ ์—ฐ์Šต

    2021. 11. 7. 22:34
    ๋ฐ˜์‘ํ˜•
    CREATE TABLE DEPT (
        DEPTNO DECIMAL(2),
        DNAME VARCHAR(14),
        LOC VARCHAR(13),
        CONSTRAINT PK_DEPT PRIMARY KEY (DEPTNO) 
    );
    CREATE TABLE EMP (
        EMPNO DECIMAL(4),
        ENAME VARCHAR(10),
        JOB VARCHAR(9),
        MGR DECIMAL(4),
        HIREDATE DATE,
        SAL DECIMAL(7,2),
        COMM DECIMAL(7,2),
        DEPTNO DECIMAL(2),
        CONSTRAINT PK_EMP PRIMARY KEY (EMPNO),
        CONSTRAINT FK_DEPTNO FOREIGN KEY (DEPTNO) REFERENCES DEPT(DEPTNO)
    );
    CREATE TABLE SALGRADE ( 
        GRADE TINYINT,
        LOSAL SMALLINT,
        HISAL SMALLINT 
    );
    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');
    
    INSERT INTO EMP VALUES (7369,'SMITH','CLERK',7902,STR_TO_DATE('17-12-1980','%d-%m-%Y'),800,NULL,20);
    INSERT INTO EMP VALUES (7499,'ALLEN','SALESMAN',7698,STR_TO_DATE('20-2-1981','%d-%m-%Y'),1600,300,30);
    INSERT INTO EMP VALUES (7521,'WARD','SALESMAN',7698,STR_TO_DATE('22-2-1981','%d-%m-%Y'),1250,500,30);
    INSERT INTO EMP VALUES (7566,'JONES','MANAGER',7839,STR_TO_DATE('2-4-1981','%d-%m-%Y'),2975,NULL,20);
    INSERT INTO EMP VALUES (7654,'MARTIN','SALESMAN',7698,STR_TO_DATE('28-9-1981','%d-%m-%Y'),1250,1400,30);
    INSERT INTO EMP VALUES (7698,'BLAKE','MANAGER',7839,STR_TO_DATE('1-5-1981','%d-%m-%Y'),2850,NULL,30);
    INSERT INTO EMP VALUES (7782,'CLARK','MANAGER',7839,STR_TO_DATE('9-6-1981','%d-%m-%Y'),2450,NULL,10);
    INSERT INTO EMP VALUES (7788,'SCOTT','ANALYST',7566,STR_TO_DATE('13-7-1987','%d-%m-%Y')-85,3000,NULL,20);
    INSERT INTO EMP VALUES (7839,'KING','PRESIDENT',NULL,STR_TO_DATE('17-11-1981','%d-%m-%Y'),5000,NULL,10);
    INSERT INTO EMP VALUES (7844,'TURNER','SALESMAN',7698,STR_TO_DATE('8-9-1981','%d-%m-%Y'),1500,0,30);
    INSERT INTO EMP VALUES (7876,'ADAMS','CLERK',7788,STR_TO_DATE('13-7-1987', '%d-%m-%Y'),1100,NULL,20);
    INSERT INTO EMP VALUES (7900,'JAMES','CLERK',7698,STR_TO_DATE('3-12-1981','%d-%m-%Y'),950,NULL,30);
    INSERT INTO EMP VALUES (7902,'FORD','ANALYST',7566,STR_TO_DATE('3-12-1981','%d-%m-%Y'),3000,NULL,20);
    INSERT INTO EMP VALUES (7934,'MILLER','CLERK',7782,STR_TO_DATE('23-1-1982','%d-%m-%Y'),1300,NULL,10);
    
    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);
    COMMIT;
    
    select * from dept;
    select * from emp;
    select * from salgrade;
    -- 1์ •์˜ ๋ฐ ์ผ๋ฐ˜์ ์ธ ์„ธํŒ… ์™„๋ฃŒ --
    
    -- 1 ์‚ฌ์› ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๋ ˆ์ฝ”๋“œ ์กฐํšŒํ•˜๊ธฐ --
    select * from emp;
    
    -- 1 mgr ์ด๋ž€ ํ•ด๋‹น ์‚ฌ์›์˜ ๋งค๋‹ˆ์ € ์‚ฌ์› ๋ฒˆํ˜ธ --
    select empno, ename, job, mgr, hiredate, sal, comm, deptno
    from emp;
    
    -- 2 ์‚ฌ์›๋ช…๊ณผ ์ž…์‚ฌ์ผ์„ ์กฐํšŒ --
    select empno, hiredate
    from emp;
    
    -- 3 ์‚ฌ์›๋ฒˆํ˜ธ์™€ ์ด๋ฆ„ ---
    select empno, ename
    from emp;
    
    -- 4 ์‚ฌ์› ํ…Œ์ด๋ธ”์— ์žˆ๋Š” ์ง์ฑ…์˜ ๋ชฉ๋ก ์กฐํšŒ --
    select distinct job
    from emp;
    
    -- 5 ์ด ์‚ฌ์›์ˆ˜๋ฅผ ๊ตฌํ•˜์‹œ์˜ค --
    select count(*)
    from emp;
    
    -- 6 ๋ถ€์„œ ๋ฒˆํ˜ธ๊ฐ€ 10์ธ ์‚ฌ์› --
    select *
    from emp
    where deptno =  10;
    
    -- 7 ์›”๊ธ‰์—ฌ๊ฐ€ 2500 ์ด์ƒ ๋˜๋Š” ์‚ฌ์› ์กฐํšŒ --
    select *
    from emp
    where sal >= 2500;
    
    -- 8 ์ด๋ฆ„์ด king ์ธ ์‚ฌ์› ์กฐํšŒ --
    select *
    from emp
    where ename = 'KING';
    
    -- 9 ์‚ฌ์› ์ค‘ ์ด๋ฆ„์ด s ๋กœ ์‹œ์ž‘ํ•˜๋Š” ์‚ฌ์›์˜ ์‚ฌ์›๋ฒˆํ˜ธ์™€ ์ด๋ฆ„์„ ์กฐํšŒํ•˜์‹œ์˜ค --
    select empno, ename
    from emp
    where ename like 'S%';
    
    -- 10 ์‚ฌ์› ์ด๋ฆ„์— T ๊ฐ€ ํฌํ•จ๋œ ์‚ฌ์›์˜ ์‚ฌ์›๋ฒˆํ˜ธ์™€ ์ด๋ฆ„์„ ์กฐํšŒ --
    select empno, ename
    from emp
    where ename like '%T%';
    
    -- 11 ์ปค๋ฏธ์…˜์ด 300, 500, 1400 ์ธ ์‚ฌ์›์˜ ์‚ฌ๋ฒˆ, ์ด๋ฆ„, ์ปค๋ฏธ์…˜์„ ์กฐํšŒํ•˜๊ธฐ --
    select empno, ename, comm
    from emp
    where comm =300 or comm = 5000 or comm = 1400;
    
    select empno, ename, comm
    from emp
    where comm in (300,500,1400);
    
    
    -- 12 ์›” ๊ธ‰์—ฌ๊ฐ€ 1200 ์—์„œ 3500 ์‚ฌ์ด์˜ ์‚ฌ์›์˜ ์‚ฌ๋ฒˆ, ์ด๋ฆ„, ์›”๊ธ‰์—ฌ๋ฅผ ์กฐํšŒ --
    select empno, ename, sal
    from emp
    where sal between 1200 and 3500;
    
    -- 13 ์ง๊ธ‰์ด ๋งค๋‹ˆ์ €์ด๊ณ , ๋ถ€์„œ๋ฒˆํ˜ธ๊ฐ€ 30์ธ ์‚ฌ์›์˜ ์ด๋ฆ„,์‚ฌ๋ฒˆ,์ง๊ธ‰,๋ถ€์„œ๋ฒˆํ˜ธ๋ฅผ ์กฐํšŒํ•˜๊ธฐ --
    select ename,empno,job,deptno
    from emp
    where job ='MANAGER' and deptno=30;
    
    -- 14 ์ปค๋ฏธ์…˜์ด 300, 500, 1400 ์ด ๋ชจ๋‘ ์•„๋‹Œ ์‚ฌ์›์˜ ์‚ฌ๋ฒˆ, ์ด๋ฆ„, ์ปค๋ฏธ์…˜์„ ์กฐํšŒ --
    select empno, ename, comm
    from emp
    where comm not in (300, 500, 1400);
    
    -- 15 ์ด๋ฆ„์— S ๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š๋Š” ์‚ฌ์›์˜ ์‚ฌ๋ฒˆ, ์ด๋ฆ„์„ ์กฐํšŒ --
    select empno, ename
    from emp
    where ename not like '%S%';
    
    -- 16 ๊ธ‰์—ฌ๊ฐ€ 1200 ๋ณด๋‹ค ๋ฏธ๋งŒ์ด๊ฑฐ๋‚˜ 3700 ์ดˆ๊ณผํ•˜๋Š” ์‚ฌ์›์˜ ์‚ฌ๋ฒˆ, ์ด๋ฆ„, ์›”๊ธ‰์—ฌ๋ฅผ ์กฐํšŒ --
    SELECT empno, ename, sal
    FROM emp
    WHERE sal < 1200 or sal > 3700;
    
    -- 17 ์ง์†์ƒ์‚ฌ๊ฐ€ null ์ธ ์‚ฌ์›์˜ ์ด๋ฆ„๊ณผ ์ง๊ธ‰์„ ์กฐํšŒ -- 
    select ename, job
    from emp
    where mgr is null;
    
    -- 18 group by ๊ตฌ๋ฌธ --
    select deptno, avg(sal)
    from emp;
    
    -- 19 ๋ถ€์„œ๋ณ„ ํ‰๊ท ์›”๊ธ‰์—ฌ๋ฅผ ๊ตฌํ•˜๋Š” ์ฟผ๋ฆฌ --
    select deptno, avg(sal)
    from emp
    group by deptno;
    
    -- 20 ๋ถ€์„œ๋ณ„ ์ „์ฒด ์‚ฌ์›์ˆ˜์™€ ์ปค๋ฏธ์…˜์„ ๋ฐ›๋Š” ์‚ฌ์›๋“ค์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ์ฟผ๋ฆฌ --
    select deptno, count(*), count(comm)
    from emp
    group by deptno;
    
    -- 21 ๋ถ€์„œ๋ณ„ ์ตœ๋Œ€ ๊ธ‰์—ฌ์™€ ์ตœ์†Œ ๊ธ‰์—ฌ๋ฅผ ๊ตฌํ•˜๋Š” ์ฟผ๋ฆฌ -- 
    select deptno, max(sal), min(sal)
    from emp
    group by deptno;
    
    -- 22 ๋ถ€์„œ๋ณ„๋กœ ๊ธ‰์—ฌ ํ‰๊ท (๋‹จ, ๋ถ€์„œ๋ณ„๋กœ ๊ธ‰์—ฌ ํ‰๊ท ์ด 2000 ์ด์ƒ๋งŒ) , ์—๋Ÿฌ ๊ตฌ๋ฌธ ์ฒซ๋ฒˆ์งธ, ๋‘๋ฒˆ์งธ ๊ฐ€๋Šฅ--
    select deptno, avg(sal)
    from emp
    where avg(sal) >= 2000;
    group by deptno;
    
    select deptno, avg(sal)
    from emp
    group by deptno
    having avg(sal) >= 2000;
    
    select deptno, avg(sal)
    from emp
    where sal >= 1000
    group by deptno
    having avg(sal) >= 2000;
    
    -- 23 ๊ธ‰์—ฌ๊ฐ€ ๋†’์€ ์ˆœ์œผ๋กœ ์กฐํšŒํ•˜๋˜ ๊ธ‰์—ฌ๊ฐ€ ๊ฐ™์„ ๊ฒฝ์šฐ ์ด๋ฆ„์˜ ์ฒ ์ž๊ฐ€ ๋น ๋ฅธ ์‚ฌ์› ์ˆœ์œผ๋กœ ์‚ฌ๋ฒˆ, ์ด๋ฆ„, ์›”๊ธ‰์—ฌ๋ฅผ ์กฐํšŒ --
    select empno, ename, sal
    from emp
    order by sal desc, ename asc;
    
    -- 24 ์กฐ์ธ์€ 2๊ฐœ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๋•Œ ์‚ฌ์šฉ, ํ…Œ์ด๋ธ” n๊ฐœ๋ฅผ ์กฐ์ธํ•  ๋•Œ n-1 ๊ฐœ์˜ ์กฐ์ธ ์กฐ๊ฑด์ด ํ•„์š”--
    -- ์นดํ…Œ์‹œ์•ˆ ๊ณฑ, ๋‹จ์ˆœ ์กฐ์ธ, ์•ž์œผ๋กœ ๋‚˜์˜ค๋Š” ์กฐ์ธ ์˜ˆ์ œ๋Š” ์ด๋Ÿฌํ•œ ๋‹จ์ˆœ ์กฐ์ธ ๊ฒฐ๊ณผ๋ฅผ ๋จธ๋ฆฌ์†์— ๊ทธ๋ฆฌ๋ฉด์„œ ์‹จใ…‚, ์ด 56๊ฐœ์˜ ํ–‰์€ emp ํ…Œ์ด๋ธ”์— ์กด์žฌํ•˜๋Š” 14๊ฐœ์˜ ๋ ˆ์ฝ”๋“œ์™€ dept ํ…Œ์ด๋ธ”์— ์กด์žฌํ•˜๋Š”
    -- 4๊ฐœ์˜ ๋ ˆ์ฝ”๋“œ์˜ ๊ณฑ์œผ๋กœ ์ƒ์„ฑ  --
    select emp.ename, dept.dname
    from emp, dept; 
    
    -- 25 ์‚ฌ์›๋ช…๊ณผ ๋ถ€์„œ๋ช…์„ ์กฐํšŒํ•˜์‹œ์˜ค, ๊ธฐ์กด์˜ emp์˜ ๋ถ€์„œ๋ฒˆํ˜ธ๊ฐ€ ๋ถ€์„œ์ด๋ฆ„์œผ๋กœ ๋ณ€๊ฒฝ๋จ --
    select e.ename, d.dname
    from emp e, dept d
    where e.deptno = d.deptno;
    
    -- 26 mgr --
    select e.ename, m.ename
    from emp e
    inner join emp m
    on e.mgr = m.empno;
    
    -- 27 ์ด๋ฆ„, ์›”๊ธ‰์—ฌ, ์›”๊ธ‰์—ฌ ๋“ฑ๊ธ‰์„ ์กฐํšŒ --
    select e.ename, e.sal, s.grade
    from emp e, salgrade s
    where e.sal >= s.losal and e.sal <= s.hisal;
    
    select e.ename, e.sal, s.grade
    from emp e, salgrade s
    where e.sal between s.losal and s.hisal;
    
    -- 28 ์ด๋ฆ„, ๋ถ€์„œ๋ช…, ์›”๊ธ‰์—ฌ ๋“ฑ๊ธ‰์„ ์กฐํšŒ(๋‚œ์ด๋„ โ˜…โ˜…)-- 
    select e.ename, d.dname, s.grade
    from emp e, dept d, salgrade s
    where e.deptno = d.deptno
    and e.sal between s.losal and s.hisal;
    
    -- 29 ์ง์›์˜ ์ด๋ฆ„, ์ง์† ์ƒ์‚ฌ ์ด๋ฆ„์„ ์กฐํšŒ --
    select e.ename, b.ename
    from emp e, emp b
    where e.mgr = b.empno; -- ์ง์›์˜ ์ƒ์‚ฌ(์šฐ์ธก)  = ์ผ๋ฐ˜ ํ…Œ์ด๋ธ”์—์„œ ํ•ด๋‹น ์‚ฌ์› ๋ฒˆํ˜ธ, ๊ตฌํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ์ด ์™ผ์ชฝ
    
    -- 29๋ฒˆ๊ณผ์˜ ์ฐจ์ด์ ์€? --
    select e.name, b.ename
    from emp e, emp b
    where e.empno = b.mgr;
    
    -- 29 ๋ฒˆ์€ ํšŒ์žฅ(president) ์— ๋Œ€ํ•œ ๋ ˆ์ฝ”๋“œ๊ฐ€ ๋ฐฐ์ œ๋จ, mgr ์ปฌ๋Ÿผ์ด null์ด๊ณ  ์‚ฌ์›๋ฒˆํ˜ธ๊ฐ€ null์ธ ์‚ฌ์›์€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์กฐ์ธ์กฐ๊ฑด์— ๋งŒ์กฑํ•˜์ง€ ์•Š๋Š”๋‹ค.
    -- ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ๊ฒฐ๊ณผ์— ํšŒ์žฅ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋ณด์—ฌ์•ผ ํ•œ๋‹ค๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ์งˆ์˜ํ•ด์•ผ ํ•œ๋‹ค. ๋‚œ์ด๋„ : โ˜…โ˜…
    select e.ename, m.mgr
    from emp e
    left join emp m
    on e.mgr = m.empno; -- outer join : ์™ธ๋ถ€ ์กฐ์ธ์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ, A left join B : ์กฐ์ธ ์กฐ๊ฑด์— ๋งŒ์กฑํ•˜์ง€ ๋ชปํ•ด๋„ ์™ผ์ชฝ ํ…Œ์ด๋ธ”์˜ A์˜ ํ–‰์„ ๋‚˜ํƒ€๋‚ด๊ณ  ์‹ถ์„๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
    
    
    -- 30. ์ด๋ฆ„, ๋ถ€์„œ๋ช…์„ ์กฐํšŒํ•˜์‹œ์˜ค -- 
    -- ๋‹จ ์‚ฌ์› ํ…Œ์ด๋ธ”์— ๋ถ€์„œ๋ฒˆํ˜ธ๊ฐ€ 40์— ์†ํ•œ ์‚ฌ์›์ด ์—†์ง€๋งŒ ๋ถ€์„œ๋ฒˆํ˜ธ 40์ธ ๋ถ€์„œ๋ช…๋„ ์ถœ๋ ฅ๋˜๋„๋ก ํ•˜์‹œ์˜ค --
    
    select e.ename, d.dname
    from dept d 
    left join emp e
    on d.deptno = e.deptno;
    
    
    -- 31 ์ด๋ฆ„ ๋ถ€์„œ๋ฒˆํ˜ธ ๋ถ€์„œ์ด๋ฆ„์„ ์กฐํšŒ --
    -- from ์— dept ๊ฐ€ ๋จผ์ € ์˜ค๋ฉด, ์‚ฌ์›์€ null ์ด์ง€๋งŒ, ๋ถ€์„œ๋ฒˆํ˜ธ๊ฐ€ ๋ณด์ด๋Š” ๊ฒฝ์šฐ์ด๋ฏ€๋กœ, ๋ถ€์กฑํ•œ ์ชฝ์ธ emp๊ฐ€ left join์—์„œ ๋จผ์ € ์˜ค๊ฒŒ ๋œ๋‹ค
    select e.ename, d.deptno, d.dname
    from emp e 
    left join dept d
    on d.deptno = e.deptno; 
    
    -- 32 ๋ถ€์„œ๋ฒˆํ˜ธ๊ฐ€ 30๋ฒˆ์ธ ์‚ฌ์›๋“ค์˜ ์ด๋ฆ„, ์ง๊ธ‰, ๋ถ€์„œ๋ฒˆํ˜ธ, ๋ถ€์„œ์œ„์น˜๋ฅผ ์กฐํšŒ, ์ผ๋ถ€ ๊ฒน์นœ ๋‚ด์šฉ์„ ์กฐํšŒํ•˜๋Š” ๊ฒฝ์šฐ, ๋‚œ์ด๋„ : โ˜…โ˜…--
    select e.ename, job, d.deptno, loc
    from emp e
    inner join dept d
    on e.deptno = d.deptno
    where d.deptno = 30;
    
    -- 32 inner join ๋ง๊ณ  ๋‹ค๋ฅธ ํ’€์ด
    select e.ename, job, d.deptno, loc
    from emp e, dept d
    where e.deptno = d.deptno and d.deptno = 30;
    
    -- 33 ์ปค๋ฏธ์…˜์„ ๋ฐ›๋Š” ์‚ฌ์›์˜ ์ด๋ฆ„, ์ปค๋ฏธ์…˜, ๋ถ€์„œ์ด๋ฆ„, ๋ถ€์„œ์œ„์น˜๋ฅผ ์กฐํšŒ --
    select ename, comm, dname, loc
    from emp e, dept d
    where e.deptno = d.deptno
    and e.comm is not null and comm <> 0;
    
    
    select ename, comm, dname, loc
    from emp e, dept d
    where e.deptno = d.deptno
    and e.comm is not null and e.comm != 0;
    
    select ename, comm, dname, loc
    from emp e
    inner join dept d
    on e.deptno = d.deptno
    where e.comm is not null and e.comm not in (0);
    
    -- 34 Dallas ์—์„œ ๊ทผ๋ฌดํ•˜๋Š” ์‚ฌ์›์˜ ์ด๋ฆ„, ์ง๊ธ‰, ๋ถ€์„œ๋ฒˆํ˜ธ, ๋ถ€์„œ๋ช…์„ ์กฐํšŒ --
    select e.ename, e.job, d.deptno, d.dname
    from emp e
    inner join dept d
    on e.deptno = d.deptno
    where d.loc = 'Dallas';
    
    -- 34 ์˜ ๋‹ค๋ฅธ ๋ฒ„์ „ --
    select e.ename, e.job, d.deptno, d.dname
    from emp e, dept d
    where e.deptno = d.deptno 
    and d.loc = 'Dallas';
    
    
    -- 35 ์ด๋ฆ„์— a๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” ์‚ฌ์›Œ๋А์ด ์ด๋ฆ„, ๋ถ€์„œ๋ช…์„ ์กฐํšŒ --
    select e.ename, d.dname
    from emp e
    inner join dept d
    on e.deptno = d.deptno
    where e.ename like '%A%';
    
    -- 35์˜ ๋‹ค๋ฅธ ๋ฒ„์ „ --
    select e.ename, d.dname
    from emp e, dept d
    where e.deptno = d.deptno and e.ename like '%A%';
    
    -- 36 ์ด๋ฆ„, ์ง๊ธ‰, ์›”๊ธ‰์—ฌ, ์›”๊ธ‰์—ฌ๋“ฑ๊ธ‰์„ ์กฐํšŒ --
    select e.ename, e.job, e.sal, s.grade
    from emp e, salgrade s
    where e.sal between s.losal and s.hisal;
    
    
    -- 37 allen ๊ณผ ๊ฐ™์€ ๋ถ€์„œ์— ๊ทผ๋ฌดํ•˜๋Š” ์‚ฌ์›์˜ ์ด๋ฆ„, ๋ถ€์„œ๋ฒˆํ˜ธ๋ฅผ ์กฐํšŒ --,--e : ์—˜๋Ÿฐ, c: ์—˜๋Ÿฐ์„ ์ œ์™ธํ•œ ๊ฐ™์€ ๋ถ€์„œ์— ๊ทผ๋ฌดํ•˜๋Š” ์‚ฌ๋žŒ๋“ค
    -- ์ฆ‰, e.ename ์ด ์•„๋‹Œ, c.ename ์ด ๋˜์–ด์•ผ ํ•œ๋‹ค
    select c.ename, e.deptno
    from emp e, emp c
    where e.empno <> c.empno
    and e.deptno = c.deptno
    and e.ename = 'ALLEN'
    order by c.ename;
    -- ํ—ค๊น”๋ฆฐ๋‹ค . --
    
    -- 37 inner join ํ™œ์šฉ -- 
    select b.ename, a.deptno
    from emp a
    inner join emp b
    on a.deptno = b.deptno
    where a.empno <> b.empno
    and a.ename = 'ALLEN'
    order by b.ename;
    
    
    -- 38 ์„œ๋ธŒ ์ฟผ๋ฆฌ --
    -- select ๋ฌธ ์•ˆ์—์„œ () ๋กœ ๋‘˜๋Ÿฌ์‹ธ์ธ select ๋ฌธ์„ ๋งํ•˜๋ฉฐ, ์ฟผ๋ฆฌ๋ฌธ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฉ”์ธ ์ฟผ๋ฆฌ๋กœ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
    
    select dname
    from dept
    where deptno = (select deptno from emp where ename = 'JONES');
    
    
    -- 39 10๋ฒˆ ๋ถ€์„œ์—์„œ ๊ทผ๋ฌดํ•˜๋Š” ์‚ฌ์›์˜ ์ด๋ฆ„๊ณผ 10๋ฒˆ ๋ถ€์„œ์˜ ๋ถ€์„œ๋ช…์„ ์กฐํšŒ --
    
    select e.ename, d.dname
    from emp e, 
    (
    	select deptno, dname
    	from dept
    	where deptno = 10
    ) d
    where e.deptno = d.deptno;
    
    -- 39๋ฒˆ ์‰ฌ์šด ํ’€์ด --
    select e.ename, d.dname
    from emp e, dept d
    where e.deptno = d.deptno
    and d.deptno =10;
    
    -- 40 ํ‰๊ท  ์›”๊ธ‰์—ฌ๋ณด๋‹ค ๋” ๋งŽ์€ ์›”๊ธ‰์—ฌ๋ฅผ ๋ฐ›๋Š” ์‚ฌ์›์˜ ์‚ฌ์›๋ฒˆํ˜ธ, ์ด๋ฆ„, ์›”๊ธ‰์—ฌ ์กฐํšŒ --
    select e.empno, e.ename, e.sal
    from emp e
    where sal > (select avg(sal)
    			from emp)
    order by sal desc;
    
    -- 41 ๋ถ€์„œ๋ฒˆํ˜ธ๊ฐ€ 10์ธ ์‚ฌ์›์ค‘์—์„œ ์ตœ๋Œ€๊ธ‰์—ฌ๋ฅผ ๋ฐ›๋Š” ์‚ฌ์›๊ณผ ๋™์ผํ•œ ๊ธ‰์—ฌ๋ฅผ ๋ฐ›๋Š” ์‚ฌ์›์˜ ์‚ฌ์›๋ฒˆํ˜ธ, ์ด๋ฆ„์„ ์กฐํšŒ --
    select e.empno, e.ename
    from emp e
    where sal = (select max(sal)
    			from emp
    			where deptno = 10);
                
                
    -- 42 insert ๋ฌธ --
    desc emp;
    select * from emp;
    
    insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno) 
    values(1567 'ํ™๊ธธ๋™','SALESMAN',7698,sysdate(),2000,1000,30);
    
    -- ์ผ๋ถ€ ์—ด ๋ฐ์ดํ„ฐ๊ฐ’ ๋ˆ„๋ฝ --
    insert into emp (empno, ename, job, mgr, hiredate, sal, deptno) 
    values(1697, '์žฅ๋ณด๊ณ ','MANAGER',7839,sysdate()-1,3000,30);
    
    -- 42 ์‚ฌ์›ํ…Œ์ด๋ธ” ์žฅ๋ณด๊ณ  ์›”๊ธ‰์—ฌ 2800์œผ๋กœ ๋ณ€๊ฒฝ --
    UPDATE emp
    SET sal = 2800
    where ename = '์žฅ๋ณด๊ณ ';
    
    select * from emp;
    
    -- 43 ์‚ฌ์›ํ…Œ์ด๋ธ”์—์„œ ํ™๊ธธ๋™ ์›”๊ธ‰์—ฌ 300 ์ธ์ƒ ๋ฐ comm์€ 500์œผ๋กœ ์ˆ˜์ • --
    update emp
    set sal = sal + 300, comm = 500
    where ename = 'ํ™๊ธธ๋™';
    
    commit; -- update ํ•˜๊ณ  ๋‚ด์šฉ ์ €์žฅํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ, commit ์‹คํ–‰ํ•˜๊ธฐ
    select * from emp;
    
    -- 44. delete ๋ฌธ, ํ™๊ธธ๋™,์žฅ๋ณด๊ณ  ์‚ญ์ œ --
    delete from emp
    where ename in ('ํ™๊ธธ๋™','์žฅ๋ณด๊ณ ');
    ๋ฐ˜์‘ํ˜•

    '๐Ÿ‘‹์ž๊ฒฉ์ฆ > ๐Ÿ™ˆSQLD๊ฐœ๋ฐœ์ž' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

    [sqld] ํ•ฉ๊ฒฉ ํ›„๊ธฐ์™€ ๊ณต๋ถ€ ๋ฐฉ๋ฒ• ๊ทธ๋ฆฌ๊ณ  ๊ฟ€ํŒ(feat.์„ฑ์ ํ‘œ ์ฒจ๋ถ€)  (5) 2021.12.26
    [sqld] 43ํšŒ ํ›„๊ธฐ ๋ฐ ๋ณต์›  (0) 2021.11.20
    [sql ๊ณต๋ถ€๋ฒ•] ๋…ผ๋ž€ ๋๋‚ด๊ธฐ  (1) 2021.11.07
    [SQL] count, groupby, subquery  (0) 2021.11.07
    [SQL] DB ์„ค๊ณ„(์ •๊ทœํ™”,ROLLBACK, COMMIT) 2ํŽธ  (0) 2021.11.07
      '๐Ÿ‘‹์ž๊ฒฉ์ฆ/๐Ÿ™ˆSQLD๊ฐœ๋ฐœ์ž' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
      • [sqld] ํ•ฉ๊ฒฉ ํ›„๊ธฐ์™€ ๊ณต๋ถ€ ๋ฐฉ๋ฒ• ๊ทธ๋ฆฌ๊ณ  ๊ฟ€ํŒ(feat.์„ฑ์ ํ‘œ ์ฒจ๋ถ€)
      • [sqld] 43ํšŒ ํ›„๊ธฐ ๋ฐ ๋ณต์›
      • [sql ๊ณต๋ถ€๋ฒ•] ๋…ผ๋ž€ ๋๋‚ด๊ธฐ
      • [SQL] count, groupby, subquery
      Dev.Op
      Dev.Op
      Interest: CS, Drive

      ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”