sql 쿼리를 모아놓은 파일
그 파일을 실행하면 파일 안에 있는 쿼리들이 한꺼번에 실행됨
source </path/filename.sql>
\. </path/filename.sql> # source대신에 \. 사용 가능
\. <filename.sql> # 현재폴더에 파일이 있다면path 생략 가능
무엇을 써도 실행 가능
cmd에서 실행하기
C:\Users\User>cd C:\Users\User\Documents\sql_ws
C:\Users\User\Documents\sql_ws>mysql -u root -p testdb
Enter password: **********
mysql> source test01.sql #sql_ws폴더에서 sql 시작했기 때문에 파일 경로 안써도 바로 실행 가능
Query OK, 0 rows affected (0.02 sec)
mysql> show tables;
+------------------+
| Tables_in_testdb |
+------------------+
| oil_price |
| police_station | #단한번도 police station 테이블을 추가한 적이 없지만 testdb에서 test01.sql 파일을 실행해서 생김
| test |
| test1 |
| test2 |
| test_show |
+------------------+
6 rows in set (0.00 sec)
mysql> desc police_station;
+---------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| name | varchar(16) | YES | | NULL | |
| address | varchar(128) | YES | | NULL | |
+---------+--------------+------+-----+---------+-------+
2 rows in set (0.01 sec)
C:\Users\User\Documents\sql_ws> mysql -u root -p testdb < test02.sql #아직 sql에 접속하지 않았지만 sql파일 실행하여 테이블 넣어둠
Enter password: **********
#확인하기위해 sql접속
C:\Users\User\Documents\sql_ws> mysql -u root -p testdb
Enter password: **********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 22
Server version: 8.0.34 MySQL Community Server - GPL
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show tables;
+------------------+
| Tables_in_testdb |
+------------------+
| crime_status |#확인해보니까 있다!
| oil_price |
| police_station |
| test |
| test1 |
| test2 |
| test_show |
+------------------+
sql파일로 database를 백업할 수 있다
% mysqldump -u usernme -p dbname > backup.sql # 특정 데이터베이스 백업
% mysqldump -u username -p --all-databases > backup.sql # 모든 데이터베이스 백업
C:\Users\User\Documents\sql_ws>mysqldump -u root -p testdb > backup.sql
Enter password: **********
하고 보니까
파일단위 말고 테이블 단위로도 가능
sql_ws % mysqldump -u username -p dbname tablename > backup_table.sql
데이터 제외하고 테이블 생성 쿼리만 백업할 수 있다.
% mysqldump -d -u usernmae -p dbname tablename> backup_schema.sql # 특정 table scehma backup
% mysqldump -d -u username -p dbname > backup_schema.sql # 모든 table schema backup
데이터베이스를 백업한 sql파일을 실행하여 그 시점으로 복구하거나 이전할 수 있다.
실행방버은 sql파일을 실행하는 것과 동일함