본문 바로가기

SQL/MySQL

[MySQL] INSERT/ SELECT

 

데이터 삽입 INSERT

 

테이블에 데이터를 삽입할 때에는 INSERT 명령어를 사용합니다. 


##  INSERT 문 구조

INSERT INTO 테이블 이름 VALUES (속성에 맞는 데이터 값들);

 

Q. 앞 게시물에서 만들었던 고객, 제품, 주문, 배송 업체 테이블에 각각의 데이터를 삽입해 보겠습니다. 

INSERT INTO 고객 VALUES ('apple', '정소화', 20, 'gold', '학생', 1000);
INSERT INTO 고객 VALUES ('banana', '김선우', 25, 'vip', '간호사', 2500);
INSERT INTO 고객 VALUES ('carrot', '고명석', 28, 'gold', '교사', 4500);
INSERT INTO 고객 VALUES ('orange', '김용욱', 22, 'silver', '학생', 0);
INSERT INTO 고객 VALUES ('melon', '성원용', 35, 'gold', '회사원', 5000);
INSERT INTO 고객 VALUES ('peach', '오형준', NULL, 'silver', '의사', 300);
INSERT INTO 고객 VALUES ('pear', '채광주', 31, 'silver', '회사원', 500);

INSERT INTO 제품 VALUES ('p01', '그냥만두', 5000, 4500, '대한식품');
INSERT INTO 제품 VALUES ('p02', '매운쫄면', 2500, 5500, '민국푸드');
INSERT INTO 제품 VALUES ('p03', '쿵떡파이', 3600, 2600, '한빛제과');
INSERT INTO 제품 VALUES ('p04', '맛난초콜릿', 1250, 2500, '한빛제과');
INSERT INTO 제품 VALUES ('p05', '얼큰라면', 2200, 1200, '대한식품');
INSERT INTO 제품 VALUES ('p06', '통통우동', 1000, 1550, '민국푸드');
INSERT INTO 제품 VALUES ('p07', '달콤비스킷', 1650, 1500, '한빛제과');

INSERT INTO 주문 VALUES ('o01', 'apple', 'p03', 10, '서울시 마포구', '22/01/01');
INSERT INTO 주문 VALUES ('o02', 'melon', 'p01', 5, '인천시 계양구', '22/01/10');
INSERT INTO 주문 VALUES ('o03', 'banana', 'p06', 45, '경기도 부천시', '22/01/11');
INSERT INTO 주문 VALUES ('o04', 'carrot', 'p02', 8, '부산시 금정구', '22/02/01');
INSERT INTO 주문 VALUES ('o05', 'melon', 'p06', 36, '경기도 용인시', '22/02/20');
INSERT INTO 주문 VALUES ('o06', 'banana', 'p01', 19, '충청북도 보은군', '22/03/02');
INSERT INTO 주문 VALUES ('o07', 'apple', 'p03', 22, '서울시 영등포구', '22/03/15');
INSERT INTO 주문 VALUES ('o08', 'pear', 'p02', 50, '강원도 춘천시', '22/04/10');
INSERT INTO 주문 VALUES ('o09', 'banana', 'p04', 15, '전라남도 목포시', '22/04/11');
INSERT INTO 주문 VALUES ('o10', 'carrot', 'p03', 20, '경기도 안양시', '22/05/22');

 

데이터 검색 SELECT

데이터를 검색할 때는 SELECT 명령어를 사용합니다. 


## SELECT문 기본 구조

SELCT 속성이름 FROM 테이블 이름

 

그럼 앞서 데이터를 삽입한 테이블들의 모든 데이터를 검색해 보도록 합시다. 

모든 데이터를 불러올 때에는 ( * ) 을 사용합니다. 

select * from 고객;

select * from 제품;

select * from 주문;

 

 

Q. 이번에는 제품 테이블의 제조업체 만을 검색해 봅시다. (all 은 생략가능)

select all 제조업체 from 제품;

 

 

Q. 이번에는 제품 테이블의 제조업체를 중복 없이 검색해 봅시다. (distinct 사용)

select distinct 제조업체 from 제품;


 

## SELECT문 조건 검색

SELCT 속성이름 FROM 테이블 이름 WHERE 조건

 

 

 

Q. 이번에는 주문 테이블의 주문제품, 수량, 주문일자를 검색해 봅시다.

    단, 주문고객이 apple이고 수량이 15개 이상이여야 합니다. 

 

select 주문제품, 수량, 주문일자 from 주문 where 주문고객 = 'apple' and 수량 >= 15;

 


 

## SELECT문그룹별 정렬 

SELCT 속성이름 FROM 테이블 이름 WHERE 조건 GROUP BY 속성 리스트 (HAVING 조건)

 

 

Q. 제품 테이블의 제조업체, 개수, 단가의 최고 값을 제조 업체 별로 묶어 검색해 봅시다.

이 때, 개수는 제품수로, 단가의 최고 값은 최고가로 불러옵니다. 

select 제조업체, count(*) as 제품수, max(단가) as 최고가 from 제품 group by 제조업체;

 

Q.위의 코드에서 제조업체의 레코드 개수가 3개 이상인 조건을 추가하여 검색해 봅시다. 

select 제조업체, count(*) as 제품수, max(단가) as 최고가 from 제품 group by 제조업체 having count(*) >= 3;

반응형

'SQL > MySQL' 카테고리의 다른 글

[MySQL] CREATE/ DROP/ ALTER  (0) 2023.02.24