1. INSERT: 데이터를 테이블에 삽입
먼저, 데이터를 넣기 위한 INSERT문. 기본적인 형식은 다음과 같다.
INSERT INTO 테이블명 (컬럼1, 컬럼2, ...)
VALUES (값1, 값2, ...);
컬럼명을 생략할 수도 있지만, 그 경우 VALUES의 값 순서와 개수는 테이블 생성 시 정의된 순서와 동일해야 한다는 점을 주의해야 한다. 예를 들어 다음 테이블을 보자:
CREATE TABLE `example01` (
name VARCHAR(100),
age INT,
major VARCHAR(100)
);
이 테이블에 데이터를 삽입할 때는 이렇게 할 수 있다:
INSERT INTO `example01`
VALUES ('roxan', 23, '코리아');
컬럼명을 명시하면 순서를 바꿔도 상관없다:
INSERT INTO `example01` (major, name, age)
VALUES ('코리아', 'Christian', 23);
2. AUTO_INCREMENT: 자동으로 증가하는 기본 키
많은 테이블에서는 id처럼 고유한 식별자 컬럼을 자동으로 증가시키기 위해 AUTO_INCREMENT를 사용한다.
CREATE TABLE `example02` (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100)
);
이 테이블에 데이터를 삽입할 땐 id를 생략하면 MySQL이 자동으로 값을 채워준다:
INSERT INTO `example02` (name)
VALUES ('cyrano'), ('dgishi'), ('rostian');
또는 NULL을 명시해도 자동으로 값이 들어간다:
INSERT INTO `example02`
VALUES (NULL, 'Neviellete');
AUTO_INCREMENT의 현재 최대값은 다음 쿼리로 확인 가능하다:
SELECT MAX(id) FROM `example02`;
시작 값을 바꾸고 싶다면 ALTER TABLE로 설정 가능하다:
ALTER TABLE `example02` AUTO_INCREMENT=100;
3. SELECT+INSERT: 다른 테이블의 데이터를 복사하기
다른 테이블에서 데이터를 조회한 후, 해당 결과를 새로운 테이블에 삽입할 수도 있다.
CREATE TABLE `example03` (
id INT,
name VARCHAR(100)
);
INSERT INTO `example03`
SELECT * FROM `example02`;
이 방식은 테이블 간 데이터 이전이나 이력 관리 시 유용하다. 단, 컬럼의 순서, 개수, 데이터 타입이 정확히 일치해야 한다.
4. UPDATE: 기존 데이터를 수정하기
UPDATE문은 테이블의 특정 값을 수정하는 데 사용된다. 기본 구문은 다음과 같다:
UPDATE 테이블명
SET 컬럼1 = 값1, 컬럼2 = 값2, ...
WHERE 조건;
중요한 건 WHERE절을 반드시 작성해야 한다는 점이다. 그렇지 않으면 해당 컬럼의 모든 레코드가 변경된다.
UPDATE `example02`
SET name='BERGERAC';
이 경우 example02 테이블의 모든 name 컬럼이 BERGERAC로 변경된다.
Safe Update Mode 설정
MySQL에서는 실수로 전부 변경되는 걸 막기 위해 Safe Update Mode가 활성화되어 있는 경우가 있다. 이 모드에서는 WHERE절에 PK 등 Key 기반 조건이 없으면 오류가 발생한다.
SET SQL_SAFE_UPDATES=0; -- 모드 해제
SET SQL_SAFE_UPDATES=1; -- 모드 활성화
UPDATE `example02`
SET name='bergerac'
WHERE id=1;
5. DELETE: 테이블에서 데이터 삭제
DELETE문은 특정 데이터를 삭제하는 데 사용된다. 기본 형태는 다음과 같다:
DELETE FROM 테이블명
WHERE 조건;
역시 WHERE절이 없으면 모든 레코드가 삭제되므로 주의가 필요하다.
특히 Safe Update Mode에서는 PK 조건 없이 삭제할 수 없다
DELETE FROM `example02`
WHERE id=1;
이 쿼리는 id=1인 레코드만 안전하게 삭제한다.
'웹개발 > SQL(mySQL)' 카테고리의 다른 글
| MySQL SubQuery 활용 (1) | 2025.06.18 |
|---|---|
| MySQL SELECT 문 사용방법 (0) | 2025.06.17 |
| MySQL 제약조건(Constraints) (4) | 2025.06.15 |
| 무결성(Integrity) (1) | 2025.06.14 |
| MySQL 명명규칙 (1) | 2025.06.13 |