
Database 정의
- Database : 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합체
- DBSM : Database Managememt System. 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 데이터베이스를 관리해주는 소프트웨어
- RDB(관계형 데이터베이스) : Relational Database. 서로간에 관계가 있는 데이터 테이블들을 모아둔 데이터 저장공간
- SQL : Structured Query Language : 데이터베이스에서 데이터를 정의, 조작, 제어하기 위해 사용하는 언어
[ SQL 구성 ] - 데이터분석가는 데이터조작언어, 그 중에서도 SELECT에 집중

Database 관리 이론&실습
[이론]
- 현재 database 목록 확인: show databases;
- database 이름 지정하여 생성: create database testdb;
- 해당 database로 이동(사용): use testdb;
- database 삭제: drop database testdb;
[실습]
show databases
create database
- MySQL 8.0 Command Line Client 실행

use DBname

- (실습1) mydb라는 이름의 데이터베이스 만들고 확인
- (실습2) mydb 삭제하고 확인하기 ![]
drop database

User 관리 이론&실습
[이론]
select host, user from user
create user (identified by)

- 외부에서 접속가능한 사용자를 비밀번호와 함께 생성
mysql> create user 'username'@'%' identified by 'password';
!!참고!! 호스트 정보가 다르다면( localhost or % ) username이 동일해도 ok(=구분 가능함)

drop user
- user 삭제(호스트별로 삭제)
mysql> drop user 'username'@'localhost'; 또는
mysql> drop user 'username'@'%';
[실습]
- (실습 3) 외부에서도 접속 가능한 사용자를 생성하고 확인하기
단, id:zero, password: 1234
- (실습 4) 외부에서도 접속가능한 사용자 zero를 삭제하고 확인하기

User 권한 관리 이론&실습
[이론]
- 권한 관리를 실습하기 위한 database (testdb)부터 생성하기
create database testdb;
- 권한 관리를 실습하기 위한 사용자도 생성하기 >> id:noma@localhost, p.w.:1234
(!!주의!!) 사용자 정보는 'mysql'이라는 데이터베이스에서 관리하기 때문에 use mysql부터 선언하여 mysql로 이동하기
mysql> use mysql;
Database changed
mysql> create user 'noma'@'localhost' identified by '1234';
show grants for
- 사용자에게 부여된 모든 권한 목록을 확인
mysql> show grants for 'username'@'localhost';

- 사용자에게 특정 데이베이스의 모든 권한을 부여
flush privileges
(!!참고!!) 수정 내용이 적용되지 않을 경우 새로고침 실행(flush privileges;)
mysql> grant all on dbname.* 'username'@'localhost';
revoke all on DBname ~ from
- 사용자에게 특정 데이터베이스의 모든 권한을 삭제
mysql> revoke all on dbname.* from 'username'@'localhost';

[실습]
grant all on DBname
(실습 5) mydb의 모든 권한을 zero에게 부여하고 확인하기
revoke all on DBname
(실습 6) zero에게 부여한 mydb에 대한 권한을 삭제하고 확인하기