본격적으로 MySQL의 SQL문을 배워보도록 하겠습니다. 첫번째 순서로는 데이터 정의문에 대한 내용입니다. 명령어 실습은 윈도우 명령 프롬프트 상에서 진행되었습니다.
CREATE DATABASE는 데이터베이스를 생성하는 명령입니다. MySQL에서는 데이터베이스를 스키마라고 하기 때문에 CREATE SCHEMA로도 데이터베이스를 생성할 수 있습니다.
CREATE DATABASE 데이터베이스명;
CREATE SCHEMA 데이터베이스명;
명령어 입력후 Query OK라는 문구가 나오면 데이터베이스 생성에 성공한 것 입니다.
현재 존재하는 데이터베이스들을 확인할 수 있는 명령입니다.
SHOW DATABASES;

USE 명령은 데이터베이스를 선택하는 명령입니다. USE 뒤에 데이터베이스명을 표시해서 사용할 데이터베이스를 선택합니다.
USE 데이터베이스명;

데이터베이스를 처음 만들면 그 내부는 비어있기 때문에 우리는 내부에 테이블(릴레이션)을 정의해야합니다. CREATE TABLE은 데이터베이스 내부에 테이블을 생성하는 명령입니다.
CREATE TABLE 테이블명 (
컬럼명 컬럼타입,
컬럼명 컬럼타입,
컬럼명 컬럼타입
);
단순히 테이블명만 적어서 빈 테이블만 우선 생성하고 추후에 컬럼을 추가할 수도 있고, 생성할 때 컬럼을 함께 생성할 수도 있습니다. 컬럼은 여러개를 작성하고 쉼표로 구분하며, 마지막 컬럼에 대해서는 쉼표를 붙이지 않습니다.
또한 컬럼 타입 이후로 컬럼에 대한 옵션들을 지정할 수 있습니다.
등장한 옵션들의 내용은 다음과 같습니다.
마찬가지로 SHOW TABLES 명령으로 현재 선택된 데이터베이스 내부에 존재하는 테이블들을 확인할 수 있습니다.
SHOW TABLES;
또한, DESCRIBE 명령으로 테이블 내부 구조를 시각화해서 볼 수 있습니다.
DESCRIBE 테이블명;

ALTER는 변경하는 것에 대한 명령입니다. ALTER DATABASE는 데이터베이스의 설정을 변경하게 하는 명령입니다.
status 명령을 입력하면 선택한 데이터베이스에 대한 정보들이 나옵니다.
status;
이 status 내용들 중 변경해야하는 내용이 있다면 ALTER DATABASE 명령으로 변경할 수 있습니다.
ALTER DATABASE 데이터베이스명 변경할_옵션;
여기서 중간에 characterset이라고 되어있는 옵션들의 값이 utf8, utf8mb4가 아니라면 다음 명령으로 utf8 계열로 변경해주세요.
ALTER DATABASE 데이터베이스명 CHARACTER SET = utf8;
ALTER TABLE은 테이블 구조를 변경하는 명령입니다. 테이블 구조 수정에 대한 내용이 많아서 비교적 잘 사용되는 내용들만 몇가지 정리하려고 합니다.
ADD 명령은 테이블에 컬럼을 추가합니다.
ALTER TABLE 테이블명 ADD 컬럼명 컬럼타입;

MODIFY COLUMN 명령은 테이블의 컬럼 타입을 변경할 수 있는 명령입니다.
ALTER TABLE 테이블명 MODIFY COLUMN 컬럼명 컬럼타입;

CHANGE COLUMN명령은 테이블의 컬럼타입과 컬럼 이름까지 변경이 가능한 명령입니다.
ALTER TABLE 테이블명 CHANGE COLUMN 컬럼명 변경할_컬럼명 컬럼타입;

DROP 명령은 테이블의 컬럼을 삭제할 수 있는 명령입니다.
ALTER TABLE 테이블명 DROP 컬럼명;

RENAME 명령은 테이블의 이름을 변경할 때 사용하는 명령입니다.
ALTER TABLE 테이블명 RANAME 변경할_테이블명;
그리고 같은 파일시스템 내부에서 테이블을 옮길 때도 RENAME 명령을 사용할 수 있습니다.
ALTER TABLE DB명.테이블명 TO 옮길_DB명.만들_테이블명;
인덱스란, 테이블의 컬럼을 빠르게 탐색할 수 있도록 만드는 컬럼의 식별자입니다.
인덱스 생성은 CREATE INDEX명령으로 생성합니다.
CREATE INDEX 인덱스명 ON 테이블명 (컬럼이름, ...);
인덱스 삭제는 DROP INDEX명령으로 삭제합니다.
DROP INDEX 인덱스명 ON 테이블명;