웹 백엔드 개발/MySQL
[MySQL] SQL Tutorial Course - Advanced Part
iinana
2025. 2. 21. 10:33
728x90
아래 영상을 시청하며 공부한 MySQL 공부 내용이다.
https://www.youtube.com/watch?v=vgIc4ctNFbc
1. 데이터베이스 및 테이블 생성 및 수정
- CREATE DATABASE {database_name} : 새로운 데이터베이스 생성
CREATE DATABASE db;
USE db; #USE문으로 해당 데이터베이스 사용
- CREATE TABLE {new_table_name} AS SELECT {col_name} FROM {table_name} : 기존 table을 이용하여 새로운 table 생성
CREATE TABLE city2 AS SELECT * FROM city1
- CREATE TABLE {table_name} : 완전히 새로운 table 생성
CREATE TABLE test2 {
id INT NOT NULL PRIMARY KEY, #id에 Primary key라는 인덱스를 부여
col1 INT NULL, #NULL을 허용하는 정수형
col2 FLOAT NULL, #NULL을 허용하는 실수형
col3 VARCHAR(45) NULL #NULL을 허용하는 가변적 문자열 (최대 길이 45)
)
- ALTER TABLE {table_name} : 테이블 수정
#column 추가
ALTER TABLE test2
ADD col4 INT NULL;
#column 수정 (colunm4의 타입 수정)
ALTER TABLE test2
ADD col4 VARCHAR(20) NULL;
#column 삭제
ALTER TABLE test2
DROP col4;
2. Index
- CREATE INDEX {index_name} ON {table_name} ({column_name}) : 지정된 table 내 column에 인덱스 생성
CREATE INDEX ColIdx
ON test (col1)
- SHOW INDEX : 인덱스 정보 보기
SHOW INDEX FROM test;
- CREATE UNIQUE INDEX {index_name} ON {table_name} ({column_name}) : 중복값을 허용하지 않는 인덱스 생성
CREATE UNIQUE INDEX Col2Idx
ON test (col2);
- FULLTEXT INDEX : 텍스트로 구성된 데이터의 내용을 바탕으로 인덱스 생성. column의 문자열을 모두, 빠르게 검색할 때 사용하는 인덱스.
ALTER TABLE test
ADD FULLTEXT Col3Idx(col3);
- ALTER TABLE {table_name} DROP INDEX {index_name} || DROP INDEX {index_name} : 인덱스 삭제
ALTER TABLE test
DROP INDEX Col3Idx;
DROP INDEX Col2Idx;
3. VIEW : 데이터베이스에 존재하는 일종의 가상 테이블. 실제로 데이터를 저장하지는 않고 보여주는 역할만 함.
- CREATE VIEW {view_name} AS SELECT {col_name} : 뷰 생성
CREATE VIEW testView AS
SELECT Col1, Col
FROM test;
#test라는 table의 col1과 col2를 가지는 뷰를 생성
- ALTER VIEW {view_name} AS SELECT {col_name} : 뷰 수정
ALTER VIEW testView AS
SELECT Col1, Col2, Col3
FROM test;
- DROP VIEW {view_name} : 뷰 삭제
4. 테이블 조작 / 데이터베이스 삭제
- INSERT INTO {table_name} : 테이블에 데이터 삽입
/* 직접 입력한 데이터를 테이블에 추가 */
INSERT INFO test
VALUE(1, 123, 1.1, "Test")
/* 다른 table의 내용을 추가 */
INSERT INTO test2 SELECT * FROM test;
- UPDATE {table_name} : 기존에 입력되어 있던 값 변경
UPDATE test
SET col=1, col2=1.0, col3='test'
WHERE id = 1; #WHERE문을 안써주면 모든 데이터가 바뀌니 주의
- DELETE {table_name} : 행 단위 삭제 (되돌릴 수 있기 때문에 table 용량 자체는 변하지 않음)
DELETE FROM test
WHERE id = 1; #WHERE문을 안써주면 전체 행이 삭제되므로 주의
- TRUNCATE TABLE {table_name} : 완전한 삭제 (복구 불가하다는 점이 DELETE와의 차이)
TRUNCATE TABLE table;
- DROP TABLE {table_name} : 테이블 전체를 삭제 (공간, 객체 삭제)
DROP TABLE test
- DROP DATABASE {database_name} : 데이터베이스 삭제
DROP DATABASE db
728x90