insert 연습
2023. 9. 5. 14:42ㆍ웹/백엔드-python
728x90
반응형
insert
### 테스트 테이블 생성
CREATE TABLE emp_test (
emp_no INT NOT NULL,
emp_name VARCHAR(30) NOT NULL,
hire_date DATE NULL,
salary INT NULL,
PRIMARY KEY (emp_no)
);
# 기본 insert문 테스트
INSERT INTO emp_test ( emp_no, emp_name, hire_date, salary )
VALUES ( 1001, '아인슈타인', '2021-01-01', 1000);
# 3개 컬럼만 넣기
INSERT INTO emp_test ( emp_no, emp_name, hire_date )
VALUES ( 1002, '아이작뉴턴', '2021-02-01');
# 순서 바꿔 3개 컬럼만 넣기
INSERT INTO emp_test ( hire_date, emp_no, emp_name )
VALUES ( '2021-02-10', 1003, '갈릴레오' );
# 2개 컬럼, 하지만 not null 컬럼 포함되지 않아 에러
INSERT INTO emp_test ( emp_no, hire_date )
VALUES ( 1004, '2021-02-10' );
# 컬럼 순서ㅓ 미지정 하고 값 넣을때는, 컬럼 만든 순서에 따라 값 넣으면 됨.
INSERT INTO emp_test
VALUES ( 1004, '리처드파인만', '2021-01-10', 3000 );
# 여러줄 한번에 넣기,ROW는 생략가능
INSERT INTO emp_test VALUES
ROW ( 1005, '퀴리부인', '2021-03-01', 4000 ),
ROW ( 1006, '스티븐호킹', '2021-03-05', 5000 );
INSERT INTO emp_test VALUES
( 1007, '마이클패러데이','2021-04-01', 2200 ),
( 1008, '맥스웰', '2021-04-05', 3300 ),
( 1009, '막스플랑크', '2021-04-05', 4400 );
# select 문을 활용한 insert
CREATE TABLE emp_test2 (
emp_no INT NOT NULL,
emp_name VARCHAR(30) NOT NULL,
hire_date DATE NULL,
salary INT NULL,
PRIMARY KEY (emp_no)
);
INSERT INTO emp_test2 ( emp_no, emp_name, hire_date, salary )
SELECT emp_no, emp_name, hire_date, salary
FROM emp_test
WHERE emp_no IN (1001,1002);
INSERT INTO emp_test2
SELECT *
FROM emp_test
WHERE emp_no IN (1003,1004);
INSERT INTO emp_test2 ( emp_no, emp_name, hire_date, salary )
SELECT emp_no, emp_name, hire_date, salary
FROM emp_test
WHERE emp_no > 1004;
# 1018, 1019 생성
INSERT INTO emp_test
SELECT emp_no + 10, emp_name, hire_date, 100
FROM emp_test
WHERE emp_no >= 1008;
반응형
'웹 > 백엔드-python' 카테고리의 다른 글
commit / rollback (0) | 2023.09.05 |
---|---|
update 문 연습 (0) | 2023.09.05 |
Role과 사용자 만들기 / select 연습 (0) | 2023.09.05 |
sql - 1일차 - 오후 (0) | 2023.09.04 |
sql - 1일차 -오전 (0) | 2023.09.04 |