1. Database 정의
1) Database란?
- 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터 집합체
2) DBMS란?(Database Management System)
- 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 데이터베이스를 관리해주는 소프트웨어
3) 관계형 데이터베이스란(RDB : Relational Database)
- 서로간에 관계가 있는 데이터 테이블들을 모아둔 데이터 저장공간
4) SQL이란? (Structured Query Language)
- 데이터베이스에서 데이터를 정의, 조작, 제어하기 위해 사용하는 언어
5) SQL 구성
1) 데이터 정의 언어(DDL : Data Definition Language)
- CREATE, ALTER, DROP 등의 명령어
2) 데이터 조작 언어(DML : Data Maniplation Language)
- INSERT, UPDATE, DELETE, SELECT 등의 명령어
- 데이터 사이언티스트에게 가장 중요함, 특히 SELECT
3) 데이터 제어 언어(DCL : Data Control Language)
- GRANT, REVOKE, COMMIT, ROLLBACK 등의 명령어
2. Database 관리
1) MySQL 접속
- root 계정으로 mysql 접속
- 터미널에서 실행
% mysql -u root -p
Enter password:
2) Database 확인
SHOW DATABASES;

3) Database 생성
CREATE DATABASE dbname;

4) Database 사용
USE dbname;
5) Database 삭제
DROP DATABASE dbname;
3. User 관리
1) User 조회
- 사용자 정보는 mysql에서 관리하므로 일단 mysql 데이터베이스로 이동 후 조회
use mysql;
SELECT host, user FROM user;

2) User 생성 - localhost
- 현재 PC에서만 접속 가능한 사용자를 비밀번호와 함께 생성
CREATE USER 'username'@'localhost' identified by 'password';
3) User 생성 - %
- 외부에서 접속 가능한 사용자를 비밀번호와 함께 생성
CREATE USER 'username'@'%' identified by 'password';

호스트 정보가 다른 유저는 이름이 같아도 상관없다.
4) User 삭제
- 접근 범위에 따라 같은 이름의 사용자여도 별도로 삭제
DROP USER 'username'@'localhost'
DROP USER 'username'@'%'
4. User 권한 관리
1) 실습환경 만들기1 - Database 만들기
- 권한 관리를 실습하기 위한 Database(testdb) 생성
CREATE DATABSE testdb;

2) 실습환경 만들기2 - User 만들기
- 권한 관리를 실습하기 위한 사용자(id : noma@localhost, password : 1234) 생성
CREATE USER 'noma'@'localhost' identified by '1234'
사용자 정보는 mysql이라는 데이터 베이스에서 관리하고 있으니 mysql로 이동해서 유저 관리를 해야함.
3) User 권한 확인
SHOW GRANTS FOR 'username'@'localhost';

4) User 권한 부여
- 사용자에게 특정 데이터베이스의 모든 권한을 부여
GRANT ALL ON dbname.* to 'username'@'localhost';

FLUSH PRIVILEGES;
5) User 권한 제거
- 사용자에게 특정 데이터베이스의 모든 권한을 삭제
REVOKE ALL ON dbname.* from 'username'@'localhost';

터미널 창을 지우고 싶으면 system clear 입력
윈도우는 system cls;