본문 바로가기
SQL

SQL - 기본 문법(데이터 변경)

by hyeon1016 2024. 11. 6.

INSERT문(CREATE)

테이블에 행 데이터를 삽입하는 기본적인 SQL 구문이다.

*대괄호 안에 기입하는 컬럼(열)의 이름은 생략 가능하나 생략할 경우 값이 순서대로 삽입된다.

 INSERT INTO 테이블[(열1, 열2,...)] VALUES(값1, 값2,...);
INSERT INTO table01(col2, col3, col1) VALUES(1, 2, 3);

 

- col2에 1, col3에 2, col1에 3을 삽입한다.(입력받을 열의 순서는 임의로 지정할 수 있음)

 

AUTO_INCREMENT

테이블을 만들 때 컬럼(열)에 AUTO_INCREMENT를 지정하면 데이터가 삽입될 때 마다 1씩 값이 증가한다. 증감식(++)를 생각하면 이해하기 쉽고, 보통 PRIMARY KEY과 함께 사용한다.

AUTO_INCREMENT가 지정된 열에 데이터를 삽입할 때 NULL을 넣으면 자동으로 값이 증가하며, 다른 값을 넣으면 그 값을 기준으로 값이 증가한다.

CREATE TABLE table01(
	id INT AUTO_INCREMENT PRIMARY KEY,
	name VARCHAR(10)
);

INSERT INTO table01 VALUES(NULL, '가나다');

 

- table01의 컬럼(열)로 id, name을 지정하고, id에 AUTO_INCREMENT, PRIMARY KEY를 지정한다.

- table01에 NULL과 '가나다'를 삽입한다.

- AUTO_INCREMENT의 기능으로 증가된 값 1이 삽입된다.

 

LAST_INSERT_ID()

테이블에 마지막으로 삽입된 행의 값을 가져온다.

INSERT INTO table01 VALUES(NULL, 10);
SELECT LAST_INSERT_ID();

 

- 마지막으로 삽입된 AUTO_INCREMENT의 값을 출력한다.

 

INSERT INTO ~SELECT

다른 테이블의 데이터를 가져와 입력 가능한 구문으로 여러 행을 한번에 입력 가능하여 편리하고 효율적이다.

INSERT INTO table1
	SELECT name01, age FROM table2;

 

- table2 테이블의 name01, age 컬럼(열)의 데이터를 table1에 입력한다.

 

UPDATE문(UPDATE)

테이블에 입력된 값을 수정하는 명령어다.

*SET절 안에서 연산이 가능하다.

UPDATE 테이블
	SET 열1 = 값1, 열2 = 값2/100
	WHERE 조건 ==> 예시 / 열1 = 10;

 

WEHER절이 없는 UPDATE문

WHERE절은 문법상 생략 가능하지만 WHERE절로 특정 행을 지정하지 않으면 모든 행이 수정된다.

UPDATE table01
	SET name01 = '마바사';

 

- name01 컬럼(열)의 모든 행이 '마바사'로 수정된다.

 

DELETE(DELETE)

테이블의 행을 제거하는 명령어다.

*WHERE절을 생략하면 모든 행을 제거한다. LIMIT 절을 사용해 제거할 행의 개수를 지정할 수 있다.

DELETE FROM 테이블
	WHERE 조건;
DELETE FROM table01
	WHERE name01 LIKE '가%';

 

- name01 컬럼에서 '가'로 시작하는 값을 가진 행을 모두 제거한다.

 

DELETE FROM table01
	WHERE name01 LIKE '가%'
	LIMIT 5;

 

- name01 컬럼에서 '가'로 시작하는 값을 가진 행을 5개만 제거한다.

 

대용량 테이블의 제거

명령어 설명
DELELTE 삭제가 오래 걸린다. 빈 테이블을 남긴다.(NULL)
DROP 삭제가 빠르다. 테이블 자체를 삭제한다.
TRUNCATE 삭제가 빠르다. 빈 테이블을 남긴다.(NULL)

 

'SQL' 카테고리의 다른 글

SQL - JOIN  (0) 2024.11.07
SQL - 데이터의 형식  (0) 2024.11.06
SQL - 기본 문법(SELECT)  (4) 2024.11.06
SQL - 기본 문법  (0) 2024.11.05
SQL - 데이터베이스  (0) 2024.11.04