본문 바로가기

MySQL

SELECT INTO, INSERT INTO SELECT,CASE WHEN END

728x90

SELECT INTO

쿼리 결과를 새 테이블로 만든다.

MySQL에서는 CREATE TABLE 테이블명 SELECT ~ FROM ~

기존에 존재하는 않는 테이블이 새로 생성된다.(일종의 뷰와 동일한 효과)

create table city_kor select * from city where CountryCode="KOR";
select * from city_kor;

city_kor 테이블

INSERT INTO SELECT

쿼리결과를 기존의 테이블에 추가한다(기존 테이블이 존재해야함)

SELECT하는 테이블과 INSERT하는 테이블은 동일한 구조를 가져야한다.

show create table city;

CREATE TABLE `city_kor` (
  `ID` int NOT NULL AUTO_INCREMENT,
  `Name` char(35) NOT NULL DEFAULT '',
  `CountryCode` char(3) NOT NULL DEFAULT '',
  `District` char(20) NOT NULL DEFAULT '',
  `Population` int NOT NULL DEFAULT '0',
  PRIMARY KEY (`ID`)
);

insert into city_kor select * from city where CountryCode="KOR";

 

city_kor 테이블

show create table city쿼리를 날려 결과값을 얻어 create table 구문을 이용하여 city_kor 테이블을 만든다. 그 후 insert into select 구문을 이용하여 city_kor에 한국 도시들을 넣은 후 출력하였다.

 

 

CASE  WHEN END

SQL의 조건문에 해당한다.

조건 값에 따른 처리를 구분 할 수 있다.

select case when length(Name)>5 then upper(Name) when length(Name)<=5 then lower(Name) end, PoPulation 
from city_kor;

도시 이름이 5글자 초과일 경우 도시이름을 대문자로 , 5글자 이하일 경우 도시이름을 소문자로 출력하고,도시의 인구도 같이 출력하였다.

728x90

'MySQL' 카테고리의 다른 글

서브쿼리,집합연산  (0) 2022.11.22
LIKE 검색,NULL,GROUPBY/HAVING  (0) 2022.11.22
JOIN,ALIAS,VIEW  (0) 2022.11.17
SQL DISTINCT 및 논리연산자  (0) 2022.11.15
DISTINCT,AND,OR,NOT,IN,BETWEEN,ORDER BY 사용법  (0) 2022.11.15