[MySQL]select 한 행을 모두 insert하기(선택행 복사)


1. 테이블이 존재하는 경우


예제코드

INSERT INTO table_name SELECT * FROM select_table_name;



2. 테이블이 존재 하지 않는 경우


예제코드

CREATE TABLE copy_table_name SELECT * FROM original_table_name;




3. 컬럼을 지정하는 경우


예제코드
INSERT INTO table_name (table_col_1, table_col_2, table_col_3) SELECT col1, col2, col3 FROM select_table_name;


4. 조건문을 포함하는 경우


예제코드
INSERT INTO table_name SELECT * FROM select_table_name WHERE grade = 'A' AND gender = 'female';


MS-SQL에서는 SELECT INTO를 사용하면 된다.

'DATABASE' 카테고리의 다른 글

[MySQL] String Replace  (0) 2017.12.20
[오라클] DATE 날짜 타입  (2) 2017.12.11
[MySQL]기본쿼리 (UPDATE)  (0) 2017.12.08
[ORACLE] 모든 테이블 이름 가져오는 쿼리  (0) 2017.12.05
[MySQL] 기본 쿼리 (SELECT)  (0) 2017.12.02

MySQL 기본 쿼리(SELECT)


select 쿼리

select문은 하나이상의 행을 테이블에서 검색하는데 사용하며 하위쿼리(subQuery)를 사용할 수 있다.
select문은 테이블을 참조하지 않고 계산용으로도 사용할 수 있다.

SELECT 

    [컬럼명] 

FROM 

    [테이블명] 

WHERE 

    [조건]

AND

    [조건] 

GROUP BY [컬럼명] 

ORDER BY [컬럼명] [ASC | DESC]

LIMIT [행 수] OFFSET [시작 행 수]


select 쿼리 예제


SELECT
    idx,
    name,
    type,
    age,
    gender,
    birthday
FROM USER_TABLE
WHERE type = 'A'
ORDER BY idx ASC
LIMIT 0, 10
-- 또는 LIMIT 10 OFFSET 0


테이블을 참조하지 않은 select 쿼리 


SELECT
    1+1 AS result
FROM dual;

SELECT
    NOW()
FROM dual;

위의 쿼리는 숫자를 계산한 값을 결과로 얻는것이고

두번째 쿼리는 현재 시스템 시간을 얻는 쿼리 이다.

주의


페이징을 사용할 때에는 꼭 인덱스가 잡혀있는 테이블로 order by를 해서 가지고 옵시다.
그렇게 하지 않으면 테이블 Full scan이 일어나 DB성능에 영향을 줍니다.


'DATABASE' 카테고리의 다른 글

[MySQL] Select Insert문  (0) 2017.12.26
[MySQL] String Replace  (0) 2017.12.20
[오라클] DATE 날짜 타입  (2) 2017.12.11
[MySQL]기본쿼리 (UPDATE)  (0) 2017.12.08
[ORACLE] 모든 테이블 이름 가져오는 쿼리  (0) 2017.12.05

+ Recent posts