[혼공SQL] chapter 3. SQL 기본 문법(3)

여정이·2024년 1월 16일
0

혼자 공부하는 SQL

목록 보기
8/28

📒 요약 : 데이터베이스와 테이블을 만들 후에 데이터를 입력/수정/삭제하는 법을 살펴볼 것이다.

  • INSERT : 테이블에 데이터를 입력한다.
  • UPDATE : 테이블 안에 있는 데이터를 수정한다.
  • DELETE : 데이터를 삭제한다.

데이터 변경을 위한 SQL문

1. INSERT : 데이터 입력

INSERT는 테이블에 새로운 데이터를 삽입하는 명령어이다. 기본적인 형식은 아래와 같다.

INSERT INTO 테이블 [(1,2, ...)] VALUES(1,2, ...)

테이블 이름 다음에 나오는 열은 생략할 수 있는데, 이는 VALUES에 들어갈 값의 개수가 테이블의 열과 일치하고, 순서 역시 일치할 때에만 가능하다.

INSERT INTO 테이블 [(1,2, ...)] VALUES(1,2, ...)

우선 간단한 테이블을 만들어보자.

USE market_db;
CREATE TABLE hongong1 (toy_id, INT, toy_name CHAR(4), age INT);
INSERT INTO hongong1 VALUES(1, '우디', 25);
INSERT INTO hongong1 (toy_id, toy_name) VALUES(2, '우디');

AUTO_INCREMENT

AUTO_INCREMENT는 열을 정의할 때 1부터 증가하는 값을 자동으로 입력해주는데, 각 행을 구분하는 용도로 사용하기에 좋다. 그래서 AUTO_INCREMENT로 지정하는 열은 반드시 PRIMARY KEY로 지정해주자.

CREATE TABLE hongong2 (
	toy_id INT AUTO_INCREMENT PRIMARY KEY,
    toy_name CHAR(4),
    age INT
);

이후에 데이터를 입력할 때에는 자동으로 증가하는 부분은 NULL값으로 채우면 된다.

INSERT INTO hongong2 VALUES(NULL, '보핍', 25);
INSERT INTO hongong2 VALUES(NULL, '슬링키', 22);
INSERT INTO hongong2 VALUES(NULL, '렉스', 21);

AUTO_INCREAMENT로 입력되는 시작 값을 지정할 수도 있는데, 다음과 같이 'ALTER TABLE (테이블 이름) AUTO_INCREAMENT = 숫자 지정'의 형태를 활용하면 된다.

ALTER TABLE hongong2 AUTO_INCREMENT = 100;

증가하는 값을 N으로 변경하고 싶을 때에는 @@auto_increment_increment를 변경하면 된다.

set @@auto_increment_increment = 3;

만약 위와 같이 입력했다면 PRIMARY KEY의 값이 3씩 증가할 것이다.

INSERT INTO ~ SELECT : 다른 테이블의 데이터를 한 번에 입력

INSERT INTO ~ SELECT문은다른 테이블에 있는 데이터를 가져와 입력하는 것이다. 기본형은 다음과 같다.

INSERT INTO (데이터를 삽입할 테이블 이름) (1,2, ...)
	SELET 열 이름, FROM (데이터를 가져올 테이블 이름);

이 때, SELECT문의 열의 개수는 INSERT할 테이블의 열 개수와 같아야 함에 주의하자.


2. UPDATE : 데이터 수정

테이블 안에 있는 데이터를 바꿀 때에는 UPDATE를 이용한다. UPDATE문의 기본형은 다음과 같다.

UPDATE 테이블 이름
	SET1=1,2=2, ...
    WHERE 조건;

위의 내용을 해석해 보자면 WHERE 조건을 만족하는 데이터의 각 열을 값1, 값2로 바꾼다는 의미이다. WHERE을 생략하고 UPDATE할 수도 있는데, 이럴 경우 모든 행의 데이터가 변경되니 주의하자.


3. DELETE : 데이터 삭제

테이블 안에 있는 데이터를 삭제할 때에는 DELETE를 이용한다. DELETE문의 기본형은 다음과 같다.

DELET FROM 테이블 이름 WHERE 조건;

이렇게 간단한 문장으로 WHERE 조건을 만족하는 데이터를 삭제할 수 있다.

0개의 댓글