INSERT
-- 테이블에 데이터를 입력할 때 쓴다.
INSERT INTO 테이블명(컬럼명) VALUES(값) -- 기본 형태
-- 사용 예시
-- 예시를 위해 아이디와 이름, 나이를 작는 testTbl1이란 테이블을 우선 만든다.
-- 입력 예시
INSERT INTO testTbl1
VALUE(1, '홍길동', 25); -- 컬럼명을 생략할 수 있으나 컬럼별 값의 순서가 바뀌면 안된다.
INSERT INTO testTbl1(id, userName)
VALUE(2, '설현'); -- 컬럼과 값의 순서는 일치해야 한다, NULL 값도 입력가능
INSERT INTO testTbl1(userName, age, id)
VALUE ('하니',26,3); -- 풀스택으로 입력할 경우는 컬럼과 값의 순서만 일치하면 컬럼의 순서가 바뀌어도 입력데이터는 순서에 맞게 들어간다.
INSERT INTO testTbl1 VALUES(NULL, '나연', 20),(NULL, '정연', 18),(NULL, '모모', 19); -- 이런 식으로 입력도 가능
AUTO_INSCREMENT
-- AUTO_INSCREMENT 는 값을 1씩 자동증가 시킬 때 사용한다.
-- id는 자동증가, userName, age 칼럼을 갖는 testTbl2라는 테이블을 만들어라.
CREATE TABEL testTbl2(
id INT AUTO_INSCREMENT PRIMARY KEY,
userName CHAR(3),
age INT
);
-- 만든 테이블에 다음과 같이 아이디를 제외한 값을 입력하고 확인
INSERT INTO testTbl2(userName, age) VALUES('지민', 25);
INSERT INTO testTbl2(userName, age) VALUES('윤아', 22);
INSERT INTO testTbl2 VALUES(NULL, '유경', 21); -- 간략형으로 입력할 땐 VALUES의 아이디가 들어갈 부분에 NULL을 입력해야 한다.
SELECT*FROM testTbl2;
SELECT LAST_INSERT_ID(); -- 마지막 입력된 ID를 확인하는 함수
ALTER
-- 테이블을 수정할 때 사용
-- 위 테이블의 자동증가를 100부터 증가하게 수정하시오
ALTER TABLE testTbl2 AUTO_INSCREMENT = 100;
-- 그리고 값을 입력하고 확인해보자.
INSERT INTO testTbl2 VALUES(NULL, '찬미',23);
INSERT INTO testTbl2 VALUES(NULL, '정수',22);
SELECT*FROM testTbl2;
-- 위의 테이블에서 값을 3씩 증가하게 하고 싶다.
SET @@auto_increment_increment = 3;
-- 확인을 위해 3개의 테이터를 간략형으로 입력
INSERT INTO testTbl2 VALUES(NULL, '나연', 20),(NULL, '정연', 18),(NULL, '모모', 19);
SELECT*FROM testTbl2;
IGNORE - 조건부 데이터 입력
-- userID, name, addr 행을 가진 memberTBL 테이블을 생성. usertbl에서 3개의 데이터만 가져와라.
CREATE TABLE memberTBL(
SELECT userID, name, addr FROM usertbl LIMIT 3
);
-- userID에 기본키를 할당하도록 수정
ALTER TABLE memberTBL
ADD CONSTRAINT pk_memberTBL PRIMARY KEY(userID);
-- 아래 3개의 데이터를 입력하고 한번에 실행하면
-- 이미 bbk를 가지고 있는 행이 존재하기 때문에 에러가 남
INSERT INTO memberTBL VALUES('BBK', '비비코', '미국');
INSERT INTO memberTBL VALUES('SJH', '서장훈', '서울');
INSERT INTO memberTBL VALUES('HJY', '현주엽', '경기');
-- 해결하기 위해 IGNORE문 삽입
-- 이미 bbk를 가지고 있는 행은 넘기고 나머지 2행이 추가된다.
INSERT IGNORE INTO memberTBL VALUES('BBK', '비비코', '미국');
INSERT IGNORE INTO memberTBL VALUES('SJH', '서장훈', '서울');
INSERT IGNORE INTO memberTBL VALUES('HJY', '현주엽', '경기');
-- 기본키가 중복되면 데이터 수정이 되도록 하시오.
INSERT INTO memberTBL VALUES('BBK', '비비코', '미국')
ON DUPLICATE KEY UPDATE name = '비비코', addr = '미국'; -- 키가 중복되면 업데이트
-- 만약 중복되면 이름과 주소만 바꿔라. 현재 중복된 키가 없어서 추가로 입력되었다.
INSERT INTO memberTBL VALUES('DJM', '동짜몽', '일본')
ON DUPLICATE KEY UPDATE name = '동짜몽', addr = '일본';
-- 조관우의 주소를 서울로 변경하라. 만약 PK가 중복 존재한다면 이 들어가면 INSERT 조건문으로.
INSERT INTO memberTBL VALUES('JKW', '조관우', '서울')
ON DUPLICATE KEY UPDATE addr = '서울';
'AI > MySQL' 카테고리의 다른 글
MySQL DELETE (0) | 2021.08.07 |
---|---|
MySQL UPDATE (0) | 2021.08.07 |
MySQL SELECT (0) | 2021.08.07 |
MySQL #계정추가, #권한부여, #권한조회, #DCL (0) | 2021.08.05 |
MySQL #테이블, #인덱스, #뷰 (0) | 2021.08.05 |