RDBMS에서 DB와 테이블을 생성하고, 사용자를 추가하거나 각각의 DB에 접근 권한을 주는 등의 행위는 MySQL Workbench와 같은 GUI 툴에서 간단하게 해줄 수 있습니다. 하지만, 기본적인 명령어는 알아두는 것이 좋겠죠? 🤓

1. DATABASE 생성


CREATE DATABASE [DB명] default CHARACTER SET UTF8;

2. 특정 사용자에게 DB와 테이블의 접근 권한 주기


다음은 DB와 테이블에 접근 권한을 가지는 쿼리입니다. 단순히 접근할 수 있냐를 넘어, 해당 테이블에 어떤 DML 쿼리문 실행을 허용할지, 어떤 DDL 쿼리문 실행을 허용할지 등을 자세하게 설정해줄 수도 있습니다.

-- 사용자 계정 생성하는 쿼리 명령어
CREATE USER '[아이디]'@'localhost' IDENTIFIED BY '[패스워드]' 

-- 계정에 DB와 테이블에 대한 접근 권한 부여 (테이블명을 적는 위치에 *를 적으면 모든 테이블을 의미합니다.)
GRANT ALL PRIVILEGES ON [DB명].[테이블명] TO '[아이디]'@'localhost'
GRANT ALL PRIVILEGES ON [DB명].[테이블명] TO '[아이디]'@'%'

3. TABLE 생성 & 컬럼 속성 추가 및 변경


테이블 생성입니다. MySQL은 기본 저장 엔진으로 InnoDB를 사용하기 때문에 InnoDB 엔진을 사용한다고 명시해주지 않아도 됩니다.

(MySQL 공식 문서 --> InnoDB Storage Engine)

CREATE TABLE board (
    -- [컬럼명] [컬럼타입] [속성(옵션)]
    idx INT(11) NOT NULL AUTO_INCREMENT,
    name VARCHAR(128) NOT NULL,
    email VARCHAR(128) NOT NULL,
    reg_date DATETIME NOT NULL,
    member_id VARCHAR(128) NOT NULL,
    
    PRIMARY KEY(idx), -- 위의 컬럼명 옆에 선언해도되고 이렇게 따로 선언해도 됩니다.
    FOREIGN KEY(member_id) REFERENCES member(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

만약 테이블을 생성할때 AUTO_INCREMENT 등의 속성을 깜빡했다면 ALTER 명령어로 이용해 컬럼 속성을 변경할 수 있습니다.

-- 기존 컬럼에 AUTO_INCREMENT, PK 속성 추가
-- 문법: ALTER TABLE [테이블명] MODIFY [컬럼명] [타입] [속성]
ALTER TABLE posts MODIFY id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY;

-- 기존 테이블에 신규 컬럼 추가
-- 문법: ALTER TABLE [테이블명] ADD [컬럼명] [타입] [속성]
ALTER TABLE posts ADD name NVARCHAR(30) NOT NULL;

4. TABLE 구조 확인


DESC [테이블명];

5. DB 또는 TABLE 삭제


-- 문법: DROP DATABASE [DB명]
DROP DATABASE mydb;

-- 문법: DROP TABLE [테이블명]
DROP TABLE posts;