[데이터베이스] DML - INSERT, UPDATE, DELETE

Narcoker·2024년 5월 19일
0

데이터베이스

목록 보기
16/17
post-custom-banner

DML

데이터베이스 내의 데이터를 조작하는 데 사용되는 SQL(Structured Query Language) 명령어의 집합
DML 명령어는 데이터의 삽입, 수정, 삭제, 조회와 같은 작업을 수행

INSERT INTO

기본적인 INSERT 문 구조

INSERT INTO table_name [(column, ..., column] VALUES ([expression, ..., expression]);
-- SELECT 문의 결과를 추가
INSERT INTO table_name [(column, ..., column)] SELECT statement ;

부서 테이블에 새로운 레코드 삽입
이때 기본키는 중복이 안되도록 삽입한다.

-- 레코드 1 개 추가

INSERT INTO department
VALUES (60, 'Statisics, 'Sciences', 30000000);
-- 특정 속성의 값만 추가

INSERT INTO department(deptno, dname)
VALUES (70, 'Philosophy');
-- NULL 값도 추가가 가능하다

INSERT INTO department
VALUES (80, 'Industrial Design', null, null);
-- 시간과 날짜 정보를 삽입할 경우, TO_DATE() 함수 사용

INSERT INTO student
VALUES (2000, 'John', 10, 101, 'M', 'London', TO_DATE('2001/06/24', 'YYYY/MM/DD'), 3.67(
-- 행 값을 복사하여 다른 테이블에 삽입가능

INSERT INTO d10student(stno, name, address, grade)
SELECT sid, sname, addr, grade
FROM student
WHERE deptno = 10;

UPDATE ... SET

기본적인 UPDATE 문 구조

UPDATE table_name
SET column = expression, [, column = expression ] [WHERE condition, ALL];

학생 테이블에서 Taehee의 데이터 갱신
만약 WHERE 절이 없다면 모든 레코드를 대상으로 바뀐다.

UPDATE student
SET deptno = 10, addr = 'Daegu', grade = 3.89
WHERE sname = 'Taehee';

Database를 전공한 교수가 소속된 학과의 예산을 최고 수준으로 인상

UPDATE department
SET budget = (SELECT MAX(budget) FROM department;)
WHERE deptno in 
(
SELECT deptno 
FROM professor
WHERE major = 'Datebase';
);

DELETE

DELETE FROM table_name [WHERE condition, ALL];

학생 테이블에서 학과 번호가 20 인 행의 값 삭제

DELETE FROM student
WHERE deptno = 20

학생이 없는 학과를 삭제하라

DELETE FROM department
WHERE deptno NOT IN 
(
-- 학생 테이블에서 학과번호 중복 없이 출력 
SELECT DISINCT deptno
FROM student
)
profile
열정, 끈기, 집념의 Frontend Developer
post-custom-banner

0개의 댓글