-
[MySQL] INSERTdb/MySQL 2022. 8. 8. 17:19
INSERT INTO 테이블명 (컬럼1,컬럼2...) VALUES (값1,값2...); //모든 컬럼을 타이핑 하기 힘든 경우 컬럼리스트 생략가능 INSERT INTO 테이블 VALUES (첫컬럼값, 값2, 값3 ...마지막 컬럼값);
DEFAULT 키워드
테이블의 컬럼에 기본값이 설정되어 있다면 INSERT문 사용시 DEFAULT 키워드를 사용하여 기본값으로 INSERT가 가능
CREATE TABLE test(col1 INT DEFAULT 1); INSERT INTO test(col1) VALUES(DEFAULT); SELECT col1 FROM test;
기본값이 설정되어있지 않고 NOT NULL제약이 걸려있지 않은 컬럼은
INSERT시 컬럼을 생략하면 DEFAULT값이 없지만 NULL값으로 채워진다.
CREATE TABLE test(col1 INT DEFAULT 1, col2 INT); INSERT INTO test(col1) VALUES(DEFAULT); SELECT col1, col2 FROM test;
DESCRIBE test;
컬럼에 기본값이 설정되어 있지않았어도 INSERT시 DEFAULT를 키워드를 사용할 수 있고 이 경우 NULL로 채워진다.
CREATE TABLE test(col1 INT DEFAULT 1, col2 INT); INSERT INTO test(col1) VALUES(DEFAULT); INSERT INTO test(col1, col2) VALUE(DEFAULT, DEFAULT); SELECT col1, col2 FROM test;
NOT NULL 제약이 존재하는 컬럼은 INSERT시 생략할 수 없고 명시적으로 값을 넣어줘야 한다.
CREATE TABLE test(col1 INT DEFAULT 1, col2 INT NOT null); INSERT INTO test(col1) VALUES(DEFAULT);
null이 아닌 것에 해당하는 기본값 설정이 없는 컬럼이라는 에러를 내준다.
INSERT INTO 테이블1(컬럼리스트) SELECT 컬럼리스트 FROM 테이블2;
CREATE TABLE src_table(src_col1 int, src_col2 INT); INSERT INTO src_table(src_col1, src_col2) VALUES(1,1),(2,2),(3,3),(4,4),(5,5); CREATE TABLE des_table(des_col1 INT, des_col2 INT); INSERT INTO des_table(des_col1,des_col2) select src_col1, src_col2 from src_table; -- INSERT INTO des_table select src_col1, src_col2 from src_table; 과 동일 -- INSERT INTO des_table select * from src_table; 과 동일 -- 복사 결과 확인 SELECT des_col1, des_col2 FROM des_table;
'db > MySQL' 카테고리의 다른 글
[MySQL] EXISTS, NOTEXISTS (0) 2022.08.08 [MySQL] Stored Procedure (0) 2022.08.04 [MySQL] Trigger (0) 2022.08.03 [MySQL] FOREIGN KEY (0) 2022.06.21