INSERT INTO 테이블이름(열1, 열2, 열3) VALUES (값1, 값2, 값3);
테이블 이름 다음에 나오는 열은 생략이 가능하다.
열 이름을 생략할 경우에 VALUES 다음에 나오는 값들의 순서 및 개수는 테이블을 정의할 때의 열 순서 및 개수와 동일해야 한다.
USE market_db; //데이터베이스 선택
CREATETABLE hongong1 (toy_id INT, toy_name CHAR(4), age INT); //테이블 생성
INSERTINTO hongong1 VALUES (1, '우디', 25); //테이블에 데이터 추가
만약 아이디와 이름만 입력하고 나이는 입력하고 싶지 않다면 아래와 같이 테이블 이름 뒤에 입력할 열의 이름을 써줘야 한다. 이 경우 생략한 나이(age) 열에는 아무것도 없다는 의미의 NULL 값이 들어간다.
MySQL Workbench 설정 변경 워크벤치에서는 기본적으로 UPDATE 및 DELETE를 허용하지 않기 때문에 설정을 변경해야 한다. 1. 먼저 기존에 열린 쿼리 창을 모두 종료한다. 2. Edit -> Preferences메뉴를 실행한다. 3. 위 그림처럼 밑 줄 친 곳의 체크 박스를 해제하고 OK를 누른다. 4. 워크벤치를 재시작한다.
앞에 생성한 city_popul 테이블의 도시 이름 중에서 Seoul을 서울로 변경해 보자.
USE market_db;
UPDATE city_popul
SET city_name ='서울'WHERE city_name ='Seoul';
SELECT*FROM city_popul WHERE city_name ='서울';
아래는 도시 이름인 NewYork을 뉴욕으로 바꾸면서 인구는 0으로 설정하는 명령이다.
UPDATE city_popul
SET city_name ='뉴욕', population =0WHERE city_name ='New York';
SELECT*FROM city_popul WHERE city_name ='뉴욕';
WHERE가 없는 UPDATE문 UPDATE 문에서 WHERE 절은 문법상 생략이 가능하지만, WHERE 절을 생략하면 테이블의 모든 행의 값이 변경된다. 이러한 경우는 드물뿐더러, 끔찍한 결과를 초래할 수 있으니 주의하자
city_popul 테이블에서 New로 시작하는 도시를 삭제하기 위해 아래와 같이 실행한다.
DELETEFROM city_popul
WHERE city_name LIKE'New%';
만약 New로 시작하는 도시 모두를 삭제하는 것이 아니라 상위 몇 건만 삭제하려면 LIMIT 구문과 함께 사용하면 된다.
DELETEFROM city_popul
WHERE city_name LIKE'New%'
LIMIT 5; #상위 5건만 삭제
DELETE, DROP, TRUNCATE의 차이 DELETE문은 삭제가 오래 걸린다. TRUNCATE문은 DELETE와 동일한 효과를 내지만 속도가 매우 빠르다. 하지만 WHERE 문을 사용할 수 없다는 것을 주의해야 한다. DROP문은 테이블 자체를 삭제한다. 반면에 TRUNCATE문과 DELETE는 빈 테이블을 남긴다. 따라서 테이블 자체를 삭제할 때는 DROP를 쓰고, 테이블의 구조는 남겨놓고 싶다면 TRUNCATE로 삭제하는 것이 효율적이다.