본문 바로가기
백엔드/데이터베이스

데이터베이스 - INSERT, ALTER

by study_yeon 2023. 5. 19.

2023.05.19
교육을 들으며 기록한 내용입니다.
잘못된 내용이 있으면 댓글로 알려주시면 감사하겠습니다:)

● INSERT INTO 를 활용하여 데이터 추가하기


* 구조
 INSERT INTO 테이블이름
    (필드명1, 필드명2 ...)
    VALUES
    (데이터1, 데이터2 ...);
-> 데이터값은 ,(콤마)로 다중 작성 가능 마지막 데이터값에만 ;(세미콜론)해주기

1. goodsinfo 테이블에 데이터 추가
- 펜류는 유니코드(02) 통일

INSERT INTO goodsinfo
	(goodscd, goodsname, unitcd, unitprice, insdtm)
	VALUES
	('GDS02', '연필', '02', '100','2022-03-01 14:43:17'), // 콤마를 통해 연속으로 입력
	('GDS01', '노트', '01', '2000','2022-03-01 14:22:43'),
	('GDS03', '복사지', '03', '5000','2022-03-01 14:43:47'),
	('GDS04', '네임펜', '02', '500','2022-03-01 14:45:17'),
	('GDS05', '볼펜', '02', '700','2022-03-01 14:45:37'),
	('GDS06', '크레파스', '02', '1500','2022-03-01 14:55:37');

 
- 입력된 자료 확인
SELECT * FROM goodsinfo g ;


2. order_h 테이블에 데이터 입력

INSERT INTO `order_h` 
    (`orderno`, `orderdt`, `memid`, `orderamt`, `insdtm`) VALUES
    ('202201001', '2022-01-24', 'seo', '10000', '2022-03-01 14:49:07');

INSERT INTO `order_h` 
    (`orderno`, `orderdt`, `memid`, `orderamt`, `insdtm`) VALUES
    ('202201002', '2022-01-24', 'hong2', '15000', '2022-03-01 14:50:35');

INSERT INTO `order_h` 
    (`orderno`, `orderdt`, `memid`, `orderamt`, `insdtm`) VALUES
    ('202201003', '2022-01-25', 'hong1', '20000', 
     '2022-03-01 14:51:19');

INSERT INTO `order_h` 
    (`orderno`, `orderdt`, `memid`, `orderamt`, `insdtm`) VALUES
    ('202201004', '2022-01-25', 'kim1', '10000', 
     '2022-03-01 14:51:58');

INSERT INTO `order_h` 
    (`orderno`, `orderdt`, `memid`, `orderamt`, `cancel`, 
     `canceldtm`, `insdtm`) VALUES
    ('202201005', '2022-01-25', 'park', '5000', 'Y', 
     '2022-01-25 00:00:00', '2022-03-01 14:53:12');

INSERT INTO `order_h` 
    (`orderno`, `orderdt`, `memid`, `orderamt`, `insdtm`) VALUES
    ('202202001', '2022-02-01', 'hong1', '30000', '2022-03-01 14:54:09');

INSERT INTO `order_h` 
    (`orderno`, `orderdt`, `memid`, `orderamt`, `insdtm`) VALUES
    ('202202002', '2022-02-01', 'hong1', '1000', '2022-03-01 14:54:40');

INSERT INTO `order_h` 
    (`orderno`, `orderdt`, `memid`, `orderamt`, `insdtm`) VALUES
    ('202202003', '2022-02-02', 'park', '10000', '2022-03-01 14:55:28');

INSERT INTO `order_h` 
    (`orderno`, `orderdt`, `memid`, `orderamt`, `insdtm`) VALUES
    ('202202004', '2022-02-02', 'abcd', '500', '2022-03-01 14:56:03');

※ 중복오류가 발생한다면

SELECT * FROM order_h oh ; -- 테이블에 중복된 것이 있는지 확인용
DELETE FROM order_h ; -- 삭제하기

3. order_d 테이블에 데이터 입력

3. order_d 테이블에 데이터 입력 : 모두 16행의 데이터
SELECT * FROM order_d od ; -- 테이블에 중복된 것이 있는지 확인용
DELETE FROM order_d ; 
INSERT INTO `order_d` 
     (`orderno`, `goodscd`, `unitcd`, `unitprice`, `qty`, `amt`, `insdtm`) VALUES
     ('202201001', 'GDS01', '01', '2000', '10', '20000', '2022-03-01 15:10:39');

INSERT INTO `order_d` 
    (`orderno`, `goodscd`, `unitcd`, `unitprice`, `qty`, `amt`, `insdtm`) VALUES
    ('202201001', 'GDS02', '02', '100', '50', '5000', '2022-03-01 15:11:39');

