본문 바로가기
SQL (RDBMS)

INSERT, DELETE, UPDATE 문

by MachineJW 2023. 4. 9.

1. INSERT 기본 문법

USE market_db;
CREATE TABLE hongong1 (toy_id INT, toy_name CHAR(4),age INT);
-- 연습용 테이블을 만듬 
INSERT INTO hongong1 VALUES (1, '우디', 25);
SELECT * FROM hongong1;
-- INSERT INTO 테이블명(컬럼명, 컬럼명) VALUES (컬럼에 넣을 데이터, 컬럼에 넣을 데이터);

-- 한번에 여러 데이터를 넣을 때 1줄로 입력할 수 있다.

/*한번에 4개의 데이터 넣기*/
INSERT INTO hongong2 (toy_name,age) VALUE ('이름1',26) , ('이름2',27) ,('이름3',28) ,('이름4',29) ;

2. 자동생성 AUTO_INCREMENT

/*자동생성 AUTO_INCREMENT */
CREATE TABLE hongong2 (toy_id INT AUTO_INCREMENT PRIMARY KEY, toy_name CHAR(40),age INT);
-- 자동생성 되는 AUTO_INCREMENT는 널이 허용되지않는, 반드시 들어가야하는 기본키로 지정해줘야한다.

3. ALTER TABLE

/*ALTER TABLE*/
-- 테이블을 변경할떄 사용한다.

ALTER TABLE hongong2 AUTO_INCREMENT=100;
-- 자동증가를 100부터 시작하도록 변경하였다.

INSERT INTO hongong2 VALUE (NULL, '재남', 35);
SELECT * FROM hongong2 ORDER BY toy_id DESC;
SET @@auto_increment_increment=3; 
-- 증가 값을 3으로 지정
-- '@@변수명'은 mysql에서 자체적으로 가지고 있는 시스템 변수이다.
-- SELECT @@시스템변수명을 입력하면 설정 값을 알 수 있다.
-- 전체 시스템 변수의 종류를 알고 싶다면 SHOW GROBAL VARIABLES 명령어를 실행한다.

4. INSERT INTO ~ SELECT

/*INSERT INTO ~ SLECT*/
CREATE TABLE city_popul (city_name CHAR(35),popualtion INT); -- 테이블 생성

INSERT INTO city_popul
	SELECT NAME , city_name FROM member.mem_name; -- world.city 테이블의 내용을 city_popul 테이블에 입력
    
    -- 많은 양의 데이터를 한번에 입력하는 방법으로 해당 테이블의 데이터를 가져와서 한번에 입력할 수 있다.
    -- SELECT 문 열 갯수는 INSERT할 테이블의 열 개수와 같아야한다.

5. UPDATE 기본 문법

-- UPDATE 테이블_이름 SET 열1=값1,열2=값2,.. WHERE 조건;

/*UPDATE ~ SET ~ WHERE*/
USE market_db;
-- mysql 워크벤치에서 UPDATE와 DELETE를 허용하도록 설정해준다.

UPDATE hongong2 SET toy_name = '홍지우' WHERE toy_name = '지우';
-- update 테이블명 set 열이름 = 바꿀데이터 where 열이름에서 '지우'인 것을
UPDATE hongong2 SET toy_name = '지우홍' WHERE toy_name = '홍지우';
SELECT * FROM hongong2;

-- UPDATE 문에서 WHERE 절은 문법상 생략 가능하지만 , WHERE절이 없으면 테이블의 모든 로우데이터가 바뀐다.
-- 그러므로 항상 주의하며 WHERE 절을 사용하도록 해야한다.

6. DELETE 기본 문법

/*DELETE 삭제*/
-- DELETE FROM 테이블이름 WHERE 조건;

DELETE FROM my_phone WHERE phone_id = 'jinwoo';
-- phone_id 열이 jinwoo로 된 데이터를 삭제
-- DELETE 역시 WHERE절은 무조건 있는 것이 좋다. WHERE 절이 없으면 모든 로우 데이터가 삭제된다.

-- 만약 특정 문자나 숫자로 시작하는 데이터를 모두 지우는 것이 아니라 상위 몇건의 데이터만 삭제하려면 LIMIT 구문과 함께 사용한다.
DELETE FROM my_phone 
	WHERE phone_id LIKE 'Jin%' 
    LIMIT 5;
-- phone_id 열에서 Jin~으로 시작되는 이름을 상위 5개의 데이터만 삭제

'SQL (RDBMS)' 카테고리의 다른 글

SQL 데이터형식 정리  (0) 2023.04.15
테이블 제약조건(Constraint)  (0) 2023.02.26
ORDER BY, GROUP BY  (0) 2022.12.05
혼공SQL) SELECT문 실습  (0) 2022.12.05
데이터베이스(DataBase)/DBMS/SQL 개념  (0) 2022.11.29