CREATE TABLE city2 AS SELECT * FROM city;
똑같은 테이블을 SELECT 기반으로 생성
CREATE DATABASE prac_db;
CREATE TABLE test (
id INT NOT NULL PRIMARY KEY,
col1 INT NULL,
col2 FLOAT NULL,
col3 VARCHAR(45) NULL
);
ALTER TABLE test
ADD col4 INT NULL; -- 칼럼 추가
ALTER TABLE test
MODIFY col4 VARCHAR(20) NULL; -- 칼럼 정의 수정
ALTER TABLE test
DROP col4; -- 칼럼 삭제
테이블 수정시 사용
인덱스는 빠른 데이터 검색을 위해 사용하고, 인덱스가 있는 테이블은 처리속도가 느려질 수 있으므로 수정보다는 검색이 자주 사용되는 테이블에서 사용하는 것이 좋다.
CREATE INDEX col1_idx
ON test (col1);
SHOW INDEX FROM test;
PK는 기본적으로 인덱스가 생성되어 있다.
CREATE UNIQUE INDEX col2_idx
ON test (col2);
중복값이 허용되지 않는 인덱스(고유 인덱스)
CREATE TABLE test (
-- ...
FULLTEXT col3_idx (col3)
); -- DDL에서 생성
CREATE FULLTEXT INDEX col3_idx ON test (col3);
ALTER TABLE test
ADD FULLTEXT col3_idx(col3);
일반적인 인덱스와 달리 매우 빠르게 테이블의 모든 텍스트 컬럼을 검색
ALTER TABLE test
DROP INDEX col3_idx;
DROP INDEX col3_idx ON test;
CREATE VIEW test_view AS
SELECT col1, col2
FROM test;
ALTER VIEW test_view AS
SELECT col1, col2. col3
FROM test;
DROP VIEW test_view;
INSERT INTO test
VALUE(1, 123, 1.1, "test");
VALUES 다음에 나오는 값들의 순서 및 개수가 테이블 정의의 순서 및 개수와 동일해야함INSERT INTO test2
SELECT * FROM test;
특정 테이블의 데이터 다른 테이블로 그대로 INSERT 시 사용
UPDATE test
SET col1=1, col2=1.0, col3="test"
WHERE id=1; -- WHERE 조건 쓰지 않으면 전체 변경, 보통 막아놈
DELETE FROM test
WHERE id=1;
TRUNCATE TABLE test;
DROP TABLE test;
DROP DATABASE prac_db;