https://www.hanbit.co.kr/store/books/look.php?p_code=B6846155853
혼자 공부하는 SQL
데이터베이스 개념부터 SQL 문법까지 입문자의 눈높이에 맞춰 구성했습니다. 지루한 설명 대신 도식화된 이미지와 예제를 통한 실습으로 책의 마지막까지 흥미롭게 학습할 수 있습니다. 프로그
www.hanbit.co.kr
위 내용은 <혼자 공부하는 SQL>을 기반으로 공부하여 작성 내용입니다.
3-3 데이터 변경을 위한 SQL 문
- INSERT : 새로 가입한 회원을 테이블에 입력
- UPDATE : 회원의 정보 수정
- DELETE : 회원 삭제
INSERT
- 테이블 이름 다음에 나오는 열은 생략 가능
- 열 이름을 생략할 경우 VALUES 다음에 나오는 값들의 순서 및 개수는 테이블을 정의할 때의 열 순서 및 개수와 동일해야 함
-- market_db 데이터베이스 이용
USE market_db;
-- hongong1 테이블 만듦
CREATE TABLE hongong1 (toy_id INT, toy_name CHAR(4), age INT);
-- 테이블에 데이터 생성
INSERT INTO hongong1 VALUES (1, '우디', 25);
-- 데이터에 정보 생략한 경우 -> 생략한 자리에 NULL값 들어감
INSERT INTO hongong1 (toy_id, toy_name) VALUES (2, '버즈');
-- 순서를 바꿔서 입력하고 싶은 경우
INSERT INTO hongong1 (toy_name, age, toy_id) VALUES ('우디', 20, 3);
AUTO_INCREMENT
- 열을 정의할 때 1부터 증가하는 값을 입력
- INSERT에서 해당 열이 없다고 생각하고 입력하면 됨
- AUTO_INCREMENT로 지정하는 열은 PRIMARY KEY로 지정
-- 테이블 만듦
CREATE TABLE hongong2(
toy_id INT AUTO_INCREMENT PRIMARY KEY,
toy_name CHAR(4),
age INT);
-- 데이터 입력
INSERT INTO hongong2 VALUES(NULL, '보핍', 25);
INSERT INTO hongong2 VALUES(NULL, '슬링키', 22);
INSERT INTO hongong2 VALUES(NULL, '렉스', 21);
-- 테이블 조회
SELECT * FROM hongong2;
-- 현재 어느 숫자까지 증가되었는지 확인
SELECT LAST_INSERT_ID();
-- 자동 증가를 100부터 시작하기 위해 AUTO_INCREMENT를 100으로 지정
ALTER TABLE hongong2 AUTO_INCREMENT=100;]
-- 데이터 추가
INSERT INTO hongong2 VALUES(NULL, '제남', 35);
-- 테이블 조회
SELECT * FROM hongong2;
-- 테이블 만듦
CREATE TABLE hongong3(
toy_id INT AUTO_INCREMENT PRIMARY KEY,
toy_name CHAR(4),
age INT);
-- 시작값을 1000으로 지정
ALTER TABLE hongong3 AUTO_INCREMENT=1000;
-- 증가값은 3으로 지정
SET @@auto_increment_increment=3;
-- 데이터 추가
INSERT INTO hongong3 VALUES(NULL, '토마스', 20);
INSERT INTO hongong3 VALUES(NULL, '제임스', 23);
INSERT INTO hongong3 VALUES(NULL, '고든', 25);
-- 테이블 조회
SELECT * FROM hongong3;
-- 지금까지 3건을 입력하기 위해서는 다음과 같이 3줄로 입력
INSERT INTO 테이블 이름 VALUES(값1, 값2, ...);
INSERT INTO 테이블 이름 VALUES(값3, 값4, ...);
INSERT INTO 테이블 이름 VALUES(값5, 값6, ...);
-- 다음과 같이 1줄로 입력해도 가능
INSERT INTO 테이블 이름 VALUES(값1, 값2, ...),(값3, 값4, ...),(값5, 값6, ...);
INSERT INTO ~ SELECT
- 다른 테이블으리 데이터를 가져와서 한 번에 입력
-- 기본 형식
INSERT INTO 테이블 _이름 (열_이름1, 열_이름2, ...)
SELECT 문;
SELECT COUNT(*) FROM world.city;
-- DESC : Describe의 약자로 테이블의 구조 출력
DESC world.city;
-- 데이터 살펴보기 위해 조회
SELECT * FROM world.city LIMIT 5;
-- 가져올 데이터를 입력할 테이블 만들기
CREATE TABLE city_popul (city_name CHAR(35), population INT);
-- 이전 테이블의 내용을 새 테이블에 입력
INSERT INTO city_popul
SELECT Name, Population FROM world.city;
UPDATE
- 회원의 정보가 행 데이터를 수정해야 하는 경우
-- 기본 형식
UPDATE 테이블_이름
SET 열1=값1, 열2=값2, ...
WHERE 조건;
-- market_db 데이터베이스 이용
USE market_db;
-- 아래 UPDATE 명령어 에러 발생 시 사용
set sql_safe_updates=0;
-- 앞에서 생성한 city_popul 테이블의 도시 이름 중에서 Seoul을 서울로 변경
UPDATE city_popul
SET city_name = '서울'
WHERE city_name = 'Seoul';
-- 결과 조회
SELECT * FROM city_popul WHERE city_name = '서울';
-- 한꺼번에 여러 열의 값 변경
-- 콤마(,)로 분리해서 여러 개의 열을 변경
UPDATE city_popul
SET city_name = '뉴욕', population = 0
WHERE city_name = 'New York';
SELECT * FROM city_popul WHERE city_name = '뉴욕';
WHERE가 없는 UPDATE 문
- UPDATE 문에서 WHERE 절은 문법 상 생략 가능
- WHERE 절을 생략하면 테이블의 모든 행의 값이 변경됨
- 일반적으로 전체 행의 값을 변경하는 경우는 별로 없
-- 모든 도시 이름이 '서울'로 바뀜
UPDATE city_popul
SET city_name = '서울';
-- city_popul 테이블의 인구를 10,000명 단위로 변경
UPDATE city_popul
SET population = population / 10000;
SELECT * FROM city_popul LIMIT 5;
DELETE
- 테이블의 행 데이터를 해야하는 경우 사용
-- 기본 형식
DELETE FROM 테이블 이름 WHERE 조건;
-- New로 시작하는 도시 삭제
DELETE FROM city_popul
WHERE city_name LIKE 'New%';
대용량 테이블의 삭제
- 몇억 건의 데이터가 있는 대용량 테이블 삭제 방법
- DELETE 문은 삭제가 오래 걸림
- DROP 문은 테이블 자체를 삭제 시킴
- TRUNCATE 문은 DELETE 문과 동일한 효과를 내지만 속도가 빠름 -> 효율적
-- 대용량 데이터 생성
CREATE TABLE big_table1 (SELECT * FROM world.city, sakila.country);
CREATE TABLE big_table2 (SELECT * FROM world.city, sakila.country);
CREATE TABLE big_table3 (SELECT * FROM world.city, sakila.country);
SELECT COUNT(*) FROM big_table1;
DELETE FROM big_table1;
DROP TABLE big_table2;
TRUNCATE TABLE big_table3;
'SQL' 카테고리의 다른 글
[혼자 공부하는 SQL] chapter 4. SQL 고급 문법(4-2) (1) | 2023.05.08 |
---|---|
[혼자 공부하는 SQL] chapter 4. SQL 고급 문법(4-1) (0) | 2023.05.08 |
[혼자 공부하는 SQL] chapter 3. SQL 기본 문법(3-2) (0) | 2023.05.03 |
[혼자 공부하는 SQL] chapter 3. SQL 기본 문법(3-1) (1) | 2023.05.02 |
[혼자 공부하는 SQL] chapter 2. 실전용 SQL 미리 맛보기 (0) | 2023.05.01 |