본격적으로 MySQL의 SQL문을 배워보도록 하겠습니다. 첫번째 순서로는 데이터 정의문에 대한 내용입니다. 명령어 실습은 윈도우 명령 프롬프트 상에서 진행되었습니다.
1. CREATE DATABASE/CREATE SCHEMA
CREATE DATABASE는 데이터베이스를 생성하는 명령입니다. MySQL에서는 데이터베이스를 스키마라고 하기 때문에 CREATE SCHEMA로도 데이터베이스를 생성할 수 있습니다.
CREATE DATABASE 데이터베이스명;
CREATE SCHEMA 데이터베이스명;
명령어 입력후 Query OK라는 문구가 나오면 데이터베이스 생성에 성공한 것 입니다.
2. SHOW DATABASES
현재 존재하는 데이터베이스들을 확인할 수 있는 명령입니다.
SHOW DATABASES;
3. USE
USE 명령은 데이터베이스를 선택하는 명령입니다. USE 뒤에 데이터베이스명을 표시해서 사용할 데이터베이스를 선택합니다.
USE 데이터베이스명;
4. CREATE TABLE
데이터베이스를 처음 만들면 그 내부는 비어있기 때문에 우리는 내부에 테이블(릴레이션)을 정의해야합니다. CREATE TABLE은 데이터베이스 내부에 테이블을 생성하는 명령입니다.
CREATE TABLE 테이블명 (
컬럼명 컬럼타입,
컬럼명 컬럼타입,
컬럼명 컬럼타입
);
단순히 테이블명만 적어서 빈 테이블만 우선 생성하고 추후에 컬럼을 추가할 수도 있고, 생성할 때 컬럼을 함께 생성할 수도 있습니다. 컬럼은 여러개를 작성하고 쉼표로 구분하며, 마지막 컬럼에 대해서는 쉼표를 붙이지 않습니다.
또한 컬럼 타입 이후로 컬럼에 대한 옵션들을 지정할 수 있습니다.
- NOT NULL: 컬럼 내용이 NULL일 수 없다.
- AUTO_INCREMENT: NULL일 경우 자동 생성
- DEFAULT: 뒤에 오는 값을 기본값으로 설정
- PRIMARY KEY: 기본키 설정 (괄호)안에 기본키로 설정할 컬럼 입력
- UNIQUE INDEX: 유니크 인덱스로 지정된 컬럼에 오는 데이터들은 중복될 수 없음을 설정
마찬가지로 SHOW TABLES; 명령으로 현재 선택된 데이터베이스 내부에 존재하는 테이블들을 확인할 수 있습니다.
SHOW TABLES;
또한, DESCRIBE 명령으로 테이블 내부 구조를 시각화해서 볼 수 있습니다.
DESCRIBE 테이블명;
5. ALTER DATABASE
ALTER는 변경하는 것에 대한 명령입니다. ALTER DATABASE는 데이터베이스의 설정을 변경하게 하는 명령입니다.
status 명령을 입력하면 선택한 데이터베이스에 대한 정보들이 나옵니다.
status
이 status 내용들 중 변경해야하는 내용이 있다면 ALTER DATABASE 명령으로 변경할 수 있습니다.
ALTER DATABASE 데이터베이스명 변경할 옵션 내용;
여기서 중간에 characterset이라고 되어있는 옵션들의 값이 utf8, utf8mb4가 아니라면 다음 명령으로 utf8 계열로 변경해주세요.
ALTER DATABASE 데이터베이스명 CHARACTER SET = utf8;
6. ALTER TABLE
ALTER TABLE은 테이블 구조를 변경하는 명령입니다. 테이블 구조 수정에 대한 내용이 많아서 비교적 잘 사용되는 내용들만 몇가지 정리하려고 합니다.
ADD
ADD 명령은 테이블에 컬럼을 추가합니다.
ALTER TABLE 테이블명 ADD 컬럼명 컬럼타입;
MODIFY COLUMN
MODIFY COLUMN명령은 테이블의 컬럼 타입을 변경할 수 있는 명령입니다.
ALTER TABLE 테이블명 MODIFY COLUMN 컬럼명 컬럼타입;
CHANGE COLUMN
CHANGE COLUMN명령은 테이블의 컬럼타입과 컬럼 이름까지 변경이 가능한 명령입니다.
ALTER TABLE 테이블명 CHANGE COLUMN 컬럼명 변경할_컬럼명 컬럼타입;
DROP
DROP명령은 테이블의 컬럼을 삭제할 수 있는 명령입니다.
ALTER TABLE 테이블명 DROP 컬럼명;
RENAME
RENAME명령은 테이블의 이름을 변경할 때 사용하는 명령입니다.
ALTER TABLE 테이블명 RANAME 변경할_테이블명;
그리고 같은 파일시스템 내부에서 테이블을 옮길 때도 RENAME 명령을 사용할 수 있습니다.
ALTER TABLE DB명.테이블명 TO 옮길_DB명.만들_테이블명;
7. 인덱스
인덱스란, 테이블의 컬럼을 빠르게 탐색할 수 있도록 만드는 컬럼의 식별자입니다.
인덱스 생성은 CREATE INDEX명령으로 생성합니다.
CREATE INDEX 인덱스명 ON 테이블명 (컬럼이름, ...);
인덱스 삭제는 DROP INDEX명령으로 삭제합니다.
DROP INDEX 인덱스명 ON 테이블명;
'Programming > 데이터베이스' 카테고리의 다른 글
[MySQL] 데이터 조작문 DML - JOIN (0) | 2022.01.21 |
---|---|
[MySQL] 데이터 조작문 DML (0) | 2022.01.20 |
[MySQL] MySQL (0) | 2022.01.19 |
관계형 데이터베이스 용어 정리 (0) | 2022.01.15 |
데이터 모델 (1) | 2022.01.13 |
댓글