SQL 심화_1

YJ·2023년 4월 19일
0

▷ 오늘 학습 계획: SQL 강의(심화1~2)

📖 01_AWS RDS

Amazon Relational Database Service

AWS 에서 제공하는 관계형 데이터베이스 서비스

1) AWS 회원가입

2) MySQL RDS 생성

3) AWS RDS 외부 접속 설정

4) MySQL RDS 접속

5) AWS RDS 중지/시작

문제 풀이

AWS RDS (database-1) 에 접속하기(터미널)

mysql -h "엔드포인트" -P 3306 -u admin -p

Database (zerobase) 생성하고 확인하기

(DEFAULT CHARACTER SET utf8mb4)

CREATE DATABASE zerobase DEFAULT CHARACTER SET utf8mb4;
show databases;

사용자(zero) 추가하고 확인하기

use mysql;
CREATE USER 'zero'@'%' identified by 'zerobase';
show tables;  #user라는 table이 있음
select host, user from user;
DROP USER 'zero'@'%'; #user 삭제

사용자(zero)에게 외부에서 zerobase 에 접근해서 사용하기 위한 권한 부여

GRANT ALL ON zerobase.* TO 'zero'@'%';
REVOKE ALL ON zerobase.* FROM 'zero'@'%';  #권한 삭제
SHOW GRANTS FOR 'zero'@'%';

현재 접속을 종료하고 AWS RDS (database-1)의 zerobase 에 zero 로 접속

mysql -h "엔드포인트" -P 3306 -u zero -p zerobase

📖 02_SQL File

SQL 쿼리를 모아놓은 파일

1) 실습환경 만들기

Workspace 생성(sql_ws 폴더 만들기)

cd documents
mkdir sql_ws
cd sql_ws
code .

2) SQL File 실행

  • 로그인 이후

# sql_ws 폴더 위치로 이동하여 zerobase 에 접속
cd sql_ws
mysql -u root -p zerobase
#sql 파일 실행
source test01.sql
desc police_station;
  • 외부에서 바로 실행

# zerobase Database 에 접속하면서 SQL File 실행
mysql -u root -p zerobase <test02.sql
desc crime_status;

3) Database Backup

SQL File 로 Database 를 백업할 수 있다.

mysqldump -u root -p zerobase > zerobase.sql

4) Database Restore

데이터베이스를 백업한 SQL File 을 실행하여 그 시점으로 복구하거나 이전 할 수 있다.

# AWS RDS (database-1) 서비스가 사용 가능한 상태에서 접속
mysql -h "엔드포인트" -P 3306 -u admin -p
show databases;
use zerobase;
source zerobase.sql
show tables;

5) Table Backup

mysqldump -u root -p zerobase celeb > celeb.sql

6) Table Restore

Table 을 백업한 SQL File 을 실행하여, 해당 테이블을 복구하거나 이전할 수 있다.

# AWS RDS (database-1) 의 zerobase 에서 celeb 테이블을 복구
mysql -h "엔드포인트" -P 3306 -u admin -p zerobase
source celeb.sql
show tables;
desc celeb;
select * from celeb;

7) Table Schema Backup

데이터를 제외하고 테이블 생성 쿼리만 백업할 수 있다.

mysqldump -d -u root -p zerobase snl_show > snl.sql

문제 풀이

AWS RDS (database-1) 의 zerobase 데이터베이스 백업(옵션추가)

mysqldump --set_gtid-purged=OFF -h "엔드포인트" -P 3306 -u admin -p zerobase > backup_zerobase.sql

AWS RDS (database-1) 에 admin 계정으로 로그인 후 Database (zerodb) 생성

(DEFAULT CHRACTER SET utf8mb4)

mysql -h "엔드포인트" -P 3306 -u admin -p
use zerobase;
CREATE DATABASE zerodb DEFAULT CHARACTER SET utf8mb4
show databases;

사용자(zero@%)에게 zerodb의 모든 권한 부여하기

use mysql;
select host, user from user;
SHOW GRANTS FOR 'zero'@'%';
GRANT ALL ON zerodb.* TO 'zero'@'%';
SHOW GRANTS FOR 'zero'@'%';

앞서 백업한 zerobase 백업 파일을 zerodb 에서 실행

use zerodb;
source backup_zerobase.sql;
show tables;

police_station 테이블에 데이터를 INSERT 하기 위한 SQL 파일 생성

VS Code에서 sql 파일 만들기
INSERT INTO tablename(column1, column2) VALUES(value1, value2);

SQL 파일을 실행하여 AWS RDS (database-1) zerobase 의 police_station 테이블에 데이터를 INSERT 하고 확인하기

use zerobase;
show tables;
select * from police_station;  #Empty set
source insert.sql;
select * from police_station;

AWS RDS (database-1) zerobase 의 police_station 테이블을 SQL 파일로 백업

mysqldump --set_gtid-purged=OFF -h "엔드포인트" -P 3306 -u admin -p zerobase police_station > backup_police.sql

SQL 파일을 실행하여 AWS RDS (database-1) zerodb 의 police_station 테이블을 zerobase 테이블과 동일하게 만들고 확인

mysql -h "엔드포인트" -P 3306 -u admin -p
show databases;
use zerodb;
show tables;
select * from police_station;  # Empty set
source backup_police.sql;
select * from police_station;

▷ 내일 학습 계획: SQL 강의(심화3~5)

[이 글은 제로베이스 데이터 취업 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.]

0개의 댓글