SQL

SQL. 2026-06-26

yunzzang-c 2024. 6. 26. 17:40
반응형

SELECT *
FROM BUY;

SELECT *
FROM MEMBERS;

-- MEM_ID, MEM_NAME, PROD_NAME, AMOUNT

SELECT
    M.MEM_ID,
    M.MEM_NAME,
    B.PROD_NAME,
    B.AMOUNT
FROM MEMBERS M
JOIN BUY B ON M.MEM_ID = B.MEM_ID
WHERE MEM_NAME = '마마무'
ORDER BY AMOUNT ASC;

-- 서브쿼리
-- 단일 행 서브쿼리

SELECT *
FROM EMPLOYEES A
WHERE A.SALARY = (
    SELECT SALARY
    FROM EMPLOYEES
    WHERE LAST_NAME = 'De Haan'
    );

SELECT *
FROM EMPLOYEES A
WHERE A.SALARY = 17000;

-- 서브쿼리 : IN
SELECT *
FROM EMPLOYEES A
WHERE A.SALARY IN (
    SELECT MIN(SALARY)
    FROM EMPLOYEES
    GROUP BY DEPARTMENT_ID
    )
ORDER BY A.SALARY DESC;

SELECT MAX(HEIGHT)
FROM MEMBERS;

SELECT MEM_NAME, HEIGHT
FROM MEMBERS
WHERE HEIGHT = (
    SELECT MAX(HEIGHT)
    FROM MEMBERS
    );

-- 서브쿼리
-- 다중 열 서브쿼리
SELECT *
FROM EMPLOYEES A
WHERE (A.JOB_ID, A.SALARY)IN (
    SELECT JOB_ID, MIN(SALARY) 그룹별급여
    FROM EMPLOYEES
    GROUP BY JOB_ID
    )
ORDER BY A.SALARY DESC;

-- DML
-- INSERT : 행 삽입하기
INSERT INTO DEPARTMENTS(DEPARTMENT_ID, DEPARTMENT_NAME, MANAGER_ID, LOCATION_ID)
VALUES
(271, 'Sample_Dept', 200, 1700);

-- INSERT 생략형
-- 모든 컬럼 정보가 있을시 생략 가능
-- NULL값인 곳은 ''로 빈 정보 입력 가능
INSERT INTO departments
VALUES
(273, 'Sample_Dept', '',1700);

COMMIT; -- DML 작업확정
ROLLBACK; -- 보류중이었던 모든 DML 변경사항이 폐기되고 이전의 상태가 복원

-- DML
-- UPDATE : 행 갱신하기
UPDATE departments
SET manager_id = 201,
    LOCATION_ID = 1800
WHERE department_name = 'Sample_Dept';

UPDATE departments
SET department_name = '홍길동'
WHERE department_id = 271;

UPDATE departments
SET (departments.manager_id, departments.location_id) =
    (SELECT departments.manager_id, departments.location_id
    FROM departments
    WHERE departments.department_id = 40)
WHERE departments.department_name = 'Sample_Dept';

-- DML
-- DELETE : 행 삭제하기
DELETE FROM departments
WHERE departments.department_id IN (
    SELECT departments.department_id
    FROM departments
    WHERE departments.department_name = 'Sample_Dept');
    
DELETE FROM departments
WHERE departments.department_name = 'Sample_Dept';

반응형