(1) SQL.File
(2) SQL.File 실행
SQL.File은 sql 확장자를 가진 파일로 SQL 쿼리들이 주로 모여 있다. 그래서
SQL.File 안에 실행할 여러 개의 쿼리를 한꺼번에 모아서 작성을 한 다음 SQL 파일을
실행함으로써 작성되어 있는 쿼리를 모두 한꺼번에 실행할 수 있게 된다.
이러한 특징을 이용해 데이터베이스나 테이블을 back up 하고 restore하는데 이용하고 있다.
🖍️ SQL File 실행 1 - 로그인 이후
mysql> source </path/filename.sql>
mysql> \. </path/filename.sql> # source 대신 \. 사용가능
mysql> \. <filename.sql> # 현재 폴더에 파일이 있으면 path 생략 가능
이 명령어들은 MySQL 에 접속한 이후에 SQL 스크립트 파일을 실행하는 방법이다.
위 명령어들은 지정된 경로에 있는 SQL 스크립트 파일을 실행한다. 지정된 SQL File을 읽어서 그 파일에 있는 모든 SQL 명령어를 순차적으로 실행하는 것이다.
예시
# 데이터 베이스 내에 police_statiopn 테이블을 생성하는 쿼리가 담긴 testOl.sql 생성
CREATE TABLE police_station
(
name varchar(16),
address varchar(128)
);
#sql file 실행
mysql> source testOl.sql
Query OK, 0 rows affected (0.05 sec)
#데이터 베이스 내에 생성된 police_station 조회
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.00 sec)
🖍️ SQL File 실행 2 - 외부에서 로그인
% mysql -u username -p <database> < </path/filename.sql>
이 명령어는 MySQL 에 접속하기 전 명령 프롬프트 에서 SQL 스크립트 파일을 실행하는 방법이다.
</path/filename.sql> 라는 지정된 경로에 있는 SQL 스크립트 파일을 실행한다.
mysql -u username -p : 기본적인 mysql 로그인 방법으로 서버에 접속할 사용자 이름과 비밀번호를 입력한다.
<database>: sql 내에 현재 존재하는 접속할 데이터베이스의 이름을 지정하는 것이다.
이 방법을 사용하면 원하는 데이터베이스에 바로 접속할 수 있으며 수동으로 명령어를 하나씩 입력하는 대신, 파일에 저장된 명령어를 한 번에 실행할 수 있어 보다 효율적이다.
# 데이터 베이스 내에 crime_status 테이블을 생성하는 쿼리가 담긴 testO2.sql 생성
CREATE TABLE crime_status
(
year YEAR,
police_station VARCHAR(8》,
crime_type VARCHAR(16),
status_type CHAR ,
case_number int
);
# Database 에 접속하면서 SQL File 을 실행
sql_ws % mysql -u root -p database < test02.sql
Enter passwrod:
#데이터 베이스 내에 생성된 crime_status 조회
mysql> desc crime_status;
+------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+-------+
| year | year | YES | | NULL | |
| police_station | varchar(8) | YES | | NULL | |
| crime_type | varchar(16) | YES | | NULL | |
| status_type | char(2) | YES | | NULL | |
| case_number | int | YES | | NULL | |
+------------------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)