43.SQL-9

SOWA·2023년 4월 30일
0

SQL

목록 보기
9/12

🧷 SQL File

SQL 쿼리를 모아놓은 파일

  • 터미널에서 실행
    cd documents
    \documents> mkdir sql_ws
 Directory: \documents


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        2023-04-30   오후 8:48                sql_ws     

\documents> cd sql_ws

\documents\sql_ws> code .
ㄴ sql_ws 폴더 하위에서 VScode를 실행


  • VScode에서
create Table police_station
(
    name VARCHAR(16),
    address VARCHAR(128)
);

ㄴ test01.sql 파일 생성후 경찰서 정보 테이블 생성


  • 터미널에서
\documents\sql_ws> mysql -u root -p zerobase
Enter password: *************

ㄴsql_ws 폴더 위치로 이동하여 zerobase에 접속


mysql> source test01.sql;
ㄴSQL 파일 실행


mysql> desc police_station;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| name    | varchar(16)  | YES  |     | NULL    |       |
| address | varchar(128) | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+

ㄴ결과 확인


sql_ws> mysql -u root -p zerobase < test02.sql
ㄴzerobase 데이터베이스에 접속하면서 SQL파일 실행



🧷 DATA BASE Backup

  • mysql이 아닌 워크스페이스에서 실행
    >mysqldump -u username -p dbname >backup.sql
    ㄴ 특정 데이터 베이스 백업

    sql_ws> mysqldump -u username -p dbname -r backup.sql
    ㄴ 위의 방법이 에러날 시 위 코드로 백업.

    mysqldump -u username -p --all-databases >backup.sql
    ㄴ 모든 데이터베이스 백업


\Documents\sql_ws> mysqldump -u root -p zerobase >zerobase.sql
Enter password: *************



🧷 DATA BASE Restore

데이터베이스를 백업한 SQL 파일을 실행하여 그 시점으로 복구하거나 이전가능(SQL 파일을 실행하는 방법과 동일)

\Documents\sql_ws> mysql -h "database-1~~.amazonaws.com" -P 3306 -u d~~~e -p

ㄴAWS RDS(database-1) 서비스가 사용가능한 상태에서 접속


mysql> source zerobase.sql
ㄴAWS RDS(database-1)의 zerobase 데이터 베이스 복원

mysql> show tables;
+--------------------+
| Tables_in_zerobase |
+--------------------+
| celeb              |
| crime_status       |
| oil_price          |
| person             |
| police_station     |
| snl_show           |
| test1              |
| test2              |
+--------------------+

mysql> source zerobase.sql;실행시
ASCII '\0' appeared in the statement, but this is not allowed unless option --binary-mode is enabled and mysql is run in non-interactive mode. Set --binary-mode to 1 if ASCII '\0' is expected. Query: 'ÿþ-'.에러 발생.

  • 해당 에러는 한글이 깨져서 발생한다고 하여 백업할때
    sql_ws> mysqldump -u root -p zerobase --default-character-set utf8 > zerobase.sql 로도 백업해서 다시 실행해 보았지만 여젼히 에러 발생.
    그래서
  • sql_ws> mysqldump -u root -p zerobase -r zerobase.sql 로 백업하여
    mysql> source zerobase.sql로 실행하니 정상작동

    -r file_name (--result-file=file_name): 데이터베이스를 백업할 때, 백업 결과를 지정한 이름의 파일로 직접 출력.덤프를 생성하는 동안 오류가 발생하더라도 결과 파일이 생성되고 이전 내용을 덮어씌움


🧷 Table Back Up

\sql_ws> mysqldump -u username -p dbname tablename > backup.sql
ㄴ Table 단위로 백업가능


\sql_ws> mysqldump -u root -p zerobase celeb > celeb.sql
ㄴ 로컬 데이터 베이스에서 celeb 테이블 백업


🧷 Table Restore

Table을 백업한 SQL 파일을 실행. 해당 테이블을 복구하거나 이전 가능(SQL 파일을 실행하는 방법과 동일)

sql_ws> mysql -h "database-1~~~~~amazonaws.com" -P 3306 -u d~~~ -p zerobase
...
mysql> drop table celeb;
ㄴ AWS RDS(database-1)의 zerobase에서 celeb 테이블 삭제


mysql> source celeb.sql
ㄴ AWS RDS(database-1)의 zerobase에서 celeb 테이블을 복구


🖇️ Table Schema Backup

  • 데이터를 제외하고 테이블 생성쿼리만 백업 가능

\sql_ws> mysqldump -d -u username -p dbname tablename > backup.sql
ㄴ 특정 Table Schema Backup


\sql_ws> mysqldump -d -u username -p dbname > backup.sql
ㄴ 모든 Table schema Backup


sql_ws> mysqldump -d -u root -p zerobase snl_show > snl.sql
ㄴ Local 데이터베이스에서 snl_show Table Schema 백업



ㄴVSCode에서 snl.sql 확인(데이터는 포함X)



from.제로베이스 데이터 취업스쿨 강의

0개의 댓글