일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- softeer
- 코딩교육봉사
- 데이터베이스
- 1과목
- CJ UNIT
- 소프티어
- 백준 알고리즘
- BFS
- 백준
- SW봉사
- 백준알고리즘
- 파이썬
- MYSQL
- 알고리즘
- 스프링
- python
- 공부일지
- SQL
- C++
- 프로그래머스
- kotlin
- 자바
- 코딩봉사
- programmers
- 문제풀이
- 코틀린
- 시나공
- 정보처리산업기사
- 회고
- java
- Today
- Total
JIE0025
[MySQL] 데이터 삽입 INSERT 본문
INSERT 문
INSERT [INTO] tablename [(열1,열2 ...)] VALUES (값1,값2 ....) |
- 테이블 이름 다음에 나오는 열은 생략 가능하다.
단 열의 순서 및 개수는 동일해야한다.
USE cookDB; CREATE TABLE testTBL1 (id int, userName char(3), age int); INSERT INTO testTBL1 VALUES (1,'KHY','18'); |
- id와 이름만 입력, 나이는 입력X
INSERT INTO testTBL1 (id, userName) VALUES (2,'PJA'); |
- 열의 순서 변경해 입력
INSERT INTO testTBL1 (userName,age,id) VALUES ('HWO', 19,3); |
AUTO_INCREMENT
- 자동으로 1부터 증가하는 값을 입력
굳이 입력하지 않아도 자동으로 값이 늘어남
- 특정 Primary Key (기본키) , Unique Key(유일한 값) 로 설정한다.
- 데이터 형식이 숫자인 열에만 사용 가능하다.
- AUTO_INCREMENT 로 지정된 열은 INSERT 문에서 NULL 값으로 지정하면 자동으로 값이 입력된다.
USE cookDB; CREATE TABLE testTBL2;( id int AUTO_INCREMENT PRIMARY KEY. userName char(3), age int ); INSERT INTO testTBL2 VALUES (NULL, 'HEW',13); INSERT INTO testTBL2 VALUES (NULL, 'DAS',14); INSERT INTO testTBL2 VALUES (NULL, 'KKR',15); SELECT * FROM testTBL2; |
id | userName | age |
1 | HEW | 13 |
2 | DAS | 14 |
3 | KKR | 15 |
- AUTO_INCREMENT 값을 100부터 시작하고 싶다면?
ALTER TABLE testTBL2 AUTO_INCREMENT=100; INSERT INTO testTBL2 VALUES (NULL, 'QWE',16); SELECT * FROM testTBL2; |
id | userName | age |
1 | HEW | 13 |
2 | DAS | 14 |
3 | KKR | 15 |
100 | QWE | 16 |
AUTO_INCREMENT 로 증가되는 값 (N) 지정
@@auto_increment_increment = N;
USE cookDB; CREATE TABLE testTBL3;( id int AUTO_INCREMENT PRIMARY KEY. userName char(3), age int ); ALTER TABLE testTBL AUTO_INCREMENT = 1000; @@auto_increment_increment = 3; INSERT INTO testTBL2 VALUES (NULL, 'HEW',13); INSERT INTO testTBL2 VALUES (NULL, 'DAS',14); INSERT INTO testTBL2 VALUES (NULL, 'KKR',15); SELECT * FROM testTBL3; |
id | userName | age |
1000 | HEW | 13 |
1003 | DAS | 14 |
1006 | KKR | 15 |
여러행을 한번에 입력
INSERT INTO testTBL3 VALUES (NULL, 'DAD', 45), (NULL, 'MOM',42), (NULL, 'SON',15); |
id | userName | age |
1000 | HEW | 13 |
1003 | DAS | 14 |
1006 | KKR | 15 |
1009 | DAD | 45 |
1012 | MOM | 42 |
1015 | SON | 15 |
다른 테이블의 데이터 가져와서 입력
INSERT INTO 데이터입력테이블 (입력할 속성) SELECT 다른 테이블에서 가져올 속성 FROM 다른 테이블 WHERE 조건; |
employees 테이블의 데이터를 가져와서 testTBL4 테이블에 입력해보자
USE cookDB; CREATE TABLE testTBL4 (id int, Fname varchar(50), Lname varchar(50)); INSERT INTO testTBL4 SELECT emp_no, first_name, last_name FROM employees.employees; |
<결과확인>
employees 테이블
데이터 복사된 testTBL4 테이블
테이블 정의 생략하고 다른테이블 데이터 복사하기
CREATE TABLE 생성할테이블 (SELECT 다른 테이블에서 가져올 속성 FROM 다른 테이블 이름); SELECT * FROM testTBL5 LIMIT 3; |
CREATE TABLE testTBL5
|
위의 예제는 다른 테이블에서 데이터를 가져올 때 열의이름이 그대로 왔다.
다른 테이블에서 데이터를 가져올 때 열이름을 바꾸는 방법은 다음과 같다.
CREATE TABLE testTBL5 (SELECT emp_no AS id, first_name AS Fname, last_name AS Lname FROM employees.employees); SELECT * FROM testTBL6 LIMIT 3; |
'개발 > Database' 카테고리의 다른 글
[MySQL] 데이터 삭제 DELETE, DROP, TRUNCATE (0) | 2021.04.13 |
---|---|
[MySQL] 데이터 변경 UPDATE (0) | 2021.04.13 |
[MSSQL] 윈도우 함수 Window Function (0) | 2021.04.07 |
[MSSQL] TOP filter 와 정렬(ASC,DESC) (0) | 2021.04.07 |
[MSSQL] SELECT, MSSM 관련 개념 (0) | 2021.04.07 |