반응형
[MariaDB] 마리아DB 테이블 - 임시테이블, 테이블삭제, 테이블수정 (MySQL)
임시 테이블
임시테이블은 현재 접속한 세션내에서만 존재할 수 있는 테이블입니다. 세션이 닫히면 자동으로 삭제됩니다.
또한 임시 테이블은 생성한 클라이언트에서만 접근이 가능합니다.
임시테이블은 데이터베이스안의 기존의 테이블과 동일한 이름으로 생성할 수 있습니다.
동일한 이름의 임시테이블이 존재하는 동안에는 기존 테이블에는 접근이 불가능합니다.
임시테이블이 삭제되는 시점은 아래와 같습니다.
- 사용자가 DROP TABLE로 직접삭제
- HeidiSQL을 종료 or 클라이언트 프로그램을 종료하면 삭제됨
- MariaDB 서비스를 재시작하면 삭제됨
임시 테이블을 만드는 방법은 아래와 같습니다.
USE DB명; -- DB사용
CREATE TEMPORARY TABLE IF NOT EXISTS 임시테이블명 -- 임시테이블(이 존재하면 삭제하고) 생성
(
id INT, name CHAR(7)
);
DESCRIBE 임시테이블명; -- 임시테이블 상세
INSERT INTO 임시테이블명 VALUES (1, 'This'); -- 임시테이블에 값 입력
SELECT * FROM 임시테이블명; -- 임시테이블 조회
DROP TABLE 임시테이블명 ; -- 임시테이블 삭제
테이블 삭제
테이블 삭제는 아래와 같이 간단한 명령어로 가능합니다.
DROP TABLE 테이블명 ; -- 테이블 삭제
주의할 사항은 외래키 제약조건의 기준 테이블은 삭제할 수가 없습니다.
먼저, 왜래키가 생성된 외래키 테이블을 삭제해야만 합니다.
여러 테이블을 동시에 삭제하는 방법은 아래와 같습니다.
DROP TABLE 테이블1, 테이블2, 테이블3 ; -- 테이블1~3 삭제
테이블 수정
테이블의 수정은 ALTER TABLE 문으로 사용합니다. 이미 생성되 테이블을 추가, 변경, 수정, 삭제 가능합니다.
열의 추가
USE DB명; -- DB명 사용
ALTER TABLE userTBL -- 테이블 수정
ADD homepage VARCHAR(30) -- 열추가(홈페이지)
DEFAULT 'http://www.hanbit.co.kr' -- 디폴트값
NULL; -- Null 허용함
열은 기본적으로 제일 뒤에 추가됩니다.
순서를 지정하고 싶다면 제일 뒤에 'FIRST' 또는 'AFTER 열이름'을 지정하면 됩니다.
FIRST는 제일앞에 추가되고, AFTER 열이름은 열이름 다음에 추가됩니다.
열의 삭제
ALTER TABLE userTBL -- 테이블 수정
DROP COLUMN mobile1; -- 모바일1 열을 삭제
만약 제약조건이 걸린 연을 삭제할 경우는 제약조건을 먼저 삭제한 후에 열을 삭제해야합니다.
열의 이름 및 데이터 형식 변경
ALTER TABLE userTBL -- 테이블 수정
CHANGE COLUMN name uName VARCHAR(20) NULL ; -- name열 변경, 열이름을 uName으로, 데이터형식을 VARCHAR(20)으로, NULL허용으로 변경
제약조건이 걸려있는 열은 문제가 발생할 수 있습니다.
열의 제약 조건 추가 및 삭제
ALTER TABLE userTBL -- userTBL 테이블 변경
ADD CONSTRAINT PRIMARY KEY (userID); -- 추가 강제 기본키 (열이름)
ALTER TABLE userTBL -- 테이블 수정
DROP PRIMARY KEY; -- 기본키 제약조건 삭제
ALTER TABLE buyTBL
DROP FOREIGN KEY FK_userTBL_buyTBL; -- 외래키 제약조건 삭제
기본키를 삭제할 경우 기본키가 다른 테이블의 외래키와 연결되어 있다면 외래키를 먼저 삭제하고 기본키를 삭제해야 합니다.
반응형
'MariaDB' 카테고리의 다른 글
[MariaDB] 마리아DB 테이블 - 뷰 view (MySQL) (0) | 2020.09.29 |
---|---|
[MariaDB] 마리아DB 테이블 - UNIQUE, CHECK, DEFAULT, Null 제약조건 (MySQL) (0) | 2020.09.22 |
[MariaDB] 마리아DB 테이블 - 외래키 제약조건(FOREIGN KEY) (MySQL) (3) | 2020.09.11 |