이 글은 24.01.22에 본인 벨로그에 작성했던 글을 옮겨 온 것이다.
Concat
- 여러 문자열을 하나로 합치거나 연결하는 함수.
select concat(name, ' : ', job_title) as profile from celeb;
- snl_korea에 출연한 celeb을 기준으로 celeb 테이블은 c, snl_show 테이블은 s로 별칭을 주어 출연 시즌, 에피소드, 이름 검색
select season , episode
, name , job_title
from celeb c
join snl_show s
where c.name = s.host;
SQL FILE
- sql file : SQL 쿼리를 모아놓은 파일.
SQL FILE 실행
- 실행 방법 1. mysql 로그인 후
(1) source 파일경로/파일이름.sql
(2) . 파일경로/파일이름.sql (source 대신 . 사용 가능)
(3) . 파일이름.sql (파일이 있는 폴더를 사용중인 경우)
sql_ws 라는 디렉토리의 test01.sql sql 파일.
police_station이라는 테이블을 만드는 쿼리.
create table police_station(
name varchar(16)
, address varchar(128)
);
위의 파일을 실행시켜보자
sql_ws 위치로 이동 후 mysql에 로그인 한 상태다.
잘 실행되었음을 볼 수 있다.
- 실행방법 2. 외부에서 바로 실행
mysql -u username -p dbname < 파일경로/파일이름.sql
sql_ws 라는 디렉토리의 test02.sql sql 파일.
crime_status라는 테이블을 만드는 쿼리.
create table crime_status
(
year year,
polcie_station varchar(8),
crime_type varchar(16),
status_type char(2),
case_number int
);
위의 파일을 실행시켜보자.
파일 경로는, 커맨드창에서 sql_ws로 옮겨놓은 상태이다.
잘 실행되었는지 확인해보자.
잘 실행되었음을 확인할 수 있다.
DB Backup
- sql file로 db를 백업할 수 있다.
(1) mysqldump -u username -p dbname > backup.sql (특정 db 백업)
(2) mysqldump -u username -p --all-databases > backup.sql (모든 db 백업)
study db를 백업해보자
study db를 백업한 study.sql 파일이 생긴 것을 볼 수 있다.
해당 sql 파일은, 실행시킬 경우 백업한 시점의 테이블, 데이터를 모두 가져올 수 있게 하는 파일이다.
DB Restore
- db를 백업한 sql 파일을 실행해서 그 시점으로 복구하거나, 이전할 수 있다.
study라는 db를 백업했던 study.sql 파일을 실행해서 해당 db를 다른 곳에 복사해보자.
study db를 zerobase db에 덮어씌웠고, 작업이 다 끝나면 아래와 같이 확인해볼 수 있다.
잘 되었음을 확인할 수 있다.
Table backup/restore
- 테이블 단위로도 백업/복원할 수 있다.
백업 : mysqldump -u username -p dbname tablename > backup.sql
복원 : 백업 sql파일 실행
Table Schema backup/restore
- 데이터를 제외한, DB의 구조만 백업/복원할 수도 있다.
(1) mysqldump -d -u username -p dbname tablename > backup.sql (특정 table schema 백업)
(2) mysqldump -d -u username -p dbname > backup.sql (모든 table schema 백업)
'STUDY > SQL, DB' 카테고리의 다른 글
[MySQL] Scalar Functions (0) | 2024.03.19 |
---|---|
[MySQL] with Python! (0) | 2024.03.19 |
[MySQL] JOIN (0) | 2024.03.19 |
[DB] DB / DB 생성 / SQL 명령 (0) | 2024.03.19 |
[MySQL] temporary table (0) | 2024.03.05 |