웹 백엔드 개발/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

'웹 백엔드 개발 > MySQL' 카테고리의 다른 글

[MySQL] SQL Tutorial Course - Basic Part  (0) 2025.02.20