집돌이 공대남 IT

[SQL]SQL 기본 문법 실습: INSERT, DELETE, UPDATE, MERGE 본문

IT/SQL

[SQL]SQL 기본 문법 실습: INSERT, DELETE, UPDATE, MERGE

집공이 2023. 3. 5. 20:05

안녕하십니까 집공이 입니다.

 

오늘은 데이터베이스의 언어인 SQL에 대해서 기초를 다져보는 시간을 가지겠습니다.

 

SQL(Structured Query Language)은 관계형 데이터베이스에서 데이터를 조작하기 위한 표준 언어입니다.

 

데이터베이스에서 데이터를 조회하고, 추가하고, 수정하고, 삭제하는 등의 작업을 할 때 SQL을 사용합니다.

 

SQL은 크게 다음과 같은 기본적인 문법으로 구성됩니다.

 

1. 기본 문법의 종류

  • SELECT: 데이터를 조회하기 위한 문법입니다.
  • FROM: 데이터를 조회할 테이블을 지정합니다.
  • WHERE: 특정 조건을 만족하는 데이터를 조회하기 위한 문법입니다.
  • ORDER BY: 데이터를 정렬하기 위한 문법입니다.
  • GROUP BY: 데이터를 그룹화하기 위한 문법입니다.
  • JOIN: 두 개 이상의 테이블을 연결하여 데이터를 조회하기 위한 문법입니다.

 

SELECT

SELECT [컬럼명1, 컬럼명2, ...] FROM [테이블명]

 

FROM

SELECT [컬럼명1, 컬럼명2, ...] FROM [테이블명]

 

WHERE 

SELECT [컬럼명1, 컬럼명2, ...] FROM [테이블명] WHERE [조건식]

 

ORDER BY 

SELECT [컬럼명1, 컬럼명2, ...] FROM [테이블명] ORDER BY [컬럼명] [ASC|DESC]

 

GROUP BY 

SELECT [컬럼명1, 컬럼명2, ...] FROM [테이블명] GROUP BY [컬럼명]

 

JOIN 

SELECT [컬럼명1, 컬럼명2, ...] FROM [테이블명1] JOIN [테이블명2] ON [조인 조건식]

위의 기본적인 문법을 학습하고 익히면 SQL을 사용하여 데이터베이스에서 데이터를 다양하게 처리할 수 있습니다.

 

2. 제어 명령어

이제는 데이터를 조작하기 위한 명령어들을 배워 보겠습니다.

 

INSERT

데이터베이스에 새로운 레코드를 추가하는 명령어입니다.

INSERT INTO 테이블명 (컬럼1, 컬럼2, ...) VALUES (값1, 값2, ...)

 

 

예시

INSERT INTO students (name, age, gender) VALUES ('John', 20, 'M');​

위의 예시는 'students' 테이블에 이름이 John이고 나이가 20인 남성 학생을 추가하는 명령어입니다.

 

 

DELETE

데이터베이스에서 레코드를 삭제하는 명령어입니다.

DELETE FROM 테이블명 WHERE 조건절

 

 

예시

DELETE FROM students WHERE name = 'John';​

위의 예시는 'students' 테이블에서 이름이 John인 학생을 삭제하는 명령어입니다.

 

 

UPDATE

데이터베이스의 레코드를 수정하는 명령어입니다.

UPDATE 테이블명 SET 컬럼1 = 값1, 컬럼2 = 값2, ... WHERE 조건절

 

 

예시

UPDATE students SET age = 21 WHERE name = 'John';

위의 예시는 'students' 테이블에서 이름이 John인 학생의 나이를 21로 수정하는 명령어입니다.

 

MERGE

두 개의 테이블을 조합하여 새로운 테이블을 생성하는 명령어입니다. 두 개의 테이블을 조인하고 일치하는 레코드를 새로운 테이블에 삽입하며, 일치하지 않는 레코드는 조작 대상이 아닙니다.

 

예시

MERGE INTO employees e 
USING temp_employees t 
ON (e.employee_id = t.employee_id)
WHEN MATCHED THEN UPDATE SET e.salary = t.salary 
WHEN NOT MATCHED THEN INSERT (employee_id, first_name, last_name, salary)
VALUES (t.employee_id, t.first_name, t.last_name, t.salary);​

위의 예시는 'employees'와 'temp_employees' 두 개의 테이블을 조합하여 'employees' 테이블의 salary 컬럼을 'temp_employees' 테이블의 salary 값으로 업데이트하며, 일치하지 않는 레코드는 'employees' 테이블에 추가하는

명령어입니다.

 

오늘은 이렇게 SQL 기본 문법을 배워보았습니다. 기초적으로 많이 쓰이는 것을 기반으로 만들었습니다. 

이것말고도 다른 명령어들도 있습니다. 예를들어 GRANT, ALTER 등 권한 관련된 명령어들도 있고 TRUNCATE 같이 삭제 쿼리도 있습니다. 하지만 나중에 나올 때 마다 추가적으로 설명을 할테니 오늘 배운 내용을 기반으로 충분히 학습하시길 바랍니다.

 

감사합니다.