티스토리 뷰
테이블 복사문법 1
INSERT INTO 문법의 VALUES () 자리에 SELECT 문을 집어넣을 수 있는데
그럼 SELECT로 찾은 행들을 집어넣어줍니다.
INSERT INTO product SELECT 컬럼명 FROM 테이블명
이런 식인데 테이블안의 데이터를 복사하고 싶으면 쓰도록 합시다.
진짜 복사되는지 확인해보기 위해서 다른 테이블 하나 만들어봅시다.
1. 일단 product2라는 다른 테이블을 하나 만들어봅시다.
기존 테이블명에 우클릭해서 복사 & 붙여넣기 눌러도 테이블 생성됩니다.
2. 방금 만든 테이블에 데이터 아무거나 집어넣어봅시다.
INSERT INTO product (id, 상품명, 가격)
SELECT id, 상품명, 가격 FROM product2
3. 그 다음에 이걸 입력해봅시다.
진짜로 SELECT로 찾은 product2 데이터가 product로 삽입됩니다.
- 당연히 SELECT 문법 뒤에 WHERE, JOIN 이런거 전부 사용가능
- 테이블에 심각한 작업할 때 잠깐 테이블을 백업하는 용도로도 사용해도 괜찮습니다.
테이블 복사문법 2
SELECT * INTO 새로운테이블명
FROM 기존테이블명
WHERE 조건식
이렇게 써도 테이블복사가 가능합니다.
얘는 테이블을 아예 새로 생성해준다는게 차이점입니다.
CREATE TABLE 새로운테이블명 SELECT * FROM 기존테이블명
MySQL에는 SELECT INTO 문법이 없어서 이렇게 써야합니다.
TEMPORARY (임시 테이블 )
데이터를 수정해보거나 테스트가 필요할때 사용중인 데이터 조작은 매우 민감하고 잘못하면 데이터가 날아갈 수도 있는 위험한 작업이다 그리하여 임시 테이블을 생성하여 수정이나 삭제 작업시행 후 테스트 성공하면 시행하도록 임시테이블로 테스트를 무조건 해주자
CREATE TEMPORARY TABLE 새로운테이블명 SELECT * FROM 기존테이블명
참고로 이 문법쓰면 임시 테이블을 생성해줍니다.
세션이 끝나면 자동으로 테이블이 삭제되어서 가끔 새로운 테이블에 실험해볼 때 편리합니다.
보안(권한설정 계정 만들기)
모든 사용자가 삭제 수정 권한이 있다면 매우 위험할것이다 이를 방지하기위해 사용자를 만들어 그사람에게 권한을 한정적이게 설정이 가능하다
▲ MySQL Workbench 프로그램 상단메뉴 Server - Users and Privileges 누르면
특정 DB 접속용 계정생성 & 권한부여가 가능합니다.
거기서 SELECT만 할 수 있는 계정만들어서 뿌리면 안전하겠군요.
'DB > MYSQL' 카테고리의 다른 글
MYSQL STORED PROCEDURE(함수형 프로시저) sql의 함수 (0) | 2023.05.13 |
---|---|
MYSQL VIEW (0) | 2023.05.13 |
MYSQL INNER, LEFT, RIGHT JOIN (0) | 2023.05.13 |
AUTO_INCREMENT (테이블생성시 자동 숫자증가) (0) | 2023.05.11 |
IF / CASE 정리 (0) | 2023.05.09 |