[Database] 기본적인 SQL 명령어 정리(DDL)
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;
'Database > Relational Database (RDB)' 카테고리의 다른 글
[Database] Clustered Index와 Non-Clustered Index (7) | 2020.12.06 |
---|---|
[Database] 조인(JOIN) (0) | 2020.08.26 |
[Database] 저장 프로시저(Stored Procedure) (0) | 2020.03.10 |
[Database/MySQL] Tablespace (0) | 2020.03.01 |
[Database] 파티셔닝 (Partitioning) (0) | 2020.02.03 |
댓글
이 글 공유하기
다른 글
-
[Database] 조인(JOIN)
[Database] 조인(JOIN)
2020.08.26 -
[Database] 저장 프로시저(Stored Procedure)
[Database] 저장 프로시저(Stored Procedure)
2020.03.10 -
[Database/MySQL] Tablespace
[Database/MySQL] Tablespace
2020.03.01 -
[Database] 파티셔닝 (Partitioning)
[Database] 파티셔닝 (Partitioning)
2020.02.03