INSERT INTO `order_d` 
    (`orderno`, `goodscd`, `unitcd`, `unitprice`, `qty`, `amt`, `insdtm`) VALUES
    ('202201001', 'GDS03', '03', '5000', '1', '5000', '2022-03-01 15:12:23');

INSERT INTO `order_d` 
    (`orderno`, `goodscd`, `unitcd`, `unitprice`, `qty`, `amt`, `insdtm`) VALUES
    ('202201002', 'GDS01', '01', '1000', '5', '5000', '2022-03-01 15:13:28');

INSERT INTO `order_d` 
    (`orderno`, `goodscd`, `unitcd`, `unitprice`, `qty`, `amt`, `insdtm`) VALUES
    ('202201002', 'GDS03', '03', '5000', '10', '50000', '2022-03-01 15:14:26');

INSERT INTO `order_d` 
    (`orderno`, `goodscd`, `unitcd`, `unitprice`, `qty`, `amt`, `insdtm`) VALUES
    ('202201003', 'GDS04', '02', '500', '50', '25000', '2022-03-01 15:15:12');

INSERT INTO `order_d` 
    (`orderno`, `goodscd`, `unitcd`, `unitprice`, `qty`, `amt`, `insdtm`) VALUES
    ('202201004', 'GDS05', '02', '1000', '10', '10000', '2022-03-01 15:15:59');

INSERT INTO `order_d` 
    (`orderno`, `goodscd`, `unitcd`, `unitprice`, `qty`, `amt`, `insdtm`) VALUES
    ('202201005', 'GDS02', '02', '100', '50', '5000', '2022-03-01 15:16:45');

INSERT INTO `order_d` 
    (`orderno`, `goodscd`, `unitcd`, `unitprice`, `qty`, `amt`, `insdtm`) VALUES
    ('202201005', 'GDS03', '03', '5000', '4', '20000', '2022-03-01 15:17:30');

INSERT INTO `order_d` 
    (`orderno`, `goodscd`, `unitcd`, `unitprice`, `qty`, `amt`, `insdtm`) VALUES
    ('202201006', 'GDS01', '01', '2000', '1', '2000', '2022-03-01 15:18:08');

INSERT INTO `order_d` 
    (`orderno`, `goodscd`, `unitcd`, `unitprice`, `qty`, `amt`, `insdtm`) VALUES
    ('202202001', 'GDS01', '01', '2000', '10', '20000', '2022-03-01 15:18:59');

INSERT INTO `order_d` 
    (`orderno`, `goodscd`, `unitcd`, `unitprice`, `qty`, `amt`, `insdtm`) 
    VALUES
    ('202202001', 'GDS03', '03', '5000', '1', '5000', '2022-03-01 15:19:10');

INSERT INTO `order_d` 
    (`orderno`, `goodscd`, `unitcd`, `unitprice`, `qty`, `amt`, `insdtm`) 
    VALUES
    ('202202001', 'GDS05', '02', '1000', '20', '20000', '2022-03-01 15:19:20');

INSERT INTO `order_d` 
    (`orderno`, `goodscd`, `unitcd`, `unitprice`, `qty`, `amt`, `insdtm`) VALUES
    ('202202003', 'GDS01', '01', '2000', '10', '20000', '2022-03-01 15:19:30');

INSERT INTO `order_d` 
    (`orderno`, `goodscd`, `unitcd`, `unitprice`, `qty`, `amt`, `insdtm`) 
    VALUES
    ('202202003', 'GDS07', '03', '2000', '20', '40000', '2022-03-01 15:20:30');

INSERT INTO `order_d` 
    (`orderno`, `goodscd`, `unitcd`, `unitprice`, `qty`, `amt`, `insdtm`) 
    VALUES
    ('202202004', 'GDS01', '01', '2000', '10', '20000', '2022-03-01 15:21:18');


※ 오타 고치기 order_d의 gty를 qty로 고칠 것
1. ctrl F를 눌러 변경할 대상 입력
2. ALTER 활용

-- 컬럼명 고치기
ALTER TABLE
	`order_d`
	CHANGE COLUMN gty qty DECIMAL(3,0) NULL;

● 쿼리(Query)


▶ ALTER(컬럼 고치기)

1. 컬럼추가(ADD)
ALTER TABLE table_name ADD COLUMN ex_column varchar(16) NULL;
                           테이블명    액션      옵션    상세컬럼내용(CREATE와 같음) = 컬럼타입 제약조건

2. MODIFY(컬럼 수정-내용만 변경)
ALTER TABLE table_name MODIFY COLUMN ex_column varchar(16) NULL;

3. CHANGE(컬럼이름까지 변경)
ALTER TABLE table_name CHANGE COLUMN ex_column1 ex_column2 varchar(16) NULL;

4. DROP(컬럼 삭제)
ALTER TABLE table_name DROP COLUMN ex_column;

5. RENAME(테이블 이름 변경)
ALTER TABLE table_name1 RENAME table_name2;