Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 명령줄 클라이언트 완벽 가이드: 사용법과 주요 옵션

mysql은 입력 줄 편집 기능을 갖춘 간단한 SQL 셸입니다. 대화형(interactive)과 비대화형(noninteractive) 방식을 모두 지원하며, MySQL 데이터베이스를 터미널 환경에서 직접 다룰 수 있게 해주는 기본적인 클라이언트 도구입니다.

mysql 클라이언트의 출력 형식

대화형 모드로 실행할 경우, 쿼리 결과는 보기 편한 ASCII 테이블 형식으로 출력됩니다. 반면 파이프나 필터처럼 비대화형으로 사용할 때는 결과가 탭(tab)으로 구분된 형식으로 출력됩니다.

이러한 출력 형식은 명령줄 옵션을 통해 얼마든지 변경할 수 있습니다. 또한 결과 집합(result set)이 너무 커서 메모리가 부족해 문제가 발생하는 경우에는 --quick 옵션을 활용하면 됩니다.

--quick 옵션을 사용하면 mysql은 전체 결과 집합을 한 번에 가져와 메모리에 버퍼링한 후 화면에 표시하는 대신, 서버로부터 행(row) 단위로 결과를 하나씩 가져옵니다. 내부적으로는 클라이언트/서버 라이브러리에 포함된 C API 함수 중 mysql_store_result() 대신 mysql_use_result()를 사용하여 결과 집합을 반환합니다. 이를 통해 대용량 쿼리에서도 메모리 부담을 크게 줄일 수 있습니다.

mysql 실행하기

mysql 사용법은 매우 간단합니다. 사용자의 명령 인터프리터(셸) 프롬프트에서 바로 호출할 수 있습니다.

shell> mysql db_name

또는 사용자 이름과 비밀번호를 지정하여 실행할 수도 있습니다.

shell> mysql --user=user_name --password db_name

위 명령을 실행하면 비밀번호 입력 프롬프트가 나타납니다.

Enter password: your_password

SQL 문 입력 및 종료 방법

비밀번호 인증에 성공하면 SQL 문을 직접 입력할 수 있으며, 문장 끝에는 ;(세미콜론), \g, 또는 \G를 붙여야 실행됩니다. 특히 \G를 사용하면 결과가 세로 형태로 출력되어 긴 행을 읽기에 더욱 편리합니다.

입력 도중 Control+C를 누르면 진행 중인 SQL 문이 있다면 해당 문장이 중단되고, 그렇지 않다면 아직 완성되지 않은 부분 입력 줄이 취소됩니다.

스크립트 파일로 SQL 실행하기

SQL 문을 일일이 입력하지 않고 스크립트 파일(배치 파일)에 저장해 두었다가 한 번에 실행할 수도 있습니다. 입력 리디렉션(<)을 활용하면 됩니다.

shell> mysql db_name < script.sql > output.tab

위 예제는 script.sql 파일에 담긴 SQL 문들을 실행하고, 그 결과를 output.tab 파일로 저장합니다. 반복적인 작업이나 백업·마이그레이션 작업을 자동화할 때 매우 유용한 방법입니다.

명령 히스토리 기능

Unix 계열 시스템에서 mysql 클라이언트는 대화형으로 실행된 SQL 문들을 히스토리 파일(history file)에 자동으로 기록합니다. 덕분에 이전에 실행했던 쿼리를 손쉽게 불러와 재사용할 수 있습니다.