1. SELECT 구문 외 조작어
SQL에서는 다양한 조작어(DML, Data Manipulation Language)를 사용하여 데이터베이스 내의 데이터를 조작할 수 있다. 이 전까지 SELECT 구문에 대해 살펴보았고, 그 외 자주 사용되는 조작어에 대해 알아보자.
2. 데이터 삽입: INSERT
데이터베이스 테이블에 새로운 데이터를 삽입할 때 사용된다.
1) INSERT 기본 구문
💡 INSERT INTO table1 (column1, column2, ...) VALUES (data1, data2, ...);
해석: 위의 문법에서 "table1"은 데이터를 삽입하고자 하는 테이블의 이름이며, "column1, column2, ..."은 데이터를 삽입하고자 하는 테이블의 컬럼 이름을 나열한다. "data1, data2, ..."는 삽입하려는 데이터 값들을 나열한다. 이때 컬럼 이름과 데이터 값의 개수와 순서가 일치해야 한다. 즉, column1과 data1 형태로 1:1 매칭되며, column1에 지정한 타입에 맞는 data1을 입력해야 한다.
2) 부분 행 삽입
INSERT 문을 사용하여 테이블의 일부 컬럼만 삽입하는 방법이다. 이 방법은 테이블의 모든 컬럼에 데이터를 삽입하지 않아도 되는 경우에 유용하다.
**[ 예시 ]**
CREATE table cutomers(
cNo int auto_increment primary key,
cName varchar(15) not null,
cAge int not null,
cAddress varchar(100),
cPhone varchar(13),
);
INSERT INTO customers (name, age)
VALUES ('TH', 32);
해석: "customers" 테이블의 "name"과 "age" 컬럼에 각각 "TH"와 32 값을 가진 새로운 고객 정보를 삽입하고 있다. "address"와 "phone" 컬럼은 값을 지정하지 않았기 때문에, 해당 컬럼의 기본값(null)이 자동으로 삽입된다.
3) SELECT문을 사용한 삽입
INSERT 문에서 VALUES 절 대신에 SELECT 문을 사용하여 다른 테이블에서 데이터를 가져와 삽입하는 방법이다. 이 방법은 두 개 이상의 테이블에서 데이터를 조합하여 새로운 테이블에 삽입하는 등의 작업에 유용하다.
SELECT 문을 사용한 삽입을 수행하려면, INSERT 문에서 삽입할 컬럼 이름을 명시하고, VALUES 절 대신에 SELECT 문을 사용하여 데이터를 가져와야 한다.
**[ 예시 ]**
INSERT INTO customers (order_date, total_amount)
SELECT order_date, total_amount
FROM orders
WHERE customer_id = 1234;
해석: "orders" 테이블에서 "customer_id"가 1234인 주문 데이터를 가져와 "order_date"와 "total_amount" 값을 추출하여, 해당 값을 "customers" 테이블의 "order_date"와 "total_amount" 컬럼에 삽입하고 있다.
3. 데이터 수정: UPDATE
UPDATE 구문은 기존 데이터베이스 테이블의 레코드를 업데이트하는 데 사용된다. 이 구문은 데이터베이스 테이블에서 특정 레코드나 레코드 그룹의 값을 변경할 때 유용하다.
[ 기본 구문 ]
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
해석: 위의 구문에서 table_name은 업데이트하려는 테이블의 이름이다. SET 절은 업데이트하려는 컬럼 이름과 새로운 값으로 구성된다. WHERE 절은 업데이트할 레코드를 선택하기 위한 조건이다.
# 예시 코드
UPDATE customers
SET name = 'TH'
WHERE id = 1234;
해석: "customers" 테이블에서 "id"가 1234인 레코드를 찾아서 "name" 컬럼의 값을 "TH"로 변경하고 있다.
주의사항: WHERE 절을 생략하면 테이블의 모든 레코드가 업데이트되므로, 실수를 방지하기 위해 항상 WHERE 절을 사용하는 것이 좋다. 또한, WHERE 절을 사용할 때 조건을 정확하게 작성해야 하며, 조건에 맞는 레코드만 업데이트되도록 주의해야 한다.
4. 데이터 삭제: DELETE
DELETE 구문은 데이터베이스 테이블에서 레코드를 삭제하는 데 사용된다. 이 구문은 테이블에서 특정 레코드나 레코드 그룹을 제거할 때 유용하다.
💡 [ 테이블 모든 행 삭제 ]: table1의 모든 행 삭제 처리 DELETE FROM table1;
💡 [ 테이블 부분 행 삭제 ]: 조건에 맞는 테이블 행 삭제 처리 DELETE FROM table1 WHERE conditions;
DELETE FROM customers
WHERE id = 1234;
해석: "customers" 테이블에서 "id"가 1234인 레코드를 찾아서 삭제하고 있다.
주의사항: WHERE 절을 생략하면 테이블의 모든 레코드가 삭제되므로, 실수를 방지하기 위해 항상 WHERE 절을 사용하는 것이 좋다. 또한, WHERE 절을 사용할 때 조건을 정확하게 작성해야 하며, 조건에 맞는 레코드만 삭제되도록 주의해야 한다. 특히 데이터베이스에서 레코드를 삭제하면 해당 레코드와 관련된 모든 데이터가 영구적으로 삭제된다. 때문에, 레코드를 삭제하기 전에 데이터의 백업을 권장한다.
'DB - MySQL' 카테고리의 다른 글
DDL(Data Definition Language) (0) | 2023.05.25 |
---|---|
테이블 붙이기 - UNION, JOIN (0) | 2023.05.24 |
서브쿼리와 상관 서브 쿼리 (0) | 2023.05.24 |
SELECT문 - NULL값 관리 (0) | 2023.05.23 |
SELECT문 - 조건문 활용 (0) | 2023.05.23 |