The INSERT Statement (데이터 삽입)
INSERT 문법: 데이터를 테이블에 삽입하기 위해 사용됩니다.
-- 사용 방법
INSERT INTO table_name (column_1, column_2, …, column_n)
VALUES (value_1, value_2, …, value_n);
/*
column들의 순서와 value값들의 순서는 서로 일치해야한다!!
*/
insert into employees
(
emp_no,
birth_date,
first_name,
last_name,
gender,
hire_date
) values
(
999901, -- 정수형 또한 따옴표 안에 작성은 가능하나 좋은 방법은 아니다.
'1986-04-21',
'John',
'Smith',
'M',
'2011-01-01'
);
insert into 문 작성 시 주의사항 : column순서와 넣으려는 value값들의 순서가 일치해야 합니다!!
Inserting Data INTO a New Table (새 테이블에 데이터 삽입)
이번에 보여줄 insert절은 테이블을 모두 가져오는 방법이다.(제가 이해한 것은 copy라 생각됩니다.)
/*
사용방법 및 table_2에 table_1의 모든 데이터를 복사 붙여넣기
*/
INSERT INTO table_2 (column_1, column_2, …, column_n)
SELECT column_1, column_2, …, column_n
FROM table_1
WHERE condition;
/*
departments와 departments_dup의 컬럼은 동일하다.
departments의 모든 데이터들을 departments_dup테이블로 모두 복사 붙여넣기
*/
INSERT INTO departments_dup
(
dept_no,
dept_name
)
SELECT
*
FROM
departments;
주의사항 : 컬럼명은 달라도 되나, 컬럼 개수는 같아야 합니다.
The UPDATE Statement (데이터 업데이트)
UPDATE 문법: 테이블의 기존 데이터를 업데이트할 때 사용됩니다.(기존 데이터 수정)
/*
사용 방법
*/
UPDATE table_name
SET column_1 = value_1, column_2 = value_2 …
WHERE conditions;
/*
기존에 emp_no의 값을 아래의 데이터들로 변경하였다.
*/
UPDATE employees
SET
first_name = 'Stella',
last_name = 'Parkinson',
birth_date = '1990-12-31',
gender = 'F'
WHERE
emp_no = 999909;
주의 사항 : 특정 조건을 만족하는 데이터를 업데이트할 수 있으며, WHERE 조건을 생략하면 테이블의 모든 데이터가 업데이트됩니다.
COMMIT and ROLLBACK (트랜잭션 제어 언어)
COMMIT: 트랜잭션에서 수행한 변경 사항을 데이터베이스에 영구적으로 저장합니다.
ROLLBACK: 마지막 COMMIT 이전 상태로 데이터를 되돌립니다.
(마지막 시점으로 옮기는 것이 가능하지 ROLLBACK을 두 번 쓴다 하여 두 번째 이전 COMMIT 상태로 돌아가는 것은 아닙니다.)
COMMIT은 데이터베이스 상태를 저장하고, ROLLBACK은 마지막 저장 시점으로 되돌릴 수 있어 데이터 변경 관리에 유용합니다.
SELECT
*
FROM
departments_dup
ORDER BY dept_no;
commit;
-- WHERE절이 존재하지 않아 테이블 내의 모든 데이터 값이 변경된 것을 확인 할 수 있다.
UPDATE departments_dup
SET
dept_no = 'd011',
dept_name = 'Quality Control';
-- commit 전으로 되돌리는 역할을 하여 업데이트 하기 전으로 돌아갔음을 확인 할 수 있다.
ROLLBACK;
COMMIT;
728x90
'Data Analyst > SQL' 카테고리의 다른 글
SQL - INNER JOIN, DUPLICATED, LEFT JOIN (0) | 2024.08.31 |
---|---|
SQL - DELETE, TRUNCATE, Aggregate functions(집계함수), IFNULL - COALESCE (0) | 2024.08.29 |
SQL - Wildcard, IS NULL, Between AND, Distinct, Aggregate Function, Group By, Having, Limit (0) | 2024.08.27 |
SQL - SELECT, WHERE, AND, OR, IN-NOT IN (0) | 2024.08.26 |
SQL - MySQL Constraints - 2 (0) | 2024.08.22 |